HTTPS entschlüsseln

Bei der Auswertung von Netzwerkverkehr muss bei verschlüsselten Verbindungen nicht Schluss sein. Mit Analyse-Tools wie Burp kann man sich in HTTPS-Verbindungen einklinken und kontrollieren, was Anwendungen und Geräte an ihr Mutterschiff senden.

In Pocket speichern vorlesen Druckansicht 5 Kommentare lesen
Lesezeit: 5 Min.
Von
  • Ronald Eikenberg
Inhaltsverzeichnis

Das Pentesting-Tool Burp bietet eine Proxy-Funktion, durch die man auch HTTPS-Traffic mitlesen kann. Burp arbeitet dazu als sogenannter "Man in the Middle", ist also zwischen den beiden Verbindungspartnern positioniert. Der Proxy entschlüsselt den Datenaustausch mit dem Internet, protokolliert ihn und verschlüsselt ihn anschließend mit einem selbst generierten Zertifikat wieder. Damit der Client das Burp-Zertifikat akzeptiert, muss man die Burp-CA dort zur Liste der vertrauenswürdigen Herausgeber hinzufügen

Das funktioniert in aller Regel bei PCs, Smartphones und Tablets, allerdings nicht bei geschlossenen Systemen wie etwa Unterhaltungselektronik. Unter Umständen ist das aber auch gar nicht nötig, da solche Gerätschaften oft nicht überprüfen, ob das eingesetzte Zertifikat überhaupt von einem vertrauenswürdigen Herausgeber signiert wurde. Bei einem Test der c't haben drei von fünf untersuchten Smart-TVs beim Zertifikatscheck gepatzt.

Burp wurde in Java programmiert und läuft daher auf allen gängigen Desktop-Betriebssystemen – vorausgesetzt, es ist eine passende Laufzeitumgebung installiert. Unter Windows starten Sie den Proxy mit einem Doppelklick auf burpsuite_free_v1.5.jar, unter Mac OS X und Linux mit dem Befehl java -jar -Xmx2g burpsuite_free_v1.5.jar.

Die für die Analyse wichtigen Einstellungen finden Sie dann unter dem Reiter "Proxy". Ein Klick auf "Intercept is on" schaltet den interaktiven Modus ab, der bei jeder einzelnen HTTP-Anfrage eine Bestätigung erwartet. Der Proxy läuft jetzt bereits, nimmt aber nur Verbindungen vom lokalen Loopback-Interface des Rechners entgegen.

Damit der Proxy von allen Clients im gleichen Netz genutzt werden kann, aktivieren Sie die rot markierte Option.

Damit ihn auch andere Clients im lokalen Netz erreichen können, klicken Sie auf den Register-Reiter "Options" und markieren dort den einzigen vorhandenen Proxy Listener. Nach einem Klick auf "Edit" ändern Sie die Option "Bind to address" auf "All interfaces". Bei Bedarf können Sie in diesem Dialog auch den Port ändern, auf dem Burp lauscht. Standardmäßig ist Port 8080 eingestellt. Zum Abschluss fragt dann unter Umständen die besorgte Windows-Firewall nochmals, ob Sie dies wirklich gestatten möchten.

Jetzt müssen Sie den Client, dessen Netzwerkverkehr Sie analysieren möchten, dazu bringen, den Proxy für den Zugriff aufs Internet zu benutzen. Oft können Sie den Proxy einfach in die Netzwerkkonfiguration des Clients oder die Einstellungen der Anwendung eintragen. Besteht diese Möglichkeit nicht, müssen Sie zu härten Mitteln greifen, als hier beschrieben. In solchen Fällen können Sie den Datenverkehr etwa per ARP-Spoofing durch ein Analyse-System schleusen, auf dem ein SSL-Entschlüssler wie sslsniff läuft.

Damit zum Beispiel ein iPhone den Burp-Proxy benutzt, navigieren Sie zu den "Einstellungen/WLAN" und drücken neben dem Namen des genutzten WLANs auf das blaue Info-Symbol. Nun öffnet sich ein Menüseite, auf der Sie bis "HTTP-Proxy" nach unten scrollen. Dort aktivieren Sie "Manuell" und tragen IP-Adresse und Proxy-Port von Burp ein.

Zeit für einen ersten Test. Öffnen Sie mit dem Browser des Geräts eine HTTP-Seite wie http://heise.de, die sich wie gewohnt aufbauen sollte. Anschließend können Sie die Einzelheiten der Datenübertragung in Burps Register-Reite "History" unter die Lupe nehmen. Die erste GET-Anfrage auf http://heise.de quittiert der Heise-Server demnach mit einem Redirect auf die URL der Mobil-Seiten.

Burp erlaubt Einblicke in verschlüsselte Kommunikation.

Jetzt geht es den verschlüsselten Verbindungen an den Kragen. Wenn Sie jetzt die Adresse https://paypal.com aufrufen, sollte Sie der Client warnen, dass etwas mit dem SSL-Zertifikat nicht stimmt. Genauer gesagt bekommt er ein Zertifikat vorgesetzt, das nicht von einem vertrauenswürdigen Herausgeber signiert wurde. Um diese Warnung abzustellen – schließlich handelt es sich in diesem Fall nicht um einen Angriff, sondern um einen gewollten Effekt – fügen Sie das CA-Zertifikat von Burp zur Liste der vertrauenswürdigen Herausgeber hinzu.

Dazu müssen Sie allerdings erst mal an das Zertifikat herankommen, was in der Gratis-Version von Burp etwas umständlich ist. Am besten nutzen Sie die Desktop-Variante von Firefox. Diese kann auch auf dem gleichen Rechner wie Burp laufen. Tragen Sie im Firefox-Menü unter "Einstellungen/Einstellungen/Erweitert/Einstellungen/Netzwerk" den Burp-Proxy für alle Protokolle ein. Anschließend steuern Sie wieder eine HTTPS-Seite an, um eine Zertifikatswarnung zu provozieren.

Klicken Sie in der Fehlermeldung auf "Ich kenne das Risiko/Ausnahmen hinzufügen…/Ansehen…/Details" und wählen die "PortSwigger CA" an oberster Stelle der Zertifikatshierarchie aus. Nach einem Klick auf "Exportieren" speichern Sie das Zertifikat im Format "X.509-Zertifikat (PEM)" als .crt-Datei auf der Platte.

Dieses CA-Zertifikat schicken Sie per Mail an sich selbst und öffnen den Dateianhang auf dem iPhone. Nach mehreren Bestätigungen ist der neue Zertifikatsherausgeber dann installiert. Mit Android können Sie ab Version 4.0 Ice Cream Sandwich ebenso verfahren, bei älteren Versionen müssen Sie tiefer in die Trickkiste greifen und benötigen unter Umständen Root-Rechte.

Et voilà: Nach einem Neustart des Safari-Browsers auf dem iPhone entschlüsselt Burp die komplette Kommunikation über HTTPS. Jetzt können Sie sich ganz der Traffic-Auswertung widmen. (rei)