
Una suite professionale di spoofing di rete in Python completamente asincrona per audit di sicurezza autorizzati. Include intercettazione completa IPv4/IPv6, attacchi wireless 802.11, avvelenamento LLMNR/NBT-NS e una TUI interattiva con registrazione di audit a prova di manomissione.
Suite professionale di spoofing di rete in Python asincrono UI interattiva a menu · Copertura completa IPv4/IPv6 · Poisoning in stile Responder Solo per test di sicurezza autorizzati — di amibhai
Disclaimer: Questo strumento è destinato esclusivamente a scopi educativi e a verifiche di sicurezza autorizzate. Gli autori non si assumono alcuna responsabilità e non sono responsabili per qualsiasi uso improprio o danno causato da questo programma. Non utilizzare questo strumento su reti di cui non si è proprietari o per le quali non si dispone di esplicita autorizzazione scritta per il test.
| Modulo | Descrizione |
|---|---|
attacks/deauth.py | Deautenticazione 802.11 — disconnessione dei client, cattura degli handshake WPA |
attacks/beacon_flood.py | Flood di beacon 802.11 — tempesta di SSID falsi |
attacks/llmnr_nbt.py | Poisoning LLMNR + NBT-NS + mDNS (cattura di hash in stile Responder) |
attacks/icmpv6_ra.py | Spoofing di Router Advertisement ICMPv6 — dirottamento del gateway IPv6 |
attacks/ndp_spoof.py | Poisoning di Neighbor Advertisement NDP IPv6 — ARP spoof IPv6 |
attacks/captive_portal.py | Captive portal (template hotel/aziendale/caffè/ISP) |
attacks/wpad.py | Iniezione di auto-configurazione proxy WPAD |
core/platform_compat.py | Astrazione macOS pf + Linux iptables + Windows netsh |
| Jitter temporale | Ritardo casuale di ±N secondi su ogni burst di pacchetti per l'evasione IDS |
| GitHub Actions CI | pytest + mypy + soglia di copertura (≥80%) su Python 3.10–3.12 |
| Docker | docker build + docker-compose up per un deployment portabile |
| pyproject.toml | Packaging moderno, configurazione mypy strict, lint ruff, configurazione della copertura |
| Funzionalità | Dettagli |
|---|---|
| Autorizzazione | File di scope delle rules-of-engagement — l'esecuzione reale viene rifiutata per qualsiasi target fuori scope o fuori finestra; nessuno scope ⇒ solo dry-run |
| Architettura | Python 3.10+ 100% asincrono — zero threading.Thread |
| UI | Banner animato a 256 colori + menu numerati + breadcrumb |
| Dashboard | TUI live PRISM a 3 pannelli (log attacchi / statistiche pacchetti / credenziali) |
| Logging | Audit trail structlog concatenato con HMAC-SHA256 (a prova di manomissione) |
| Report | JSON + Markdown + HTML generati automaticamente dopo ogni sessione |
| Lingue | Rilevamento automatico da LANG + cambio manuale (en, hi, ar, zh, fr, es) |
| Preflight | Sistema di 17 controlli (scope, root, Python, dipendenze, interfacce, terminale) |
| Pulizia | Ripristina sempre le tabelle ARP/NDP e le regole iptables/pf in finally |
| Piattaforma | Linux (completo) · macOS (backend pf) · Windows (Npcap, limitato) |
Gli ingaggi reali sono definiti da uno scope firmato. Questo toolkit ne impone uno a livello di codice: non trasmetterà un singolo pacchetto verso un target che non sia esplicitamente autorizzato, all'interno di una finestra di ingaggio aperta. Questa è la differenza tra uno strumento professionale da red team e uno script indiscriminato.
rules/engagement.example.json.SPOOF_TOOLKIT_SCOPE.Session.guard(...) prima di toccare un target. Un
target al di fuori degli intervalli autorizzati — o una finestra di ingaggio chiusa
— solleva AuthorizationError e l'attacco viene rifiutato.fingerprint SHA-256 — viene scritta
nel log di audit concatenato con HMAC e in ogni report di sessione, così il report dimostra
esattamente cosa è stato autorizzato.# 1. Copy and edit the template with your engagement details + authorized targets
cp rules/engagement.example.json rules/my-engagement.json
# 2. Point the toolkit at it (enables live fire for in-scope targets only)
export SPOOF_TOOLKIT_SCOPE=rules/my-engagement.json
# 3. Verify it loaded and the window is open
sudo -E python3 spoof_toolkit.py --preflight
| Campo | Significato |
|---|---|
engagement_id | obbligatorio — identificatore univoco dell'engagement |
authorized_by | obbligatorio — soggetto nominato che autorizza il test (SOW / ticket) |
client, operator, contact, notes | metadati dell'engagement per la traccia di audit |
start, end | finestra ISO-8601 (UTC presunto se manca l'offset); entrambi i limiti possono essere omessi per una finestra aperta |
authorized_networks | CIDR IPv4/IPv6 o host singoli che possono essere presi di mira |
authorized_macs / authorized_ssids / authorized_bssids | allowlist per il targeting L2 / wireless |
denied_networks / denied_macs | liste no-strike — prevalgono sempre sulle allowlist |
Fail-closed per progettazione: un'allowlist vuota non autorizza nulla, e un
host nell'intervallo presente in una voce denied_networks (ad es. un domain
controller all'interno di una /24 altrimenti autorizzata) viene rifiutato.
Safe mode.
session.safe_mode = Trueforza il dry-run anche con uno scope valido caricato — usalo per provare un engagement end-to-end senza trasmettere.
| Modulo | File | Descrizione |
|---|---|---|
| ARP Spoofing | attacks/arp_spoof.py | Avvelenamento della cache — MitM, DoS, unidirezionale, solo gateway |
| DNS Spoofing | attacks/dns_spoof.py | Iniezione di risposte — selettiva, spoof-all, file di regole, NXDOMAIN |
| MitM combinato | attacks/combined_mitm.py | ARP + DNS + cattura credenziali completo (asyncio.TaskGroup) |
| SSL Strip | attacks/ssl_strip.py | Proxy trasparente di downgrade HTTPS (Linux/macOS) |
| DHCP Rogue | attacks/rogue_dhcp.py | Dirottamento del gateway predefinito tramite server DHCP falso (stealthy) |
| LLMNR/NBT-NS | attacks/llmnr_nbt.py | NUOVO — avvelenamento LLMNR + NBT-NS + mDNS, cattura hash NTLMv2 |
| WPAD | attacks/wpad.py | NUOVO — iniezione della configurazione automatica del proxy del browser |
| Captive Portal | attacks/captive_portal.py | NUOVO — pagina di login falsa con 4 template |
| Modulo | File | Descrizione |
|---|---|---|
| Deauth | attacks/deauth.py | NUOVO — deautenticazione 802.11 (mirata + broadcast), cattura handshake WPA |
| Beacon Flood | attacks/beacon_flood.py | NUOVO — inonda l'etere con centinaia di SSID falsi |
| AP Scanner | attacks/deauth.py | NUOVO — scanner passivo dei beacon 802.11 |
| Client Scanner | attacks/deauth.py | NUOVO — rileva i client associati a un AP |