Checklist de APK Android

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks

Learn Android fundamentals

Static Analysis

  • Verificar o uso de obfuscation, checar se o dispositivo está rootado, se um emulador está sendo usado e verificações anti-tampering. Read this for more info.
  • Aplicações sensíveis (como apps bancários) devem verificar se o dispositivo está rootado e agir em consequência.
  • Procurar por interesting strings (passwords, URLs, API, encryption, backdoors, tokens, Bluetooth uuids…).
  • Atenção especial às firebase APIs.
  • Read the manifest:
  • Verificar se a aplicação está em modo debug e tentar “exploit” ela
  • Verificar se o APK permite backups
  • Exported Activities
  • Unity Runtime: exported UnityPlayerActivity/UnityPlayerGameActivity with a unity CLI extras bridge. Teste -xrsdk-pre-init-library <abs-path> para pre-init dlopen() RCE. Veja Intent Injection → Unity Runtime.
  • Content Providers
  • Serviços expostos
  • Broadcast Receivers
  • URL Schemes
  • A aplicação está saving data insecurely internally or externally?
  • Há alguma password hard coded or saved in disk? O app está using insecurely crypto algorithms?
  • Todas as bibliotecas foram compiladas usando a flag PIE?
  • Não esqueça que existe um monte de static Android Analyzers que podem ajudar muito durante esta fase.
  • android:exported mandatory on Android 12+ – componentes exportados mal configurados podem levar à invocação externa de intents.
  • Revisar Network Security Config (networkSecurityConfig XML) para cleartextTrafficPermitted="true" ou overrides por domínio.
  • Procurar por chamadas para Play Integrity / SafetyNet / DeviceCheck – determinar se a attestation custom pode ser hookeada/contornada.
  • Inspecionar App Links / Deep Links (android:autoVerify) em busca de redirecionamento de intent ou problemas de open-redirect.
  • Identificar uso de WebView.addJavascriptInterface ou loadData*() que possa levar a RCE / XSS dentro do app.
  • Analisar bundles cross-platform (Flutter libapp.so, React-Native JS bundles, Capacitor/Ionic assets). Ferramentas dedicadas:
  • flutter-packer, fluttersign, rn-differ
  • Escanear bibliotecas nativas de terceiros por CVEs conhecidos (por exemplo, libwebp CVE-2023-4863, libpng, etc.).
  • Avaliar SEMgrep Mobile rules, Pithus e os resultados do scan AI-assisted do MobSF ≥ 3.9 para achados adicionais.
  • Verificar add-ons de ROM OEM (OxygenOS/ColorOS/MIUI/OneUI) por exported ContentProviders extras que contornam permissões; tente content query --uri content://com.android.providers.telephony/ServiceNumberProvider sem READ_SMS (por exemplo, OnePlus CVE-2025-10184).

Dynamic Analysis

  • Preparar o ambiente (online, local VM or physical)
  • Há algum 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?
  • A aplicação está transmitting information in clear text/using weak algorithms? é possível um MitM?
  • Inspect HTTP/HTTPS traffic
  • Isto é realmente importante, porque se você conseguir capturar o tráfego HTTP pode procurar por vulnerabilidades Web comuns (Hacktricks tem muita informação sobre web vulns).
  • Verificar possíveis Android Client Side Injections (provavelmente alguma análise estática de código ajudará aqui)
  • Frida: Just Frida, use it to obtain interesting dynamic data from the application (maybe some passwords…)
  • Testar Tapjacking / Animation-driven attacks (TapTrap 2025) mesmo no Android 15+ (sem permissão de overlay necessária).
  • Tentar overlay / SYSTEM_ALERT_WINDOW clickjacking e Accessibility Service abuse para escalonamento de privilégios.
  • Verificar se adb backup / bmgr backupnow ainda podem dumpar dados do app (apps que esqueceram de desabilitar allowBackup).
  • Testar por Binder-level LPEs (por exemplo, CVE-2023-20963, CVE-2023-20928); usar kernel fuzzers ou PoCs se permitido.
  • Se Play Integrity / SafetyNet estiverem aplicados, tentar hooks em runtime (Frida Gadget, MagiskIntegrityFix, Integrity-faker) ou replay a nível de rede. Forks recentes do Play Integrity Fix (≥17.x) embutem playcurl—foque em combinações ZygiskNext + PIF + ZygiskAssistant/TrickyStore para recuperar verdicts DEVICE/STRONG.
  • Instrumentar com ferramentas modernas:
  • Objection > 2.0, Frida 17+ (Android 16 support, ART offset fixes), NowSecure-Tracer (2024)
  • Tracing dinâmico system-wide com perfetto / simpleperf.
  • Para bugs de telephony/provider em OEMs (por exemplo, OxygenOS CVE-2025-10184), tentar leitura/envio de SMS sem permissões via CLI content ou ContentResolver in-app; testar blind SQLi em update() para exfiltrar linhas.

Some obfuscation/Deobfuscation information

Referências

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks