Monday, May 31, 2021

HTTPS-Verschlüsselung knacken

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.