From 1a67c82fbd9b9bd8664dae762a51b11f10f8a412 Mon Sep 17 00:00:00 2001 From: evilsocket Date: Thu, 1 Mar 2018 10:40:49 +0100 Subject: [PATCH] fix: getting rid of forked gopacket, static build ftw! --- build.sh | 20 +++++++++++--------- modules/dhcp6_spoof.go | 8 ++++---- modules/dns_spoof.go | 6 +++--- modules/net_sniff.go | 4 ++-- modules/net_sniff_context.go | 4 ++-- modules/net_sniff_dns.go | 4 ++-- modules/net_sniff_dot11.go | 4 ++-- modules/net_sniff_http.go | 4 ++-- modules/net_sniff_krb5.go | 4 ++-- modules/net_sniff_ntlm.go | 4 ++-- modules/net_sniff_parsers.go | 4 ++-- modules/net_sniff_sni.go | 4 ++-- modules/net_sniff_views.go | 2 +- modules/syn_scan.go | 4 ++-- modules/wifi_recon.go | 6 +++--- modules/wol.go | 2 +- network/net_windows.go | 2 +- packets/arp.go | 2 +- packets/dhcp6.go | 2 +- packets/dhcp6_layer.go | 2 +- packets/dot11.go | 4 ++-- packets/queue.go | 6 +++--- packets/serialize.go | 2 +- packets/tcp.go | 2 +- packets/udp.go | 2 +- 25 files changed, 55 insertions(+), 53 deletions(-) diff --git a/build.sh b/build.sh index b1178d54..f60088df 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,8 @@ #!/bin/bash BUILD_FOLDER=build VERSION=$(cat core/banner.go | grep Version | cut -d '"' -f 2) + +GO_BUILD_FLAGS=--ldflags '-linkmode external -extldflags "-static -s -w"' -v CROSS_LIB=/tmp/libpcap-1.8.1/libpcap.a bin_dep() { @@ -45,7 +47,7 @@ xcompile_pcap() { build_linux_amd64() { echo "@ Building linux/amd64 ..." - go build -o bettercap .. + go build $GO_BUILD_FLAGS -o bettercap .. } build_linux_arm7() { @@ -56,7 +58,7 @@ build_linux_arm7() { echo "@ Building linux/arm7 ..." cd "$OLD" - env CC=arm-linux-gnueabi-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=7 CGO_LDFLAGS="$CROSS_LIB" go build -o bettercap .. + env CC=arm-linux-gnueabi-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm GOARM=7 CGO_LDFLAGS="$CROSS_LIB" go build $GO_BUILD_FLAGS -o bettercap .. } build_linux_mips() { @@ -67,7 +69,7 @@ build_linux_mips() { echo "@ Building linux/mips ..." cd "$OLD" - env CC=mips-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=mips CGO_LDFLAGS="$CROSS_LIB" go build -o bettercap .. + env CC=mips-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=mips CGO_LDFLAGS="$CROSS_LIB" go build $GO_BUILD_FLAGS -o bettercap .. } build_linux_mipsle() { @@ -78,7 +80,7 @@ build_linux_mipsle() { echo "@ Building linux/mipsle ..." cd "$OLD" - env CC=mipsel-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=mipsle CGO_LDFLAGS="$CROSS_LIB" go build -o bettercap .. + env CC=mipsel-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=mipsle CGO_LDFLAGS="$CROSS_LIB" go build $GO_BUILD_FLAGS -o bettercap .. } build_linux_mips64() { @@ -89,7 +91,7 @@ build_linux_mips64() { echo "@ Building linux/mips64 ..." cd "$OLD" - env CC=mips64-linux-gnuabi64-gcc CGO_ENABLED=1 GOOS=linux GOARCH=mips64 CGO_LDFLAGS="$CROSS_LIB" go build -o bettercap .. + env CC=mips64-linux-gnuabi64-gcc CGO_ENABLED=1 GOOS=linux GOARCH=mips64 CGO_LDFLAGS="$CROSS_LIB" go build $GO_BUILD_FLAGS -o bettercap .. } build_linux_mips64le() { @@ -100,7 +102,7 @@ build_linux_mips64le() { echo "@ Building linux/mips64le ..." cd "$OLD" - env CC=mips64el-linux-gnuabi64-gcc CGO_ENABLED=1 GOOS=linux GOARCH=mips64le CGO_LDFLAGS="$CROSS_LIB" go build -o bettercap .. + env CC=mips64el-linux-gnuabi64-gcc CGO_ENABLED=1 GOOS=linux GOARCH=mips64le CGO_LDFLAGS="$CROSS_LIB" go build $GO_BUILD_FLAGS -o bettercap .. } build_macos_amd64() { @@ -112,7 +114,7 @@ build_macos_amd64() { ssh osxvm "cd $DIR && rm -rf '$OUTPUT' && git pull" > /dev/null echo "@ Building darwin/amd64 ..." - ssh osxvm "export GOPATH=/Users/evilsocket/gocode && cd '$DIR' && PATH=$PATH:/usr/local/bin && go get ./... && go build -o bettercap ." > /dev/null + ssh osxvm "export GOPATH=/Users/evilsocket/gocode && cd '$DIR' && PATH=$PATH:/usr/local/bin && go get ./... && go build $GO_BUILD_FLAGS -o bettercap ." > /dev/null scp -C osxvm:$DIR/bettercap . > /dev/null } @@ -126,7 +128,7 @@ build_windows_amd64() { ssh winvm "cd $DIR && git pull && go get ./..." > /dev/null echo "@ Building windows/amd64 ..." - ssh winvm "cd $DIR && go build -o bettercap.exe ." > /dev/null + ssh winvm "cd $DIR && go build $GO_BUILD_FLAGS -o bettercap.exe ." > /dev/null scp -C winvm:$DIR/bettercap.exe . > /dev/null } @@ -140,7 +142,7 @@ build_android_arm() { ssh -p 8022 root@shield "cd "$DIR" && rm -rf bettercap* && git pull && go get ./..." echo "@ Building android/arm ..." - ssh -p 8022 root@shield "cd $DIR && go build -o bettercap ." + ssh -p 8022 root@shield "cd $DIR && go build $GO_BUILD_FLAGS -o bettercap ." echo "@ Downloading bettercap ..." scp -C -P 8022 root@shield:$DIR/bettercap . diff --git a/modules/dhcp6_spoof.go b/modules/dhcp6_spoof.go index 35c90cd4..7e360088 100644 --- a/modules/dhcp6_spoof.go +++ b/modules/dhcp6_spoof.go @@ -14,12 +14,12 @@ import ( "github.com/bettercap/bettercap/packets" "github.com/bettercap/bettercap/session" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" - "github.com/bettercap/gopacket/pcap" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" + "github.com/google/gopacket/pcap" // TODO: refactor to use gopacket when gopacket folks - // will fix this > https://github.com/bettercap/gopacket/issues/334 + // will fix this > https://github.com/google/gopacket/issues/334 "github.com/mdlayher/dhcp6" "github.com/mdlayher/dhcp6/dhcp6opts" ) diff --git a/modules/dns_spoof.go b/modules/dns_spoof.go index 525b3726..1c2a607f 100644 --- a/modules/dns_spoof.go +++ b/modules/dns_spoof.go @@ -12,9 +12,9 @@ import ( "github.com/bettercap/bettercap/packets" "github.com/bettercap/bettercap/session" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" - "github.com/bettercap/gopacket/pcap" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" + "github.com/google/gopacket/pcap" ) type DNSSpoofer struct { diff --git a/modules/net_sniff.go b/modules/net_sniff.go index 19dcbffa..6888e049 100644 --- a/modules/net_sniff.go +++ b/modules/net_sniff.go @@ -8,8 +8,8 @@ import ( "github.com/bettercap/bettercap/session" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" ) type Sniffer struct { diff --git a/modules/net_sniff_context.go b/modules/net_sniff_context.go index f0a8f94e..80277710 100644 --- a/modules/net_sniff_context.go +++ b/modules/net_sniff_context.go @@ -8,8 +8,8 @@ import ( "github.com/bettercap/bettercap/log" "github.com/bettercap/bettercap/session" - "github.com/bettercap/gopacket/pcap" - "github.com/bettercap/gopacket/pcapgo" + "github.com/google/gopacket/pcap" + "github.com/google/gopacket/pcapgo" ) type SnifferContext struct { diff --git a/modules/net_sniff_dns.go b/modules/net_sniff_dns.go index 866e5cdf..ff5274bc 100644 --- a/modules/net_sniff_dns.go +++ b/modules/net_sniff_dns.go @@ -5,8 +5,8 @@ import ( "github.com/bettercap/bettercap/core" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" ) func dnsParser(ip *layers.IPv4, pkt gopacket.Packet, udp *layers.UDP) bool { diff --git a/modules/net_sniff_dot11.go b/modules/net_sniff_dot11.go index 9b54688d..640e77b3 100644 --- a/modules/net_sniff_dot11.go +++ b/modules/net_sniff_dot11.go @@ -1,8 +1,8 @@ package modules import ( - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" ) func dot11Parser(radiotap *layers.RadioTap, dot11 *layers.Dot11, pkt gopacket.Packet, verbose bool) { diff --git a/modules/net_sniff_http.go b/modules/net_sniff_http.go index 3f8a75fa..edcc3658 100644 --- a/modules/net_sniff_http.go +++ b/modules/net_sniff_http.go @@ -7,8 +7,8 @@ import ( "github.com/bettercap/bettercap/core" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" ) func httpParser(ip *layers.IPv4, pkt gopacket.Packet, tcp *layers.TCP) bool { diff --git a/modules/net_sniff_krb5.go b/modules/net_sniff_krb5.go index 49868c27..1a7df42b 100644 --- a/modules/net_sniff_krb5.go +++ b/modules/net_sniff_krb5.go @@ -6,8 +6,8 @@ import ( "github.com/bettercap/bettercap/core" "github.com/bettercap/bettercap/packets" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" ) func krb5Parser(ip *layers.IPv4, pkt gopacket.Packet, udp *layers.UDP) bool { diff --git a/modules/net_sniff_ntlm.go b/modules/net_sniff_ntlm.go index 1134ddfd..66441af0 100644 --- a/modules/net_sniff_ntlm.go +++ b/modules/net_sniff_ntlm.go @@ -7,8 +7,8 @@ import ( "github.com/bettercap/bettercap/core" "github.com/bettercap/bettercap/packets" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" ) var ( diff --git a/modules/net_sniff_parsers.go b/modules/net_sniff_parsers.go index 53bd6ae0..32c3f1e1 100644 --- a/modules/net_sniff_parsers.go +++ b/modules/net_sniff_parsers.go @@ -7,8 +7,8 @@ import ( "github.com/bettercap/bettercap/log" "github.com/bettercap/bettercap/packets" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" ) func tcpParser(ip *layers.IPv4, pkt gopacket.Packet, verbose bool) { diff --git a/modules/net_sniff_sni.go b/modules/net_sniff_sni.go index f759a879..07a78e65 100644 --- a/modules/net_sniff_sni.go +++ b/modules/net_sniff_sni.go @@ -6,8 +6,8 @@ import ( "github.com/bettercap/bettercap/core" "regexp" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" ) // poor man's TLS Client Hello with SNI extension parser :P diff --git a/modules/net_sniff_views.go b/modules/net_sniff_views.go index 84dcdf44..c1c1137e 100644 --- a/modules/net_sniff_views.go +++ b/modules/net_sniff_views.go @@ -5,7 +5,7 @@ import ( "net" "time" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket/layers" "github.com/bettercap/bettercap/core" "github.com/bettercap/bettercap/session" diff --git a/modules/syn_scan.go b/modules/syn_scan.go index 5c2ec333..ba25bf7c 100644 --- a/modules/syn_scan.go +++ b/modules/syn_scan.go @@ -13,8 +13,8 @@ import ( "github.com/bettercap/bettercap/packets" "github.com/bettercap/bettercap/session" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" "github.com/malfunkt/iprange" ) diff --git a/modules/wifi_recon.go b/modules/wifi_recon.go index 5be07fed..b56bc57e 100644 --- a/modules/wifi_recon.go +++ b/modules/wifi_recon.go @@ -15,9 +15,9 @@ import ( "github.com/bettercap/bettercap/packets" "github.com/bettercap/bettercap/session" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" - "github.com/bettercap/gopacket/pcap" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" + "github.com/google/gopacket/pcap" "github.com/dustin/go-humanize" ) diff --git a/modules/wol.go b/modules/wol.go index 9d447481..1542c2d5 100644 --- a/modules/wol.go +++ b/modules/wol.go @@ -10,7 +10,7 @@ import ( "github.com/bettercap/bettercap/packets" "github.com/bettercap/bettercap/session" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket/layers" ) var ( diff --git a/network/net_windows.go b/network/net_windows.go index ce62f11e..5fe544c8 100644 --- a/network/net_windows.go +++ b/network/net_windows.go @@ -6,7 +6,7 @@ import ( "regexp" "strings" - "github.com/bettercap/gopacket/pcap" + "github.com/google/gopacket/pcap" ) // only matches gateway lines diff --git a/packets/arp.go b/packets/arp.go index 71998969..ffc61ab3 100644 --- a/packets/arp.go +++ b/packets/arp.go @@ -3,7 +3,7 @@ package packets import ( "net" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket/layers" ) func NewARPTo(from net.IP, from_hw net.HardwareAddr, to net.IP, to_hw net.HardwareAddr, req uint16) (layers.Ethernet, layers.ARP) { diff --git a/packets/dhcp6.go b/packets/dhcp6.go index 409c24b1..656f5ae9 100644 --- a/packets/dhcp6.go +++ b/packets/dhcp6.go @@ -3,7 +3,7 @@ package packets import ( "errors" // TODO: refactor to use gopacket when gopacket folks - // will fix this > https://github.com/bettercap/gopacket/issues/334 + // will fix this > https://github.com/google/gopacket/issues/334 "github.com/mdlayher/dhcp6" ) diff --git a/packets/dhcp6_layer.go b/packets/dhcp6_layer.go index 23dd5be4..ac12879d 100644 --- a/packets/dhcp6_layer.go +++ b/packets/dhcp6_layer.go @@ -1,7 +1,7 @@ package packets import ( - "github.com/bettercap/gopacket" + "github.com/google/gopacket" ) type DHCPv6Layer struct { diff --git a/packets/dot11.go b/packets/dot11.go index 550d2b7f..74689466 100644 --- a/packets/dot11.go +++ b/packets/dot11.go @@ -6,8 +6,8 @@ import ( "fmt" "net" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" ) type Dot11CipherType uint8 diff --git a/packets/queue.go b/packets/queue.go index 7d9d0db3..5d49d4ab 100644 --- a/packets/queue.go +++ b/packets/queue.go @@ -8,9 +8,9 @@ import ( "github.com/bettercap/bettercap/network" - "github.com/bettercap/gopacket" - "github.com/bettercap/gopacket/layers" - "github.com/bettercap/gopacket/pcap" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" + "github.com/google/gopacket/pcap" ) type Activity struct { diff --git a/packets/serialize.go b/packets/serialize.go index 929981ac..7bf52c2d 100644 --- a/packets/serialize.go +++ b/packets/serialize.go @@ -1,7 +1,7 @@ package packets import ( - "github.com/bettercap/gopacket" + "github.com/google/gopacket" ) var SerializationOptions = gopacket.SerializeOptions{ diff --git a/packets/tcp.go b/packets/tcp.go index 263ad56b..3b646b3e 100644 --- a/packets/tcp.go +++ b/packets/tcp.go @@ -1,7 +1,7 @@ package packets import ( - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket/layers" "net" ) diff --git a/packets/udp.go b/packets/udp.go index db003c14..c9a38057 100644 --- a/packets/udp.go +++ b/packets/udp.go @@ -1,7 +1,7 @@ package packets import ( - "github.com/bettercap/gopacket/layers" + "github.com/google/gopacket/layers" "net" )