📜SSL pinning bypass

Description

Les applications mobiles utilisent couramment SSL pour protéger les données transmises contre les écoutes clandestines et la falsification lors de la communication avec un serveur. Les implémentations SSL dans les applications font confiance à un serveur qui possède un certificat, qui à son tour est approuvé par le magasin de confiance du système d'exploitation (par défaut). Le système d'exploitation inclut une liste d'autorités de certification dans ce stockage.

Le développeur configure l'épinglage SSL pour refuser tous sauf un ou quelques certificats prédéterminés. Le programme valide le certificat du serveur avec le certificat épinglé chaque fois qu'il se connecte à un ou plusieurs serveurs. La connexion SSL est établie si et seulement si le certificat du serveur et le certificat épinglé correspondent.

Bypass avec Frida

Télécharger frida-server

Placer frida-server dans le smartphone

avec adb, on va placer l'executable frida-server dans le smartphone dans le dossier /data/local/tmp accessible en lecture et écriture à tous les utilisateurs et lui donner les droits maxiumum pour que frida puisse avoir les pleins contrôles de l'appareil.

$ adb push frida-server /data/local/tmp
$ adb shell
$ chmod 777 /data/local/tmp/frida-server

Lancer de frida en arrière-plan

$ adb shell /data/local/tmp/frida-server &

Placer le script de ssl pinning bypass dans l'appareil

$ adb push script.js /data/local/tmp

Vérifier le bon fonctionnement de frida-server

Via la machine hôte, on va tenter de se connecter à frida-server avec la commande suivante:

$ frida-ps -U

résultat attendu
PID    Name
------------------------------
XXX    Process
XXX    Process
...

Lancement du script de ssl pinning bypass

$ frida -U -f <com.exemple.targetapp> -l <path/to/script.js> --no-paus

Vous devriez à la fin de ce process être capable d'intercepter le traffic http de l'application.

Avec Objection

Il est également possible d'utiliser la commande suivante avec objection:

$ objection run ssl pinning disable

Dernière mise à jour