Checklist APK Android

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Learn Android fundamentals

Static Analysis

  • Verificare l’uso di obfuscation, verifiche per rilevare se il dispositivo è rootato, se è in esecuzione su un emulator e controlli anti-tampering. Read this for more info.
  • Le applicazioni sensibili (come le app bancarie) dovrebbero verificare se il dispositivo è rootato e agire di conseguenza.
  • Search for interesting strings (password, URL, API, crittografia, backdoor, token, UUID Bluetooth…).
  • Particolare attenzione a firebase APIs.
  • Read the manifest:
  • Verificare se l’applicazione è in modalità debug e provare a sfruttarla
  • Verificare se l’APK consente i backup
  • 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
  • Is the application saving data insecurely internally or externally?
  • Is there any password hard coded or saved in disk? Is the app using insecurely crypto algorithms?
  • All the libraries compiled using the PIE flag?
  • Non dimenticare che esiste una serie di static Android Analyzers che possono aiutarti molto durante questa fase.
  • android:exported mandatory on Android 12+ – componenti exported mal configurati possono consentire l’invocazione di intent esterni.
  • Controllare la Network Security Config (networkSecurityConfig XML) per cleartextTrafficPermitted="true" o override per domini specifici.
  • Look for calls to Play Integrity / SafetyNet / DeviceCheck – determinare se l’attestazione personalizzata può essere hookata o bypassata.
  • Ispezionare App Links / Deep Links (android:autoVerify) per problemi di intent-redirection o open-redirect.
  • Identify usage of WebView.addJavascriptInterface or loadData*() that may lead to RCE / XSS inside the app.
  • Analyse cross-platform bundles (Flutter libapp.so, React-Native JS bundles, Capacitor/Ionic assets). Dedicated tooling:
  • flutter-packer, fluttersign, rn-differ
  • Scansionare le librerie native di terze parti per CVE note (e.g., libwebp CVE-2023-4863, libpng, etc.).
  • Valutare SEMgrep Mobile rules, Pithus and the latest MobSF ≥ 3.9 AI-assisted scan results for additional findings.
  • Controllare gli add-on ROM OEM (OxygenOS/ColorOS/MIUI/OneUI) per ulteriori exported ContentProviders che bypassano i permessi; provare content query --uri content://com.android.providers.telephony/ServiceNumberProvider senza READ_SMS (e.g., OnePlus CVE-2025-10184).

Dynamic Analysis

  • Preparare l’ambiente (online, local VM or physical)
  • Ci sono unintended data leakage (logging, copia/incolla, log di crash)?
  • Confidential information being saved in SQLite dbs?
  • Exploitable exposed Activities?
  • Exploitable Content Providers?
  • Exploitable exposed Services?
  • Exploitable Broadcast Receivers?
  • L’applicazione sta transmitting information in clear text/using weak algorithms? È possibile un MitM?
  • Inspect HTTP/HTTPS traffic
  • Questo è molto importante, perché se riesci a catturare il traffico HTTP puoi cercare vulnerabilità Web comuni (Hacktricks ha molte informazioni sulle vulnerabilità Web).
  • Verificare la presenza di possibili Android Client Side Injections (probabilmente qualche analisi statica del codice aiuterà).
  • Frida: Usa Frida per ottenere dati dinamici interessanti dall’applicazione (forse qualche password…)
  • Testare Tapjacking / Animation-driven attacks (TapTrap 2025) anche su Android 15+ (non è richiesto il permesso overlay).
  • Provare overlay / SYSTEM_ALERT_WINDOW clickjacking e Accessibility Service abuse per escalation di privilegi.
  • Verificare se adb backup / bmgr backupnow può ancora estrarre i dati dell’app (app che hanno dimenticato di disabilitare allowBackup).
  • Verificare la presenza di Binder-level LPEs (e.g., CVE-2023-20963, CVE-2023-20928); usare kernel fuzzers o PoC se permesso.
  • Se Play Integrity / SafetyNet è applicato, provare runtime hooks (Frida Gadget, MagiskIntegrityFix, Integrity-faker) o replay a livello di rete. I fork recenti di Play Integrity Fix (≥17.x) incorporano playcurl—concentrarsi su combinazioni ZygiskNext + PIF + ZygiskAssistant/TrickyStore per recuperare verdict DEVICE/STRONG.
  • Strumentare con strumenti moderni:
  • Objection > 2.0, Frida 17+ (Android 16 support, ART offset fixes), NowSecure-Tracer (2024)
  • Tracing dinamico di sistema con perfetto / simpleperf.
  • Per bug di telephony/provider OEM (e.g., OxygenOS CVE-2025-10184), tentare permission-less SMS read/send via la CLI content o ContentResolver in-app; testare blind SQLi in update() per esfiltrare righe.

Informazioni su obfuscation/Deobfuscation

Riferimenti

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks