
Outil Blackbox pour désactiver la validation des certificats SSL - y compris l'épinglage de certificats - dans les applications iOS et macOS.
Outil blackbox permettant de désactiver la validation des certificats SSL/TLS - y compris l'épinglage de certificats - dans les applications iOS et macOS. Deuxième itération de https://github.com/iSECPartners/ios-ssl-kill-switch .
Une fois chargé dans une application iOS ou macOS, SSL Kill Switch 2 corrige les fonctions de bas niveau responsables de la gestion des connexions SSL/TLS afin de remplacer et de désactiver la validation par défaut des certificats du système, ainsi que toute validation personnalisée de certificats (comme l'épinglage de certificats).
Il a été testé avec succès contre diverses applications mettant en œuvre l'épinglage de certificats, y compris l'App Store d'Apple. La première version de SSL Kill Switch a été publiée à Black Hat Vegas 2012.
La version d'iOS la plus récente pour laquelle une prise en charge est connue est 14.2.
Sur iOS, SSL Kill Switch 2 peut être installé en tant que tweak Cydia Subtrate sur un appareil jailbreaké.
Installer SSL Kill Switch 2 permet à quiconque se trouvant sur le même réseau que l'appareil d'effectuer facilement des attaques de l'homme du milieu contre toute connexion SSL ou HTTPS. Cela signifie qu'il est trivial d'accéder aux e-mails, aux sites Web consultés dans Safari et à toutes les autres données téléchargées par toute application exécutée sur l'appareil.
Les dépendances suivantes doivent être installées à l'aide de Cydia :
Ensuite, téléchargez le dernier paquet précompilé disponible dans l'onglet releases de la page GitHub de SSL Kill Switch 2. Copiez-le sur l'appareil, installez-le et faites un respring de l'appareil :
dpkg -i <package>.deb
killall -HUP SpringBoard
Un nouveau menu devrait apparaître dans les Réglages de l'appareil, où vous pouvez activer l'extension. Enfin, tuez puis redémarrez l'application que vous souhaitez tester.
Le tweak peut ensuite être désinstallé à l'aide de :
dpkg -r com.nablac0d3.SSLKillSwitch2
Beaucoup de personnes ont demandé comment intercepter le trafic de l'App Store à l'aide de SSL Kill Switch 2. J'ai écrit quelques instructions ici, mais elles sont désormais obsolètes : http://nabla-c0d3.github.io/blog/2013/08/20/intercepting-the-app-stores-traffic-on-ios/
Par défaut, SSL Kill Switch perturbera l'application iOS Charles Proxy et vous ne pourrez pas intercepter le trafic réseau avec elle. Pour corriger cela, ajoutez l'application Charles Proxy (com.xk72.Charles) à la liste des identifiants de bundle exclus dans la configuration de SSL Kill Switch :

La compilation nécessite que la suite Theos soit installée, disponible à l'adresse http://www.iphonedevwiki.net/index.php/Theos/Getting_Started .
Ensuite, à la racine du dossier de SSL Kill Switch 2, créez un lien symbolique vers votre installation de Theos :
ln -s /<path_to_your_theos_folder> theos
Assurez-vous que dpkg est installé. Si vous avez Homebrew, utilisez :
brew install dpkg
Ensuite, le paquet Debian de SSL Kill Switch 2 peut être compilé à l'aide de :
make package
SSL Kill Switch 2 peut être utilisé dans les applications macOS en tant que bibliothèque dynamique à injecter dans les processus.
Sur macOS, la bibliothèque SSLKillSwitch doit être injectée manuellement dans le processus où l'épinglage SSL doit être désactivé. Une fois injectée, elle remplace et désactive automatiquement la validation SSL.
Il existe plusieurs façons de procéder, notamment :
Démarrer le processus avec LLDB ou dans Xcode (Debug->Attach to process), puis le mettre en pause et charger SSLKillSwitch à l'aide de dlopen() :
(lldb) expr (void*)dlopen("/path/to/build/SSLKillSwitch.framework/Versions/A/SSLKillSwitch", 1)
Le résultat attendu est un pointeur non nul :
(void *) $1 = 0x00007f92e74d10c0
Si vous recevez un pointeur nul, vous devrez peut-être activer la signature de code et compiler pour le profilage, puis utiliser le binaire dans le dossier release, et devrez peut-être même copier le binaire dans le dossier des ressources de l'application. Dans ce cas, vous auriez vu une violation de lecture du sandbox s'afficher dans la console. Pour tester une nouvelle version du binaire, vous devez tuer l'application et la recharger.
Utiliser DYLD_INSERT_LIBRARIES pour injecter SSLKillSwitch et démarrer le processus.
À déterminer
Utilisez le projet Xcode pour compiler SSL Kill Switch 2 pour macOS. La bibliothèque compilée sera ensuite disponible dans Products/SSLKillSwitch.framework/Versions/A/SSLKillSwitch. C'est le binaire que vous devez injecter dans le processus où vous souhaitez désactiver l'épinglage SSL.
MIT - Voir ./LICENSE.
Alban Diquet - @nabla_c0d3