
Reproduction de CVE-2017-13156-Janus
En exploitant la vulnérabilité Janus (CVE-2017-13156), un attaquant peut contourner le mécanisme de signature V1 (signature scheme V1) d'Android et modifier arbitrairement le code d'une application sans affecter sa signature. Le mécanisme de signature d'Android sert à protéger les applications contre la falsification. Normalement, si une application est modifiée, elle doit être re-signée, sinon elle ne peut pas être installée sur l'appareil. Lors de l'installation, le système vérifie la signature de l'APK ; si la signature n'existe pas ou si la vérification échoue, le système refuse l'installation. L'attaquant ne disposant pas de la clé privée du développeur, il utilise une autre clé privée pour re-signer l'application, ce qui entraîne une incohérence de signature. La vérification de la signature de l'application permet, dans une certaine mesure, de détecter si celle-ci a été falsifiée. Cependant, la vulnérabilité Janus permet à un attaquant de falsifier l'application sans affecter sa signature ; une application issue d'un développement secondaire peut ainsi remplacer l'application officielle, ce qui représente un certain niveau de menace.
Tous droits réservés à l'auteur. Pour toute reproduction commerciale, veuillez contacter l'auteur afin d'obtenir une autorisation. Pour toute reproduction non commerciale, veuillez indiquer la source.
Étendue concernée : Android 5.0-8.0
|____a.dex dex modifié
|____target.apk apk modifié
|____app
|____janus.py script de modification
|____Janus.jar jar modifié
|____cla.dex dex modifié
|____README.md
|____a.apk
|____f.apk
|____app-release.apk apk d'origine
jar :
java -jar Janus.jar Janus [dex_file] [apk_file] [output_file]
java -jar Janus.jar Janus a.dex app-release.apk a.apk
python :
python janus.py [dex_file] [apk_file] [output_file]
> python janus.py a.dex app-release.apk a.apk
Étapes tentées :
Test sur un téléphone Xiaomi sous 6.0.1 : échec, installation réussie mais code non exécuté
Test sur un téléphone Nexus sous 6.0.1 : échec, installation réussie mais code non exécuté
Test sur un téléphone Sony sous 4.4.3 : échec, installation non réussie
Hypothèse : le téléphone a reçu un correctif
Reproduction par d'autres
PoC en python
PoC en java
Analyse du principe et de l'exploitation de la vulnérabilité de signature Janus (CVE-2017-13156)
Sécurité mobile Antiy : analyse approfondie de la vulnérabilité critique Janus
Analyse de la vulnérabilité Janus