vamp-arp-sentinel
Passive ARP spoofing detector with proof-of-concept ARP cache poisoning lab mode
VampSecure Labs · Security Research Division
Overview
vamp-arp-sentinel is a network security tool combining passive ARP spoofing detection with a controlled proof-of-concept attacker mode for lab environments. In sentinel mode, it captures ARP traffic via Scapy with a BPF arp filter, builds a trusted IP→MAC table during a configurable learning phase, then seals the table and generates CRITICAL alerts whenever a known IP maps to a different MAC address — the definitive signature of ARP cache poisoning and Man-in-the-Middle attacks. In attacker mode, it sends forged ARP reply packets to validate that detection controls are correctly catching the attack in an authorized lab network.
Scope enforcement via CIDR subnet filtering ensures the tool operates only within explicitly authorized network ranges.
Features
- Two-phase sentinel detection: learning phase builds the canonical IP→MAC table; sealed phase raises CRITICAL alerts on any MAC change for a known IP
- Real-time Rich terminal display — live-updating split layout with the IP/MAC table (top) and alert panel (bottom), refreshed at 2 Hz
- Scope enforcement — limit monitoring to authorized subnets via
--subnet CIDRor ascope.txtfile with one CIDR per line; IPs outside scope are silently ignored - Configurable learning window —
--learn-timesets how long the sentinel observes before sealing the table (default: 10 seconds) - Proof-of-concept attacker — sends ARP
is-atbroadcast replies claiming a target IP belongs to the tool's MAC; useful for validating that DAI / DHCP Snooping rules trigger correctly - Configurable attack interval for the PoC mode via
--interval - Packet capture via Scapy with BPF filter
arp— only ARP reply packets (op=2) are processed, minimizing CPU overhead - Unified VSL client report (HTML/PDF) from
sentinelsessions via--report-html/--report-pdf - Requires root privileges (raw packet capture)
Requirements
pip install -r requirements.txt
| Package | Version |
|---|---|
scapy |
>= 2.5.0 |
rich |
>= 13.7.0 |
Standard library: argparse, ipaddress, os, sys, threading, time, datetime.
Installation
git clone https://github.com/belky-me/vamp-arp-sentinel.git
cd vamp-arp-sentinel
pip install -r requirements.txt
Requires root or CAP_NET_RAW capability for raw packet capture.
Usage
python vamp_arp_sentinel.py --help
Two subcommands are available: sentinel and attacker.
usage: vamp-arp-sentinel {sentinel,attacker} ...
subcommands:
sentinel Detect ARP spoofing on the network (passive + alert)
attacker Send forged ARP replies for lab validation (PoC only)
Examples
Monitor interface eth0 with a 15-second learning phase:
sudo python vamp_arp_sentinel.py sentinel -i eth0 --learn-time 15
Restrict monitoring to an authorized subnet only:
sudo python vamp_arp_sentinel.py sentinel -i eth0 --subnet 192.168.10.0/24
Load authorized subnets from a scope file:
sudo python vamp_arp_sentinel.py sentinel -i eth0 --scope scope.txt
Run sentinel and generate an HTML client report at session end:
sudo python vamp_arp_sentinel.py sentinel -i eth0 --learn-time 30 \
--subnet 10.0.0.0/24 --report-html arp_report.html
PoC: send forged ARP replies in a lab environment (authorized only):
sudo python vamp_arp_sentinel.py attacker 192.168.1.100 192.168.1.1 -i eth0
PoC: faster attack rate (1-second interval between packets):
sudo python vamp_arp_sentinel.py attacker 192.168.1.100 192.168.1.1 -i eth0 --interval 1
Sentinel Alert Structure
Each alert captures:
| Field | Description |
|---|---|
| Timestamp | HH:MM:SS of detection |
| IP | IPv4 address whose MAC changed |
| Original MAC | MAC address registered during learning phase |
| New MAC | Spoofed MAC address detected after table sealing |
Output
Sentinel mode: live dual-panel terminal display. At session end (Ctrl+C), a summary panel shows total entries learned and total alerts raised.
Attacker mode: live table of sent packets with sequence number, payload (FAKE_IP is-at OUR_MAC), and timestamp.
Part of VampSecure Labs Toolkit
This tool is part of the VampSecure Labs Security Toolkit — a collection of research-grade security tools for authorized penetration testing and red/blue team exercises.
- Full toolkit: github.com/belky-me
- Orchestrator: github.com/belky-me/vamp-orchestrator
© VampSecure Studios — VampSecure Labs Security Research Division
For authorized security testing only.
Release files for vamp-arp-sentinel 2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vamp_arp_sentinel-2.0.tar.gz | 20.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vamp_arp_sentinel-2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.8 kB
Release files / vamp_arp_sentinel-2.0.tar.gz
| Download URL | vamp_arp_sentinel-2.0.tar.gz |
|---|---|
| Size | 20.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
53d32904b5912e2f0bcfd05a734989241a1f75b187bbe1db2040e9a6df14ed7a
|
|
BLAKE2b-256 checksum How to use checksums |
4776a446bba5b299aeb197ddb0bd2cff0a3e221553170966b20020d9b5948950
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / vamp_arp_sentinel-2.0-py3-none-any.whl
| Download URL | vamp_arp_sentinel-2.0-py3-none-any.whl |
|---|---|
| Size | 21.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c14b6020eea1eb07d01cc1b98cdeed3d1e4525be0590c4d73583368def71c15
|
|
BLAKE2b-256 checksum How to use checksums |
8f82be274a9bbc18e1c7f2044c46506619acd035a95df92b960f2216f82a716e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|