diff --git a/src/mobile-pentesting/android-checklist.md b/src/mobile-pentesting/android-checklist.md index b9e2600d3..c364a9828 100644 --- a/src/mobile-pentesting/android-checklist.md +++ b/src/mobile-pentesting/android-checklist.md @@ -21,10 +21,10 @@ ### [Análise Estática](android-app-pentesting/index.html#static-analysis) -- [ ] Verifique o uso de [ofuscação](android-checklist.md#some-obfuscation-deobfuscation-information), verifique se o celular foi rootado, se um emulador está sendo usado e verificações de anti-tampering. [Leia isso para mais informações](android-app-pentesting/index.html#other-checks). +- [ ] Verifique o uso de [ofuscação](android-checklist.md#some-obfuscation-deobfuscation-information), verificações para notar se o celular foi rootado, se um emulador está sendo usado e verificações de anti-tampering. [Leia isso para mais informações](android-app-pentesting/index.html#other-checks). - [ ] Aplicações sensíveis (como aplicativos bancários) devem verificar se o celular está rootado e devem agir em consequência. - [ ] Procure por [strings interessantes](android-app-pentesting/index.html#looking-for-interesting-info) (senhas, URLs, API, criptografia, backdoors, tokens, uuids do Bluetooth...). -- [ ] Atenção especial para as [APIs do firebase](android-app-pentesting/index.html#firebase). +- [ ] Atenção especial às [APIs do firebase](android-app-pentesting/index.html#firebase). - [ ] [Leia o manifesto:](android-app-pentesting/index.html#basic-understanding-of-the-application-manifest-xml) - [ ] Verifique se a aplicação está em modo de depuração e tente "explorá-la". - [ ] Verifique se o APK permite backups. @@ -34,24 +34,41 @@ - [ ] Receivers de Broadcast. - [ ] Esquemas de URL. - [ ] A aplicação está [salvando dados de forma insegura internamente ou externamente](android-app-pentesting/index.html#insecure-data-storage)? -- [ ] Existe alguma [senha hardcoded ou salva no disco](android-app-pentesting/index.html#poorkeymanagementprocesses)? O aplicativo está [usando algoritmos criptográficos inseguros](android-app-pentesting/index.html#useofinsecureandordeprecatedalgorithms)? +- [ ] Existe alguma [senha codificada ou salva no disco](android-app-pentesting/index.html#poorkeymanagementprocesses)? O aplicativo está [usando algoritmos criptográficos inseguros](android-app-pentesting/index.html#useofinsecureandordeprecatedalgorithms)? - [ ] Todas as bibliotecas compiladas usando a flag PIE? - [ ] Não se esqueça de que há uma série de [Analisadores Estáticos do Android](android-app-pentesting/index.html#automatic-analysis) que podem ajudar muito durante esta fase. +- [ ] `android:exported` **obrigatório no Android 12+** – componentes exportados mal configurados podem levar à invocação de intents externas. +- [ ] Revise a **Configuração de Segurança da Rede** (`networkSecurityConfig` XML) para `cleartextTrafficPermitted="true"` ou substituições específicas de domínio. +- [ ] Procure chamadas para **Play Integrity / SafetyNet / DeviceCheck** – determine se a atestação personalizada pode ser interceptada/burlada. +- [ ] Inspecione **App Links / Deep Links** (`android:autoVerify`) para problemas de redirecionamento de intent ou redirecionamento aberto. +- [ ] Identifique o uso de **WebView.addJavascriptInterface** ou `loadData*()` que podem levar a RCE / XSS dentro do aplicativo. +- [ ] Analise pacotes multiplataforma (Flutter `libapp.so`, pacotes JS do React-Native, ativos do Capacitor/Ionic). Ferramentas dedicadas: +- `flutter-packer`, `fluttersign`, `rn-differ` +- [ ] Escaneie bibliotecas nativas de terceiros em busca de CVEs conhecidos (por exemplo, **libwebp CVE-2023-4863**, **libpng**, etc.). +- [ ] Avalie as **regras SEMgrep Mobile**, **Pithus** e os últimos resultados de varredura assistida por IA do **MobSF ≥ 3.9** para descobertas adicionais. ### [Análise Dinâmica](android-app-pentesting/index.html#dynamic-analysis) -- [ ] Prepare o ambiente ([online](android-app-pentesting/index.html#online-dynamic-analysis), [VM local ou física](android-app-pentesting/index.html#local-dynamic-analysis)). +- [ ] Prepare o ambiente ([online](android-app-pentesting/index.html#online-dynamic-analysis), [VM local ou física](android-app-pentesting/index.html#local-dynamic-analysis)) - [ ] Existe algum [vazamento de dados não intencional](android-app-pentesting/index.html#unintended-data-leakage) (logs, copiar/colar, logs de falhas)? - [ ] [Informações confidenciais sendo salvas em bancos de dados SQLite](android-app-pentesting/index.html#sqlite-dbs)? - [ ] [Atividades expostas exploráveis](android-app-pentesting/index.html#exploiting-exported-activities-authorisation-bypass)? - [ ] [Provedores de Conteúdo exploráveis](android-app-pentesting/index.html#exploiting-content-providers-accessing-and-manipulating-sensitive-information)? - [ ] [Serviços expostos exploráveis](android-app-pentesting/index.html#exploiting-services)? - [ ] [Receivers de Broadcast exploráveis](android-app-pentesting/index.html#exploiting-broadcast-receivers)? -- [ ] A aplicação está [transmitindo informações em texto claro/usando algoritmos fracos](android-app-pentesting/index.html#insufficient-transport-layer-protection)? É possível um MitM? -- [ ] [Inspecione o tráfego HTTP/HTTPS](android-app-pentesting/index.html#inspecting-http-traffic). -- [ ] Isso é realmente importante, porque se você conseguir capturar o tráfego HTTP, pode procurar por vulnerabilidades comuns na Web (Hacktricks tem muitas informações sobre vulnerabilidades da Web). -- [ ] Verifique possíveis [Injeções do Lado do Cliente Android](android-app-pentesting/index.html#android-client-side-injections-and-others) (provavelmente alguma análise de código estático ajudará aqui). -- [ ] [Frida](android-app-pentesting/index.html#frida): Apenas Frida, use-a para obter dados dinâmicos interessantes da aplicação (talvez algumas senhas...). +- [ ] A aplicação está [transmitindo informações em texto claro/usando algoritmos fracos](android-app-pentesting/index.html#insufficient-transport-layer-protection)? é possível um MitM? +- [ ] [Inspecione o tráfego HTTP/HTTPS](android-app-pentesting/index.html#inspecting-http-traffic) +- [ ] Este ponto é realmente importante, porque se você conseguir capturar o tráfego HTTP, pode procurar por vulnerabilidades comuns na Web (Hacktricks tem muitas informações sobre vulnerabilidades da Web). +- [ ] Verifique possíveis [Injeções do Lado do Cliente do Android](android-app-pentesting/index.html#android-client-side-injections-and-others) (provavelmente alguma análise de código estático ajudará aqui). +- [ ] [Frida](android-app-pentesting/index.html#frida): Apenas Frida, use-a para obter dados dinâmicos interessantes do aplicativo (talvez algumas senhas...). +- [ ] Teste para **Tapjacking / Ataques baseados em animação (TapTrap 2025)** mesmo no Android 15+ (nenhuma permissão de sobreposição necessária). +- [ ] Tente **overlay / clickjacking de SYSTEM_ALERT_WINDOW** e **abuso do Serviço de Acessibilidade** para escalonamento de privilégios. +- [ ] Verifique se `adb backup` / `bmgr backupnow` ainda pode despejar dados do aplicativo (aplicativos que esqueceram de desativar `allowBackup`). +- [ ] Investigue **LPEs em nível de Binder** (por exemplo, **CVE-2023-20963, CVE-2023-20928**); use fuzzers de kernel ou PoCs se permitido. +- [ ] Se o Play Integrity / SafetyNet estiver em vigor, tente hooks em tempo de execução (`Frida Gadget`, `MagiskIntegrityFix`, `Integrity-faker`) ou replay em nível de rede. +- [ ] Instrumente com ferramentas modernas: +- **Objection > 2.0**, **Frida 17+**, **NowSecure-Tracer (2024)** +- Rastreamento dinâmico em todo o sistema com `perfetto` / `simpleperf`. ### Algumas informações sobre ofuscação/Deofuscação