Montag, Mai 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.