Liste de contrôle APK Android

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Apprendre les fondamentaux d’Android

Analyse statique

  • Vérifier l’utilisation de obfuscation, vérifier si le mobile est rooté, si un émulateur est utilisé et les contrôles anti-tampering. Lire ceci pour plus d’infos.
  • Les applications sensibles (comme les apps bancaires) devraient vérifier si le mobile est rooté et agir en conséquence.
  • Rechercher des interesting strings (mots de passe, URLs, API, chiffrement, backdoors, tokens, Bluetooth uuids…).
  • Attention particulière aux firebase APIs.
  • Read the manifest:
  • Vérifier si l’application est en mode debug et essayer de l’exploiter
  • Vérifier si l’APK autorise les backups
  • Exported Activities
  • Unity Runtime: exported UnityPlayerActivity/UnityPlayerGameActivity with a unity CLI extras bridge. Test -xrsdk-pre-init-library <abs-path> for pre-init dlopen() RCE. See Intent Injection → Unity Runtime.
  • Content Providers
  • Exposed services
  • Broadcast Receivers
  • URL Schemes
  • L’application enregistre-t-elle des données de manière non sécurisée en interne ou en externe ? (see insecure data storage)
  • Y a-t-il un password hard coded or saved in disk ? L’application utilise-t-elle des insecure crypto algorithms ?
  • Toutes les bibliothèques sont-elles compilées avec le flag PIE ?
  • N’oubliez pas qu’il existe plusieurs static Android Analyzers qui peuvent beaucoup vous aider pendant cette phase.
  • android:exported mandatory on Android 12+ – des composants exportés mal configurés peuvent mener à l’invocation d’intents externes.
  • Examiner la Network Security Config (networkSecurityConfig XML) pour cleartextTrafficPermitted="true" ou des overrides spécifiques de domaine.
  • Rechercher des appels à Play Integrity / SafetyNet / DeviceCheck – déterminer si l’attestation personnalisée peut être hookée/bypassée.
  • Inspecter les App Links / Deep Links (android:autoVerify) pour des problèmes de redirection d’intent ou d’open-redirect.
  • Identifier l’utilisation de WebView.addJavascriptInterface ou loadData*() pouvant mener à RCE / XSS à l’intérieur de l’app.
  • Analyser les bundles cross-platform (Flutter libapp.so, React-Native JS bundles, Capacitor/Ionic assets). Outils dédiés :
  • flutter-packer, fluttersign, rn-differ
  • Scanner les bibliothèques natives tierces pour des CVE connus (ex., libwebp CVE-2023-4863, libpng, etc.).
  • Évaluer les règles SEMgrep Mobile, Pithus et les résultats de scan assistés par IA de MobSF ≥ 3.9 pour des findings supplémentaires.
  • Vérifier les add-ons OEM ROM (OxygenOS/ColorOS/MIUI/OneUI) pour des exported ContentProviders supplémentaires qui contournent les permissions ; essayer content query --uri content://com.android.providers.telephony/ServiceNumberProvider sans READ_SMS (ex., OnePlus CVE-2025-10184).

Analyse dynamique

  • Préparer l’environnement (online, local VM or physical)
  • Y a-t-il une unintended data leakage (logging, copy/paste, crash logs) ?
  • Confidential information being saved in SQLite dbs ?
  • Exploitable exposed Activities ?
  • Exploitable Content Providers ?
  • Exploitable exposed Services ?
  • Exploitable Broadcast Receivers ?
  • L’application transmet-elle des informations en clair/ utilise-t-elle des algorithmes faibles (insufficient transport layer protection) ? Un MitM est-il possible ?
  • Inspect HTTP/HTTPS traffic
  • Ceci est très important : si vous pouvez capturer le trafic HTTP vous pouvez rechercher des vulnérabilités Web communes (Hacktricks contient beaucoup d’informations sur les vuln Web).
  • Vérifier d’éventuelles Android Client Side Injections (une analyse statique peut aider ici)
  • Frida : Just Frida, utilisez-le pour obtenir des données dynamiques intéressantes de l’application (peut-être des mots de passe…)
  • Tester Tapjacking / Animation-driven attacks (TapTrap 2025) même sur Android 15+ (aucune permission overlay requise).
  • Tenter overlay / SYSTEM_ALERT_WINDOW clickjacking et Accessibility Service abuse pour l’escalade de privilèges.
  • Vérifier si adb backup / bmgr backupnow peuvent toujours dumper les données de l’app (apps ayant oublié de désactiver allowBackup).
  • Chercher des Binder-level LPEs (ex., CVE-2023-20963, CVE-2023-20928) ; utiliser des fuzzers kernel ou des PoC si autorisé.
  • Si Play Integrity / SafetyNet est appliqué, tester des hooks runtime (Frida Gadget, MagiskIntegrityFix, Integrity-faker) ou du replay au niveau réseau. Les forks récents de Play Integrity Fix (≥17.x) embarquent playcurl — se concentrer sur les combinaisons ZygiskNext + PIF + ZygiskAssistant/TrickyStore pour retrouver des verdicts DEVICE/STRONG.
  • Instrumenter avec des outils modernes :
  • Objection > 2.0, Frida 17+ (Android 16 support, ART offset fixes), NowSecure-Tracer (2024)
  • Dynamic system-wide tracing with perfetto / simpleperf.
  • Pour les bugs OEM telephony/provider (ex., OxygenOS CVE-2025-10184), tenter la lecture/envoi SMS sans permission via le CLI content ou le ContentResolver in-app ; tester du blind SQLi dans update() pour exfiltrer des lignes.

Quelques informations sur l’obfuscation/Déobfuscation

Références

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks