
Blackbox-Tool zum Deaktivieren der SSL-Zertifikatsvalidierung – einschließlich Zertifikat-Pinning – in iOS- und macOS-Anwendungen.
Blackbox-Tool zum Deaktivieren der SSL/TLS-Zertifikatsvalidierung – einschließlich Zertifikats-Pinning – in iOS- und macOS-Anwendungen. Zweite Iteration von https://github.com/iSECPartners/ios-ssl-kill-switch .
Nach dem Laden in eine iOS- oder macOS-Anwendung patcht SSL Kill Switch 2 die Low-Level-Funktionen, die für die Verarbeitung von SSL/TLS-Verbindungen zuständig sind, um die standardmäßige Zertifikatsvalidierung des Systems sowie jede Art von benutzerdefinierter Zertifikatsvalidierung (wie Zertifikats-Pinning) zu überschreiben und zu deaktivieren.
Es wurde erfolgreich gegen verschiedene Anwendungen getestet, die Zertifikats-Pinning implementieren, einschließlich des Apple App Store. Die erste Version von SSL Kill Switch wurde auf der Black Hat Vegas 2012 veröffentlicht.
Die neueste iOS-Version, die bekanntermaßen unterstützt wird, ist 14.2.
Auf iOS kann SSL Kill Switch 2 als Cydia-Substrate-Tweak auf einem gejailbreakten Gerät installiert werden.
Die Installation von SSL Kill Switch 2 ermöglicht es jedem, der sich im selben Netzwerk wie das Gerät befindet, problemlos Man-in-the-Middle-Angriffe gegen jede SSL- oder HTTPS-Verbindung durchzuführen. Das bedeutet, dass es trivial ist, Zugriff auf E-Mails, in Safari aufgerufene Websites und alle anderen Daten zu erhalten, die von einer auf dem Gerät ausgeführten App heruntergeladen werden.
Die folgenden Abhängigkeiten sollten mit Cydia installiert werden:
Dann lade das neueste vorkompilierte Paket aus dem Release-Tab der GitHub-Seite von SSL Kill Switch 2 herunter. Kopiere es auf das Gerät, installiere es und führe einen Respring durch:
dpkg -i <package>.deb
killall -HUP SpringBoard
In den Einstellungen des Geräts sollte ein neues Menü erscheinen, in dem du die Erweiterung aktivieren kannst. Beende anschließend die App, die du testen möchtest, und starte sie neu.
Der Tweak kann später mit folgendem Befehl deinstalliert werden:
dpkg -r com.nablac0d3.SSLKillSwitch2
Viele Leute haben gefragt, wie man mit SSL Kill Switch 2 den Datenverkehr des App Store abfangen kann. Ich habe hier einige Anweisungen niedergeschrieben, die aber inzwischen veraltet sind: http://nabla-c0d3.github.io/blog/2013/08/20/intercepting-the-app-stores-traffic-on-ios/
Standardmäßig stört SSL Kill Switch die Charles-Proxy-iOS-App, und du wirst mit ihr keinen Netzwerkverkehr proxyen können. Um das zu beheben, füge die Charles-Proxy-App (com.xk72.Charles) zur Liste der ausgeschlossenen Bundle-IDs in der SSL-Kill-Switch-Konfiguration hinzu:

Für den Build muss die Theos-Suite installiert sein. Sie ist verfügbar unter http://www.iphonedevwiki.net/index.php/Theos/Getting_Started .
Erstelle dann im Stammverzeichnis von SSL Kill Switch 2 einen symbolischen Link zu deiner Theos-Installation:
ln -s /<path_to_your_theos_folder> theos
Stelle sicher, dass dpkg installiert ist. Falls du Homebrew hast, verwende:
brew install dpkg
Dann kann das Debian-Paket von SSL Kill Switch 2 mit folgendem Befehl erstellt werden:
make package
SSL Kill Switch 2 kann in macOS-Anwendungen als dynamische Bibliothek verwendet werden, die in Prozesse injiziert wird.
Unter macOS muss die SSLKillSwitch-Bibliothek manuell in den Prozess injiziert werden, in dem das SSL-Pinning deaktiviert werden soll. Nach der Injektion überschreibt und deaktiviert sie automatisch die SSL-Validierung.
Es gibt mehrere Möglichkeiten, dies zu tun, darunter:
Den Prozess mit LLDB starten oder in Xcode über Debug->Attach to process starten, dann
pausieren und SSLKillSwitch mithilfe von dlopen() laden:
(lldb) expr (void*)dlopen("/path/to/build/SSLKillSwitch.framework/Versions/A/SSLKillSwitch", 1)
Erwartetes Ergebnis ist ein Pointer ungleich null:
(void *) $1 = 0x00007f92e74d10c0
Wenn du einen Null-Pointer erhältst, musst du möglicherweise Code-Signing aktivieren und für das Profiling erstellen, dann die Binärdatei im Release-Ordner verwenden und die Binärdatei möglicherweise sogar in den Ressourcenordner der App kopieren. In diesem Fall hättest du eine Sandbox-Lesezugriffsverletzung in der Konsole gesehen. Um eine neue Version der Binärdatei zu testen, musst du die App beenden und sie erneut laden.
Verwenden von DYLD_INSERT_LIBRARIES, um SSLKillSwitch zu injizieren und den Prozess zu starten.
TBD
Verwende das Xcode-Projekt, um SSL Kill Switch 2 für macOS zu erstellen. Die kompilierte Bibliothek ist dann unter Products/SSLKillSwitch.framework/Versions/A/SSLKillSwitch verfügbar. Dies ist die Binärdatei, die du in den Prozess injizieren musst, in dem du das SSL-Pinning deaktivieren möchtest.
MIT - Siehe ./LICENSE.
Alban Diquet - @nabla_c0d3