SSL Certificate Pinning bypass – HTTPS Traffic von Facebook hacken

Man in the middle Attacken scheitern oft am SSL Certificate Pinning – mit XPosed und SSL Unpinning ist das kein Problem mehr.

Das sogenannte HTTP Public Key Pinning (HPKP) wurde bereits im November 2017 von Google vorgeschlagen. Der Konzern erkannte schon früh, dass die steigende Anzahl an Man in the middle Angriffen mit gefälschten Zertifikaten früher oder später zu einem Problem werden würde. Trotzdem sollte es noch bis April 2015 dauern, bis das Verfahren unter RFC 7469 standardisiert wurde.

Viele Webseitenbetreiber waren mit der Komplexität von HPKP überfordert. Eine schnelle und fehlerfreie Einführung war somit nicht möglich. Google arbeitet derweil bereits am nächsten Standard, um die Korrektheit von SSL Zertifikaten zu überprüfen. Das Katz-und-Maus-Spiel wird dementsprechend auch in den nächsten Jahren weitergeführt werden.

SSL Certificate Pinning (bypass) umgehen

Im eigentlichen Sinne ist das SLL Certificate Pinning ein clientseitiges Verfahren. Um dieses zu umgehen bzw. bypassen, müssen also die Anwendung und die Laufzeitumgebung angepasst werden.

Die erste Möglichkeit auf Smartphones besteht darin, die betroffene App neu zu kompilieren und die SSL Certificate Pinning Logik zu entfernen. In manchen Fällen reicht es aber aus, das von der App genutzte Zertifikat einfach auszutauschen.

Für die verschiedenen Plattformen existieren einige Tools, welche teilweise auch automatisch das SSL Certificate Pinning bypass umgehen. Im Zweifel bieten die Lösungen auch eine manuelle Herangehensweise an.

Unpinning unter iOS

Alle Lösungen benötigen ein Gerät mit Jailbreak, anders lassen sich iOS Apps und Geräteeigenschaften nicht manipulieren. Zurzeit empfiehlt sich vor allem die Anwendung folgender Lösungen:

    • iOS SSL Kill Switch
      Dieses Tool benötigt den Paketmanager Cydia, ein bekanntes Paket für Tweaks und Software aus der Jailbreak Szene. Nachdem man die Anwendungen dpkg, MobileSubstrate und PreferenceLoader installiert hat, lässt sich iOS-Kill-Switch nach den Installationsanweisungen einrichten.iOS Geräte nutzen die Systemfunktionen SSLSetSessionOption() und SSLHandshake() aus der Secure-Transport-API. Diese Funktionen werden nun ersetzt, wodurch sich in vielen Fällen das SSL Certificate Pinning umgehen lässt.
    • iOS TrustMe
      Auch dieses Tool benötigt ein Endgerät mit Jailbreak und dem bekannten Paketmanager Cydia. Durch diesen “Tweak” wird die SecTrustEvaluate Funktion deaktiviert, wodurch so gut wie alle SSL-Sicherheitsfunktionen ebenfalls deaktiviert werden.Als Voraussetzung müssen die beiden Pakete dpkg und MobileSubstrate vorhanden sein, wobei Letzteres bei Geräten mit Jailbreak vorhanden sein sollte. Die Einrichtung mit dpkg ist in der Installationsanweisung beschrieben.

Unpinning unter Android

Unter Android wird ein Endgerät benötigt, welches vorher gerootet wurde. Dadurch erst erhält man den vollen Zugriff auf die Systemdateien und die Konsole.

Empfohlen wird die Nutzung des Frameworks Xposed, da es tiefe Systemeingriffe und Modifikationen ermöglicht, ohne die Firmware auf z.B. CyanogenMod zu wechseln.  Die besten Voraussetzungen für Xposed erreicht man, indem das Gerät mit TWRP geflasht wurde.

Xposed auf dem Android Gerät installieren

Mit unserer Schritt-für-Schritt Anleitung lässt sich Xposed leicht auf einem beliebigen Android Smartphone oder Tablet installieren:

1. Vorbereitung

Stelle sicher, dass dein Endgerät gerootet ist und am besten mit TWRP geflasht wurde.

2. Xposed Installer Download

Lade dir auf der Xposed Webseite die passende “Xposed Installer APK” herunter. Wichtig: Für Android Lollipop, Marshmallow, Nougat und Oreo befindet sich der Download im XDA Forum.

3. Xposed Installer Installation

Im nächsten Schritt installierst du das bereits heruntergeladene Xposed Paket. Eventuell musst du vorher die Installation aus fremden Quellen erlauben.

4. Xposed Framework Download

Lade dir nun die zum Installer passende Framework-ZIP herunter. Es muss unbedingt die zur Android Version und der Prozessorarchitektur passende ZIP-Datei heruntergeladen werden.

5. Xposed Framework Installation

Starte dein Gerät nun im Recovery-Modus neu. Im TWRP Menü kannst du jetzt den “Install” Button betätigen und die heruntergeladene ZIP-Datei auswählen. Bestätige danach die Installation des Archivs und warte, bis der Prozess abgeschlossen ist. Falls du eine andere Lösung als TWRP nutzt, kann die Menüführung etwas abweichen. Abschließend wählst du den Button “Reboot” an. Dein Gerät startet nun ein weiteres mal neu. Beachte: Der erste Neustart unter Xposed dauert meist etwas länger.

6. SSL Unpinning Modul

Nun kommen wir zum eigentlichen Tweak: Im nächsten Schritt lädst du das SSL Unpinning Modul für Xposed herunter. Es handelt sich dabei ebenfalls um ein einfaches APK Paket. Nach dem Download installierst du das Paket auf bekannte Art und Weise.

7. SSL Unpinning Modul aktivieren

In der Xposed App musst du nun das SSL Unpinning Module unter “Modules” aktivieren. Wichtig: Es ist ein weiterer Neustart erforderlich, andernfalls wird das Modul nicht funktionieren.

8. SSL Unpinning Modul nutzen

Du kannst nun im SSL Unpinning Modul (Du findest es in der Xposed App unter “Modules”) bequem das Unpinning für einzelne Apps an- und ausschalten. Schalte es aus Sicherheitsgründen nur für Apps ein, die du auch mit einer Man in the middle Attack angreifen möchtest.

Mit der Man in the Middle Attacke loslegen

Nach der Installation von Xposed und dem SSL Pinning bypass Modul ist dein Gerät einsatzbereit für Man in the middle Attacken, selbst wenn die Apps gut durch neueste und moderne SSL Techniken gesichert sind. Falls du wissen möchtest, wie du mit dem kostenlose und genialen Programm Charles Proxy solche Attacken durchführst, findest du hier eine strukturierte Anleitung.

Facebook HTTPS Traffic auslesen

Um nun den HTTPS Traffic der Facebook App auszulesen, kannst du am besten die beschriebene Lösung unter Verwendung von Xposed und dem SSL Unpinning Modul nutzen. In sehr alten Versionen der Facebook-Android-App war es möglich, einfach das Paket neu zu packen. Durch den Austausch des SSL Zertifikats mit einer eigenen Fälschung wurde das SSL Certificate Pinning umgangen.

Die beschriebenen Methoden spiegeln den aktuellen Stand wieder. Es kann sein, dass insbesondere für neuere Apps einzelne Schritte angepasst werden müssen. Das Verfahren bleibt aber grundsätzlich gleich. Wenn du weitere Alternativen oder Tools kennst, bist du herzlich dazu eingeladen dies in den Kommentaren zu vermerken.

Was bringt die Zukunft?

Google war schon bei der Entwicklung des RFC 7469 Standards die federführende Institution. Wenig überraschend ist daher der Fakt, dass Google bereits am nächsten Schritt arbeitet. Im Oktober 2017 schlug Chris Palmer, Mitinitiator des HPKP und Mitarbeiter bei Google Chrome, vor, das SSL Certificate Pinning schnellstmöglich als veraltet zu definieren.

Stattdessen soll das Certificate Transparency Verfahren für alle SSL Zertifikate verpflichtend werden. Alle anderen Zertifikate wären damit unter Nutzung des Google Chrome Browsers unbrauchbar.

Wenn man auf die Entwicklung des eigentlichen HPKP Standards zurückblickt, fallen vor allem folgende Punkte auf, warum dies so schnell nicht passieren wird:

  • Der Aufwand für Betreiber und Entwickler wird immer größer.
  • Schon die Standardisierung von HPKP hat über 4 Jahre gedauert.
  • Die Gefahr, eine Anwendung oder Webseite unnutzbar zu machen steigt durch solche Verfahren.
  • Google Chrome ist zwar oft Vorreiter, aber nicht alleiniger Anbieter und Nutzer der SSL Sicherheitsmethoden.

Dementsprechend wird es immer ein Katz-und-Maus-Spiel bleiben. Solange direkter Zugriff auf die Hardware besteht oder eine funktionsreiche Spy-App installiert ist, wird es immer möglich sein den Weg für Man in the middle Attacken freizumachen.

Fazit

Gerade unter Android bieten sich einige Möglichkeiten, auch unter SSL Certificate Pinning eine Man in the middle Attacke durchzuführen. Das Prinzip bleibt immer gleich, es gibt zudem sehr aktive Foren, auf Änderungen bzw. Neuerungen kann also schnell reagiert werden. Trotzdem gibt es, wie bei jeder Methode, sowohl Vor- als auch Nachteile:

Vorteile

  • Das Auslesen von HTTPS Traffic der Facebook App oder anderer Anwendungen wird möglich.
  • Unter den ausgelesenen Daten befinden sich auch Passwörter und Benutzernamen.
  • Sehr aktive und hilfsbereite Community.

Nachteile

  • Relativ umfangreicher Aufwand.
  • Für eine Man in the middle Attacke muss das Endgerät im selben Netzwerk sein.
  • Relativ viele bekannte Apps lassen sich nicht so leicht bzw. nicht ohne tiefergehende Expertenkenntnisse auslesen.
  • Ohne physischen Zugriff auf das Smartphone oder Tablet sehr schwer umsetzbar.

Am besten ist die SSL Certificate Unpinning Methode auf einem eigenen Testgerät umsetzbar. Wenn du es geschafft hast, eine bestimmte Anwendung zu umgehen, würden wir uns über einen Kommentar mit Details zu deinem Vorgehen freuen. Auch bei Problemen, Fragestellungen oder sonstigen Hinweisen laden wir gerne zu einer regen Diskussion im Kommentarbereich ein.

 

Kommentieren