
Una suite profesional de suplantación de red en Python, totalmente asíncrona, para auditorías de seguridad autorizadas. Incluye interceptación completa de IPv4/IPv6, ataques inalámbricos 802.11, envenenamiento LLMNR/NBT-NS y una TUI interactiva con registro de auditoría a prueba de manipulaciones.
Suite profesional de suplantación de red en Python asíncrono Interfaz interactiva basada en menús · Cobertura completa IPv4/IPv6 · Envenenamiento al estilo Responder Solo para pruebas de seguridad autorizadas — por amibhai
Descargo de responsabilidad: Esta herramienta es solo para fines educativos y auditorías de seguridad autorizadas. Los autores no asumen ninguna responsabilidad y no son responsables de ningún uso indebido o daño causado por este programa. No utilice esta herramienta en redes que no sean de su propiedad o para las que no tenga permiso explícito y por escrito para realizar pruebas.
| Módulo | Descripción |
|---|---|
attacks/deauth.py | Desautenticación 802.11 — expulsa clientes, captura handshakes WPA |
attacks/beacon_flood.py | Inundación de balizas 802.11 — tormenta de SSID falsos |
attacks/llmnr_nbt.py | Envenenamiento LLMNR + NBT-NS + mDNS (captura de hashes al estilo Responder) |
attacks/icmpv6_ra.py | Suplantación de Router Advertisement ICMPv6 — secuestro de puerta de enlace IPv6 |
attacks/ndp_spoof.py | Envenenamiento de Neighbor Advertisement NDP IPv6 — suplantación ARP IPv6 |
attacks/captive_portal.py | Portal cautivo (plantillas de hotel/corporativo/cafetería/ISP) |
attacks/wpad.py | Inyección de autoconfiguración de proxy WPAD |
core/platform_compat.py | Abstracción de macOS pf + Linux iptables + Windows netsh |
| Jitter de temporización | Retardo aleatorio de ±N segundos en cada ráfaga de paquetes para evasión de IDS |
| CI de GitHub Actions | pytest + mypy + umbral de cobertura (≥80%) en Python 3.10–3.12 |
| Docker | docker build + docker-compose up para despliegue portátil |
| pyproject.toml | Empaquetado moderno, configuración estricta de mypy, lint con ruff, configuración de cobertura |
| Característica | Detalles |
|---|---|
| Autorización | Archivo de alcance de reglas de enfrentamiento — se rechaza el fuego real para cualquier objetivo fuera de alcance o fuera de ventana; sin alcance ⇒ solo simulación |
| Arquitectura | Python 3.10+ 100% asíncrono — cero threading.Thread |
| Interfaz | Banner animado de 256 colores + menús numerados + migas de pan |
| Panel | TUI en vivo PRISM de 3 paneles (registro de ataques / estadísticas de paquetes / credenciales) |
| Registro | Rastro de auditoría structlog encadenado con HMAC-SHA256 (a prueba de manipulación) |
| Informes | JSON + Markdown + HTML generados automáticamente tras cada sesión |
| Idiomas | Detección automática desde LANG + cambio manual (en, hi, ar, zh, fr, es) |
| Verificación previa | Sistema de 17 comprobaciones (alcance, root, Python, dependencias, interfaces, terminal) |
| Limpieza | Siempre restaura las tablas ARP/NDP y las reglas de iptables/pf en finally |
| Plataforma | Linux (completo) · macOS (backend pf) · Windows (Npcap, limitado) |
Los enfrentamientos reales se definen mediante un alcance firmado. Este toolkit impone uno en el código: no transmitirá un solo paquete a un objetivo que no esté explícitamente autorizado, dentro de una ventana de enfrentamiento abierta. Esta es la diferencia entre un instrumento profesional de red team y un script indiscriminado.
rules/engagement.example.json.SPOOF_TOOLKIT_SCOPE.Session.guard(...) antes de tocar un objetivo. Un
objetivo fuera de los rangos autorizados — o una ventana de enfrentamiento que se ha cerrado
— lanza AuthorizationError y el ataque es rechazado.fingerprint SHA-256 — se escribe
en el registro de auditoría encadenado con HMAC y en cada informe de sesión, de modo que el informe demuestra
exactamente qué se autorizó.# 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 | Significado |
|---|---|
engagement_id | obligatorio — identificador único del encargo |
authorized_by | obligatorio — parte nombrada que autoriza la prueba (SOW / ticket) |
client, operator, contact, notes | metadatos del encargo para la pista de auditoría |
start, end | ventana ISO-8601 (se asume UTC si no hay desplazamiento); cualquiera de los límites puede omitirse para un rango abierto |
authorized_networks | CIDR IPv4/IPv6 o hosts sin máscara que pueden ser objetivo |
authorized_macs / authorized_ssids / authorized_bssids | listas de permitidos para objetivos L2 / inalámbricos |
denied_networks / denied_macs | listas de no ataque — siempre prevalecen sobre las listas de permitidos |
Fail-closed por diseño: una lista de permitidos vacía no autoriza nada, y un
host dentro de rango en una entrada de denied_networks (p. ej. un controlador
de dominio dentro de un /24 autorizado por lo demás) es rechazado.
Modo seguro.
session.safe_mode = Truefuerza la ejecución en seco incluso con un alcance válido cargado — úsalo para ensayar un encargo de principio a fin sin transmitir.
| Módulo | Archivo | Descripción |
|---|---|---|
| ARP Spoofing | attacks/arp_spoof.py | Envenenamiento de caché — MitM, DoS, unidireccional, solo gateway |
| DNS Spoofing | attacks/dns_spoof.py | Inyección de respuestas — selectiva, spoof-all, archivo de reglas, NXDOMAIN |
| MitM combinado | attacks/combined_mitm.py | ARP + DNS + captura de credenciales completo (asyncio.TaskGroup) |
| SSL Strip | attacks/ssl_strip.py | Proxy transparente de degradación de HTTPS (Linux/macOS) |
| DHCP fraudulento | attacks/rogue_dhcp.py | Secuestro de la puerta de enlace predeterminada mediante servidor DHCP falso (sigiloso) |
| LLMNR/NBT-NS | attacks/llmnr_nbt.py | NUEVO — Envenenamiento LLMNR + NBT-NS + mDNS, captura de hashes NTLMv2 |
| WPAD | attacks/wpad.py | NUEVO — Inyección de autoconfiguración de proxy del navegador |
| Portal cautivo | attacks/captive_portal.py | NUEVO — Página de inicio de sesión falsa con 4 plantillas |
| Módulo | Archivo | Descripción |
|---|---|---|
| Deauth | attacks/deauth.py | NUEVO — Desautenticación 802.11 (dirigida + broadcast), captura de handshake WPA |
| Beacon Flood | attacks/beacon_flood.py | NUEVO — Inunda el espectro con cientos de SSID falsos |
| Escáner de AP | attacks/deauth.py | NUEVO — Escáner pasivo de beacons 802.11 |
| Escáner de clientes | attacks/deauth.py | NUEVO — Detecta clientes asociados a un AP |