Lorsqu’on aborde une application Android, la première étape est de désassembler et de reconstituer son code source. L’analyse statique permet de repérer dès le départ :
des API Keys en clair
des chaînes sensibles dans strings.xml
des classes obfusquées mal protégées
des mauvaises pratiques dans AndroidManifest.xml (exported components, debuggable=true, allowBackup=true)
Outils recommandés :
APKtool pour reconstruire la structure du projet (ressources et Smali)
JADX pour une rétro-ingénierie Java rapide
APKiD pour identifier le packer et l’obfuscateur utilisés
👉 Si le code est fortement obfusqué, pense à utiliser Simplify ou DeGuard pour restaurer une version lisible.
🧠 Reverse Engineering ciblé : de Smali à la vulnérabilité
Le langage Smali est la représentation intermédiaire du bytecode Dalvik. Tu devras :
Identifier les méthodes critiques : onCreate, onReceive, onStartCommand
Rechercher des appels suspects : Runtime.exec, System.load, sendTextMessage
Explorer les handlers de Intents, Broadcast Receivers, Services
Utilise grep, jadx, ou l’analyse symbolique pour extraire les chemins critiques.
TIP : Une activité exported=true non protégée est une porte ouverte vers des attaques d’invocation directe.
🔬 Analyse dynamique : instrumentation, interception, manipulation
Une fois l’application installée dans un environnement contrôlé, tu peux capturer, manipuler et rejouer des actions.
Outils fondamentaux :
Frida : hook en temps réel, dump mémoire, bypass SSL Pinning & root detection
Drozer : exploitation des services, providers, et activités exportées
MobSF (Dynamic) : proxy HTTPS, screenshots, injection Frida, exfiltration auto
Genymotion + Burp : environnement de test optimisé avec interception réseau
Bypass SSL Pinning avec Frida :
frida --codeshare obfuscator/android-ssl-pinning-bypass -U -n com.target.app
🔐 Points de vigilance critiques à vérifier :
Certificats SSL : Accept-all-hostname, absence de pinning, fallback vers HTTP
TLS faible : Suites de chiffrement obsolètes ou négociations faibles
Keystore mal utilisé : Accès possible avec root, données non chiffrées
Fuites mémoire : stockages sensibles dans RAM accessibles par fridump
🧬 Injections côté client
N’oublie pas : une appli mobile est un client riche.
🔎 À tester :
SQL Injection via Content Providers
JS Injection dans WebViews mal configurées
LFI avec webview.getSettings().setAllowFileAccess(true)
Cookie persistence : cookies jamais invalidés, flag Secure absent
🛠️ Pour automatiser tes analyses
Voici une short list d’outils pour automatiser :
MobSF : GUI, diff, virus total, instrumentation
Mariana Trench : détection statique automatique de sources/sinks
QARK : détection de vulnérabilités connues + exploitation
StaCoAn : analyse statique visuelle des APK
SUPER Android Analyzer : scanner en ligne de commande ultra complet
🎯 Exploits concrets à tenter
ADB tricks pour invoquer manuellement une activité exportée :
adb shell am start -n com.app/.activity.Exposed
Deep Link abuse :
adb shell am start -a android.intent.action.VIEW -d "scheme://vuln/path?token=leak"
Intent Injection :
Modifie l’intent transmis à une activité interne via Frida ou Drozer.
Access to content:// :
Essaie de lire les Content Providers en clair ou avec injection SQL.
🧪 Bonnes pratiques de test
✅ Toujours rooter ou utiliser un device émulé avec accès root
✅ Installer le certificat CA de Burp
✅ Garder une trace de toutes les interactions dans un proxy (Burp ou ZAP)
✅ Hooker tout ce qui passe par JNI ou Java avec Frida
✅ Automatiser les tests post-installation avec adb ou MobSF API
📦 Bonus : Liste rapide des données à extraire
| Cible | Technique | Outil |
|------------------|--------------------------|-------------------------|
| API Keys | strings.xml / grep | Jadx, APKtool |
| Secrets mémoire | memory dump | Fridump |
| SQLite en clair | /data/data/.../db | adb pull |
| Traffic SSL | mitmproxy / Burp | MobSF, Frida |
| Smali sensitive | search const-string | grep -r |
| Auth bypass | exported activities | Drozer, adb |
| SMS / Contacts | permissions Android | adb shell dumpsys package |
🧠 TL;DR
Une application Android n’est jamais une boîte noire. Avec les bons outils et une méthode rigoureuse, tu peux extraire ses secrets, contourner ses protections et cartographier son architecture de sécurité.
👉 La semaine prochaine, on parlera d’analyse iOS, Jailbreak, Frida sans Jailbreak, et Corellium.