Lista de verificación de APK Android

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Learn Android fundamentals

Static Analysis

  • Comprobar el uso de obfuscation, verificar si el móvil está rooteado, si se está usando un emulador y controles anti-manipulación. Read this for more info.
  • Las aplicaciones sensibles (como aplicaciones bancarias) deberían comprobar si el móvil está rooteado y actuar en consecuencia.
  • Buscar interesting strings (contraseñas, URLs, API, cifrado, backdoors, tokens, Bluetooth uuids…).
  • Prestar especial atención a firebase APIs.
  • Read the manifest:
  • Comprobar si la aplicación está en modo de depuración y tratar de “exploit“la.
  • Comprobar si el APK permite backups
  • Activities exportadas
  • 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
  • Servicios expuestos
  • Broadcast Receivers
  • URL Schemes
  • ¿La aplicación saving data insecurely internally or externally?
  • ¿Hay alguna password hard coded or saved in disk? ¿La app using insecurely crypto algorithms?
  • ¿Todas las librerías fueron compiladas usando la bandera PIE?
  • No olvides que existe un montón de static Android Analyzers que pueden ayudarte mucho en esta fase.
  • android:exported mandatory on Android 12+ – misconfigured exported components can lead to external intent invocation.
  • Revisar Network Security Config (networkSecurityConfig XML) en busca de cleartextTrafficPermitted="true" o overrides por dominio.
  • Buscar llamadas a Play Integrity / SafetyNet / DeviceCheck – determinar si la attestation personalizada puede ser hooked/bypassed.
  • Inspeccionar App Links / Deep Links (android:autoVerify) por redirección de intents o problemas de open-redirect.
  • Identificar el uso de WebView.addJavascriptInterface o loadData*() que pueda conducir a RCE / XSS dentro de la app.
  • Analizar bundles multiplataforma (Flutter libapp.so, React-Native JS bundles, Capacitor/Ionic assets). Dedicated tooling:
  • flutter-packer, fluttersign, rn-differ
  • Escanear librerías nativas de terceros en busca de CVEs conocidos (e.g., libwebp CVE-2023-4863, libpng, etc.).
  • Evaluar SEMgrep Mobile rules, Pithus and the latest MobSF ≥ 3.9 AI-assisted scan results for additional findings.
  • Revisar add-ons de ROM OEM (OxygenOS/ColorOS/MIUI/OneUI) en busca de extra exported ContentProviders que bypass permisos; probar content query --uri content://com.android.providers.telephony/ServiceNumberProvider without READ_SMS (e.g., OnePlus CVE-2025-10184).

Dynamic Analysis

  • Preparar el entorno (online, local VM or physical)
  • ¿Hay algún unintended data leakage (registros, copiar/pegar, crash logs)?
  • ¿Confidential information being saved in SQLite dbs?
  • Exploitable exposed Activities?
  • Exploitable Content Providers?
  • Exploitable exposed Services?
  • Exploitable Broadcast Receivers?
  • ¿La aplicación transmitting information in clear text/using weak algorithms? ¿Es posible un MitM?
  • Inspect HTTP/HTTPS traffic
  • Esto es realmente importante, porque si puedes capturar el tráfico HTTP puedes buscar vulnerabilidades Web comunes (Hacktricks tiene mucha información sobre Web vulns).
  • Comprobar posibles Android Client Side Injections (probablemente algún análisis estático de código ayudará aquí)
  • Frida: Just Frida, use it to obtain interesting dynamic data from the application (maybe some passwords…)
  • Probar Tapjacking / Animation-driven attacks (TapTrap 2025) incluso en Android 15+ (no overlay permission required).
  • Intentar overlay / SYSTEM_ALERT_WINDOW clickjacking y Accessibility Service abuse para escalada de privilegios.
  • Comprobar si adb backup / bmgr backupnow puede todavía volcar datos de la app (apps que olvidaron deshabilitar allowBackup).
  • Buscar Binder-level LPEs (e.g., CVE-2023-20963, CVE-2023-20928); usar kernel fuzzers o PoCs si está permitido.
  • Si Play Integrity / SafetyNet está aplicado, intentar runtime hooks (Frida Gadget, MagiskIntegrityFix, Integrity-faker) o replay a nivel de red. Forks recientes de Play Integrity Fix (≥17.x) embeben playcurl—centrarse en combinaciones ZygiskNext + PIF + ZygiskAssistant/TrickyStore para recuperar DEVICE/STRONG verdicts.
  • Instrumentar con tooling moderno:
  • Objection > 2.0, Frida 17+ (Android 16 support, ART offset fixes), NowSecure-Tracer (2024)
  • Dynamic system-wide tracing with perfetto / simpleperf.
  • Para bugs de telephony/provider de OEM (p.ej., OxygenOS CVE-2025-10184), intentar permission-less SMS read/send vía el CLI content o en-app ContentResolver; probar SQLi ciego en update() para exfiltrar filas.

Información sobre ofuscación/Desofuscación

Referencias

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks