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.
