Mit dem Programm mitmproxy (https://mitmproxy.org) kann mittels eigenem Zertifikat als MITM eine HTTPS-Verbindung mitgelesen werden.
Installation von mitmproxy
Installation über die Paketverwaltung:
apt install mitmproxy
Das Paket wird von Debian GNU/Linux und auch Kali Linux bereitgestellt.
Ansonsten kann mitmproxy über Python mittels PIP installiert werden (Das funktioniert auch unter Cygwin und auch unter Windows - Python gibt es im Microsoft Store. Wobei ein C/C++ Compiler benötigt wird):
pip install mitmproxy
SOCKS-Proxy starten
mitmweb --mode socks5 --no-web-open-browser
Dies startet einen SOCKS-Proxy Server am Port TCP/8080 und das HUD ist als Web-Interface unter http://localhost:8081 verfügbar.
x-www-browser http://localhost:8081 http://mitm.it
Zertifikate importieren
Die Zertifikate befinden sich unter ~/.mitmproxy und es muss i.d.R. das mitmproxy-ca-cert.p12 importiert werden. Dieses (neue) Format fast die anderen einzelnen Dateien als eine Datei zusammen.
Ansonsten ist es wichtig, das Zertifikat ~/.mitmproxy/mitmproxy-ca-cert.cer als CA in den Webbrowser zu importieren und als SOCKS-Proxy den Socket 127.0.0.1:8080 anzugeben.
Für Firefox öffne dazu Einstellungen/Datenschutz und Sicherheit/Zertifikate/Zertifikate anzeigen/Zertifizierungsstellen/Importieren… und importiere ~/.mitmproxy/mitmproxy-ca-cert.cer und aktiviere Dieser CA vertrauen, um Websites zu identifizieren.
Siehe auch: Zertifizierungsstellen in Firefox einrichten
Traffic über Proxy leiten
Außerdem muss auch eingestellt werden den Proxy s.o. zu nutzen.
Für Firefox öffne dazu Einstellungen/Allgemein/Verbindungs-Einstellungen, aktiviere Manuelle Proxy-Konfiguration und setze SOCKS-Host und Port.
Siehe auch: Verbindungs-Einstellungen in Firefox
Transparent Proxy
Wird ein Transparent Proxy z.B. für Android und/oder Windows benötigt, erstellt man einen WLAN Hotspot wie folgt (Das Zertifikat s.o. muss dann zu den OS CAs hinzugefügt werden):
#!/usr/bin/env sudo # Set up a WiFi hotspot in Kali Linux wifi_ap=wlan0 gateway=eth0 sysctl net.ipv4.conf.$wifi_ap.forwarding=1 sysctl net.ipv6.conf.$wifi_ap.forwarding=1 iptables -t nat -A PREROUTING -i $wifi_ap -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 8080 iptables -t nat -A POSTROUTING -o $gateway -j MASQUERADE ip6tables -t nat -A PREROUTING -i $wifi_ap -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 8080 ip6tables -t nat -A POSTROUTING -o $gateway -j MASQUERADE nmcli dev wifi hotspot ifname $wifi_ap nmcli dev wifi show-password
Und dann mitmproxy starten:
# startet den Proxy; benötigt kein root mitmweb --mode transparent --no-web-open-browser
Für mehr Informationen siehe auch mitmweb --help
, nmcli --help
und iptables --help
.
Wie man unter Android oder Windows das Zertifikat importiert und den Proxy setzt, entnehmen Sie bitte dem Benutzerhandbuch. Kurz: Das Webinterface lokal unter http://localhost:8081 aufrufen und zum Zertifikate einrichten remote die URL http://mitm.it aufrufen.