
☠ Punto di accesso wireless man-in-the-middle all'interno di un contenitore Docker 🐳
Trasforma qualsiasi computer Linux in una rete Wi-Fi pubblica che intercetta in modo silenzioso tutto il traffico HTTP. Viene eseguito all'interno di un container Docker utilizzando hostapd, dnsmasq e mitmproxy per creare una rete wireless honeypot aperta chiamata "Public". Per divertimento aggiuntivo, cambia il nome della rete in "xfinitywifi" per connettere automaticamente chiunque si sia mai connesso a quelle reti... sono ovunque.
DICHIARAZIONE DI NON RESPONSABILITÀ: Questo software è solo per scopi educativi. Non deve essere utilizzato per attività illegali. L'autore non è responsabile per il suo utilizzo. Non fare lo stronzo.
# 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
Esegui il seguente comando, sostituendo AP_IFACE e INTERNET_IFACE rispettivamente con il tuo dispositivo wireless e il dispositivo ethernet/wireless connesso a Internet. Puoi vedere i nomi dei tuoi dispositivi di rete eseguendo 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
Se tutto è andato bene, dovresti vedere qualcosa del genere:
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 cattura in modo trasparente tutto il traffico HTTP inviato al router su 10.0.0.1:80. Non intercetta il traffico HTTPS (porta 443) poiché ciò avviserebbe l'utente che è in corso un possibile attacco man-in-the-middle. Il traffico verso URL che iniziano con https:// non verrà catturato.
La cartella mitm-router/data/ è condivisa con il container Docker in modo da poter visualizzare i file di cattura che vengono inseriti lì sulla nostra macchina host. Per impostazione predefinita, troverai il file di cattura mitmdump in mitm-router/data/http-traffic.cap.
Puoi anche connettere la tua INTERNET_IFACE a un hotspot in esecuzione sul tuo telefono per un pwnage mitm in movimento ;)
Se qualcosa sembra essere andato storto, consulta la pagina di risoluzione dei problemi.
Spegni il container Docker per reimpostare le regole di routing iptable.
# 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.
Per impostazione predefinita, mitm-router randomizza l'indirizzo MAC della tua AP_IFACE per anonimizzare il tuo dispositivo di rete. Questo può essere disabilitato con la variabile d'ambiente MAC="unchanged". Puoi anche impostare esplicitamente l'indirizzo MAC di AP_IFACE con MAC="XX:XX:XX:XX:XX:XX".
Le variabili d'ambiente supportate sono elencate di seguito con i loro valori predefiniti:
# 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 pagina di risoluzione dei problemi per maggiori informazioni.
Questo punto di accesso viene eseguito all'interno di Docker per l'isolamento, assicurando che eventuali vulnerabilità sfruttabili nel punto di accesso non consentano a un avversario l'accesso al tuo computer o alla rete domestica. Detto questo, ci sono alcune avvertenze da tenere presenti:
--net host condivide tutte le interfacce di rete e le voci iptables della macchina host con il container Docker. Supponiamo che un container Docker vulnerabile avrebbe accesso root a questi dispositivi.--privileged concede permessi estesi al container Dockerufw su Linux) per bloccare il traffico in entrata su tutte le porte, in modo che i computer sulla rete "Public" non abbiano accesso ai servizi esposti sulla tua macchina.Per maggiore sicurezza, preferisco eseguire questo container Docker su un computer dedicato, come un Raspberry Pi.
Questo codice è nato come un fork diretto di rpi-hostapd di simonschuang. Il codice è stato pesantemente modificato per scopi mitm.