
☠ Punto de acceso inalámbrico de intermediario dentro de un contenedor docker 🐳
Convierte cualquier computadora Linux en una red Wi-Fi pública que realiza MITM silenciosamente en todo el tráfico HTTP. Se ejecuta dentro de un contenedor Docker usando hostapd, dnsmasq, y mitmproxy para crear una red inalámbrica honeypot abierta llamada "Public". Para más diversión, cambia el nombre de la red a "xfinitywifi" para conectar automáticamente a cualquiera que se haya conectado alguna vez a esas redes... están por todas partes.
DESCARGO: Este software es solo con fines educativos. No debe usarse para actividades ilegales. El autor no se hace responsable de su uso. No seas imbécil.
# clone the repo
git clone https://github.com/brannondorsey/mitm-router
cd mitm-router
# build the image this step can be omitted if you prefer to pull
# the image from the docker hub repository
docker build . -t brannondorsey/mitm-router
Ejecuta lo siguiente, reemplazando AP_IFACE e INTERNET_IFACE con tu dispositivo inalámbrico y los dispositivos ethernet/inalámbricos conectados a internet respectivamente. Puedes ver el nombre de tus dispositivos de red ejecutando ifconfig.
# run the container
docker run -it --net host --privileged \
-e AP_IFACE="wlan0" \
-e INTERNET_IFACE="eth0" \
-e SSID="Public" \
-v "$(pwd)/data:/root/data" \
brannondorsey/mitm-router
Si todo salió bien, deberías ver algo como esto:
Current MAC: a5:ae:f9:a4:b7:e3 (TP-LINK TECHNOLOGIES CO.,LTD.)
Permanent MAC: a5:ae:f9:a4:b7:e3 (TP-LINK TECHNOLOGIES CO.,LTD.)
New MAC: 00:d2:6b:d5:fe:bd (PHOTRON USA)
[ ok ] Starting system message bus: dbus.
[ ok ] Starting DNS forwarder and DHCP server: dnsmasq.
[ ok ] Starting advanced IEEE 802.11 management: hostapd.
Proxy server listening at http://0.0.0.0:1337
mitm-router captura transparentemente todo el tráfico HTTP enviado al enrutador en 10.0.0.1:80. No intercepta el tráfico HTTPS (puerto 443) ya que hacerlo alertaría al usuario de que se está llevando a cabo un posible ataque de hombre-en-el-medio. El tráfico entre URLs que comienzan con https:// no será capturado.
La carpeta mitm-router/data/ se comparte con el contenedor Docker para que podamos ver los archivos de captura que coloca allí en nuestra máquina host. Por defecto, encontrarás el archivo de captura mitmdump en mitm-router/data/http-traffic.cap.
También puedes conectar tu INTERNET_IFACE a un hotspot de tu teléfono para hacer MITM sobre la marcha ;)
Si algo parece haber salido mal, consulta la página de solución de problemas.
Detén el contenedor Docker para restablecer las reglas de enrutamiento de iptables.
# get the name of your container
docker ps
# attach to the container
docker stop <CONTAINER_NAME>
Proxy server listening at http://0.0.0.0:1337
[ ok ] Stopping DNS forwarder and DHCP server: dnsmasq.
[ ok ] Stopping advanced IEEE 802.11 management: hostapd.
[ ok ] Stopping system message bus: dbus.
received shutdown signal, exiting.
Por defecto, mitm-router aleatoriza la dirección MAC de tu AP_IFACE para anonimizar tu dispositivo de red. Esto se puede deshabilitar con la variable de entorno MAC="unchanged". También puedes establecer explícitamente la dirección MAC de AP_IFACE con MAC="XX:XX:XX:XX:XX:XX".
Las variables de entorno soportadas se enumeran a continuación con sus valores predeterminados:
# wireless device name that will be used for the Access Point
AP_IFACE="wlan0"
# device name that is used for the router's internal internet connection
# packets from AP_IFACE will be forwarded to this device
INTERNET_IFACE="eth0"
# wireless network name
SSID="Public"
# optional WPA2 password; if left empty network will be public
PASSWORD=""
# optional randomization of AP_IFACE MAC address
# can be set to a specific value like "XX:XX:XX:XX:XX:XX"
# or "unchanged" to leave the device MAC alone
MAC="random"
# tcpdump output file location inside the container
CAPTURE_FILE="/root/data/http-traffic.cap"
# optional mitmproxy filter
# see http://docs.mitmproxy.org/en/stable/features/filters.html
FILTER=""
Consulta la página de solución de problemas para más información.
Este punto de acceso se ejecuta dentro de Docker para aislamiento, asegurando que cualquier vulnerabilidad explotable en el punto de acceso no permita a un adversario acceder a tu computadora o red doméstica. Dicho esto, hay algunas advertencias que debes tener en cuenta:
--net host comparte todas las interfaces de red y las entradas de iptables de la máquina host con el contenedor Docker. Asume que un contenedor Docker vulnerable tendría acceso root a estos dispositivos.--privileged otorga permisos extendidos al contenedor Dockerufw en Linux) para bloquear el tráfico entrante en todos los puertos, de modo que las computadoras en la red 'Public' no tengan acceso a los servicios expuestos de tu máquina.Para mayor seguridad, prefiero ejecutar este contenedor Docker en una computadora dedicada, como una Raspberry Pi.
Este código comenzó como un fork duro de rpi-hostapd de simonschuang. El código ha sido fuertemente modificado para propósitos MITM.