ARP Poisoning
Man-in-the-middle attack via ARP spoofing with DNS, SNI, HTTP, and FTP interception.
On this page
Perform ARP poisoning attacks to intercept network traffic between hosts and the gateway.
Overview
The ARP poisoning attack:
- Performs bidirectional ARP spoofing (victim ↔ gateway)
- Uses ICMP ping sweep + ARP scan for fast host discovery
- Passively discovers new hosts at runtime
- Intercepts and logs all DNS queries
- Extracts TLS Server Name Indication (SNI) from HTTPS connections
- Captures HTTP Host headers and request URLs
- Captures HTTP cookies for session hijacking
- Captures HTTP Authorization headers (Basic auth, Bearer tokens)
- Captures FTP credentials (USER/PASS commands)
- Proxies DNS using the network’s actual DNS server
- Forwards IP packets for transparent MITM
Starting the Attack
ethpoison start
This will:
- Scan the /24 subnet using ICMP ping and ARP requests
- Discover active hosts and their MAC addresses
- Begin bidirectional ARP poisoning
- Start DNS proxy on port 53
- Enable passive host discovery
- Enable packet inspection for SNI, HTTP, and FTP
Stopping the Attack
ethpoison stop
This will:
- Stop all poisoning tasks
- Restore ARP tables to correct values
- Display captured counts
Viewing Status
Check current attack status:
ethpoison status
Shows:
- Running state
- Number of poisoned hosts
- Number of captured domains (DNS + SNI + HTTP URLs)
- Number of captured cookies
- Number of captured credentials
Viewing Captured Domains
List all domains/URLs that were intercepted:
ethpoison list
Viewing Captured Cookies
List all HTTP cookies that were captured:
ethpoison cookies
Viewing Captured Credentials
List all credentials that were captured (HTTP Auth, FTP):
ethpoison creds
How It Works
- Host Discovery: ICMP echo requests wake up hosts, followed by ARP scanning
- ARP Spoofing: Sends forged ARP replies claiming to be the gateway (to victims) and each victim (to the gateway)
- DNS Interception: Receives DNS queries on port 53, logs them, forwards to the real DNS server
- SNI Extraction: Parses TLS ClientHello packets to extract server names from HTTPS connections
- HTTP Inspection: Extracts request URLs, Host headers, Cookies, and Authorization from HTTP traffic
- FTP Capture: Monitors port 21 for USER and PASS commands
- Packet Forwarding: Relays non-local traffic to maintain connectivity
- Passive Discovery: Monitors network traffic to discover new hosts without rescanning
Requirements
- Ethernet connection must be active
- IP forwarding should be enabled in firmware (
CONFIG_LWIP_IP_FORWARD=y) - Target hosts must use the gateway as their DNS server (common default)
Notes
- The attack automatically uses the network’s DNS server from DHCP
- New hosts discovered passively are automatically added to the poison list
- Stopping the attack restores ARP tables to prevent network disruption
- SNI extraction works even with HTTPS (encrypted content, but server name is visible)
- Cookies and Authorization are captured from unencrypted HTTP traffic only
- FTP credentials are captured in plaintext on port 21
