diff --git a/modules/wifi/wifi_deauth.go b/modules/wifi/wifi_deauth.go index 2dd5bd0c..b7c61bb1 100644 --- a/modules/wifi/wifi_deauth.go +++ b/modules/wifi/wifi_deauth.go @@ -5,23 +5,11 @@ import ( "fmt" "net" "sort" - "time" "github.com/bettercap/bettercap/network" "github.com/bettercap/bettercap/packets" ) -func (mod *WiFiModule) injectPacket(data []byte) { - if err := mod.handle.WritePacketData(data); err != nil { - mod.Error("could not inject WiFi packet: %s", err) - mod.Session.Queue.TrackError() - } else { - mod.Session.Queue.TrackSent(uint64(len(data))) - } - // let the network card breath a little - time.Sleep(10 * time.Millisecond) -} - func (mod *WiFiModule) sendDeauthPacket(ap net.HardwareAddr, client net.HardwareAddr) { for seq := uint16(0); seq < 64 && mod.Running(); seq++ { if err, pkt := packets.NewDot11Deauth(ap, client, ap, seq); err != nil { @@ -159,4 +147,4 @@ func (mod *WiFiModule) startDeauth(to net.HardwareAddr) error { }() return nil -} \ No newline at end of file +} diff --git a/modules/wifi/wifi_inject.go b/modules/wifi/wifi_inject.go new file mode 100644 index 00000000..124b772f --- /dev/null +++ b/modules/wifi/wifi_inject.go @@ -0,0 +1,18 @@ +//go:build !darwin + +package wifi + +import ( + "time" +) + +func (mod *WiFiModule) injectPacket(data []byte) { + if err := mod.handle.WritePacketData(data); err != nil { + mod.Error("could not inject WiFi packet: %s", err) + mod.Session.Queue.TrackError() + } else { + mod.Session.Queue.TrackSent(uint64(len(data))) + } + // let the network card breath a little + time.Sleep(10 * time.Millisecond) +} diff --git a/modules/wifi/wifi_inject_darwin.go b/modules/wifi/wifi_inject_darwin.go new file mode 100644 index 00000000..3bf7145d --- /dev/null +++ b/modules/wifi/wifi_inject_darwin.go @@ -0,0 +1,5 @@ +package wifi + +func (mod *WiFiModule) injectPacket(data []byte) { + mod.Error("wifi frame injection is not supported on macOS (see https://github.com/bettercap/bettercap/issues/448)") +}