
Strumento blackbox per disabilitare la validazione dei certificati SSL - incluso il certificate pinning - nelle applicazioni iOS e macOS.
Strumento blackbox per disabilitare la validazione dei certificati SSL/TLS - inclusa la pinning dei certificati - all'interno di applicazioni iOS e macOS. Seconda iterazione di https://github.com/iSECPartners/ios-ssl-kill-switch .
Una volta caricato in un'applicazione iOS o macOS, SSL Kill Switch 2 patcherà le funzioni di basso livello responsabili della gestione delle connessioni SSL/TLS al fine di sovrascrivere e disabilitare la validazione dei certificati predefinita del sistema, così come qualsiasi tipo di validazione personalizzata dei certificati (come la pinning dei certificati).
È stato testato con successo contro varie applicazioni che implementano la pinning dei certificati, incluso l'Apple App Store. La prima versione di SSL Kill Switch è stata rilasciata a Black Hat Vegas 2012.
La versione più recente di iOS nota per essere supportata è la 14.2.
Su iOS, SSL Kill Switch 2 può essere installato come tweak di Cydia Substrate su un dispositivo jailbroken.
L'installazione di SSL Kill Switch 2 consente a chiunque si trovi sulla stessa rete del dispositivo di eseguire facilmente attacchi man-in-the-middle contro qualsiasi connessione SSL o HTTPS. Ciò significa che è banale ottenere accesso alle email, ai siti web visualizzati in Safari e a qualsiasi altro dato scaricato da qualsiasi app in esecuzione sul dispositivo.
Le seguenti dipendenze dovrebbero essere installate usando Cydia:
Quindi, scarica l'ultimo pacchetto precompilato disponibile nella scheda release della pagina GitHub di SSL Kill Switch 2. Copialo sul dispositivo, installalo e fai il respring del dispositivo:
dpkg -i <package>.deb
killall -HUP SpringBoard
Dovrebbe esserci un nuovo menu nelle Impostazioni del dispositivo dove puoi abilitare l'estensione. Infine, termina e riavvia l'app che vuoi testare.
Il tweak può successivamente essere disinstallato usando:
dpkg -r com.nablac0d3.SSLKillSwitch2
Molte persone hanno chiesto come intercettare il traffico dell'App Store usando SSL Kill Switch 2. Ho scritto alcune istruzioni qui ma ora sono obsolete: http://nabla-c0d3.github.io/blog/2013/08/20/intercepting-the-app-stores-traffic-on-ios/
Per impostazione predefinita, SSL Kill Switch interromperà l'app iOS Charles Proxy e non sarai in grado di fare da proxy a qualsiasi traffico di rete con essa. Per risolvere, aggiungi l'app Charles Proxy (com.xk72.Charles) all'elenco degli ID bundle esclusi nella configurazione di SSL Kill Switch:

La build richiede che la suite Theos sia installata e disponibile su http://www.iphonedevwiki.net/index.php/Theos/Getting_Started .
Quindi, nella cartella principale di SSL Kill Switch 2, crea un symlink alla tua installazione di theos:
ln -s /<path_to_your_theos_folder> theos
Assicurati che dpkg sia installato. Se hai Homebrew, usa:
brew install dpkg
Quindi, il pacchetto Debian di SSL Kill Switch 2 può essere compilato usando:
make package
SSL Kill Switch 2 può essere usato nelle applicazioni macOS come libreria dinamica da iniettare nei processi.
Su macOS, la libreria SSLKillSwitch deve essere iniettata manualmente nel processo in cui la pinning SSL deve essere disabilitata. Una volta iniettata, sovrascriverà e disabiliterà automaticamente la validazione SSL.
Ci sono diversi modi per farlo, tra cui:
Avviare il processo con LLDB oppure in Xcode Debug->Attach to process, poi mettere in pausa e caricare SSLKillSwitch usando dlopen():
(lldb) expr (void*)dlopen("/path/to/build/SSLKillSwitch.framework/Versions/A/SSLKillSwitch", 1)
Il risultato atteso è un puntatore non nullo:
(void *) $1 = 0x00007f92e74d10c0
Se ricevi un puntatore nullo, potresti dover abilitare la firma del codice (code-signing) e fare la build per il profiling, quindi usare il binario nella cartella release, e potresti anche dover copiare il binario nella cartella delle risorse dell'app. In tal caso avresti visto una violazione di lettura della sandbox nella console. Per testare una nuova versione del binario devi terminare l'app e caricarlo di nuovo.
Usare DYLD_INSERT_LIBRARIES per iniettare SSLKillSwitch e avviare il processo.
TBD
Usa il progetto Xcode per compilare SSL Kill Switch 2 per macOS. La libreria compilata sarà quindi disponibile in Products/SSLKillSwitch.framework/Versions/A/SSLKillSwitch. Questo è il binario che devi iniettare nel processo in cui vuoi disabilitare la pinning SSL.
MIT - Vedi ./LICENSE.
Alban Diquet - @nabla_c0d3