# Explorando uma aplicação depurável
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras formas de apoiar o HackTricks: * Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos * **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** * **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
## **Burlando verificações de root e depuráveis** **Esta seção do post é um resumo do post** [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0) ### Passos para Tornar um App Android Depurável e Burlar Verificações #### **Tornando o App Depurável** Conteúdo baseado em https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0 1. **Descompilar o APK:** - Utilize a ferramenta APK-GUI para descompilar o APK. - No arquivo _android-manifest_, insira `android:debuggable=true` para ativar o modo de depuração. - Recompile, assine e alinhe o aplicativo modificado com zipalign. 2. **Instalar o Aplicativo Modificado:** - Use o comando: `adb install `. 3. **Recuperar o Nome do Pacote:** - Execute `adb shell pm list packages –3` para listar aplicativos de terceiros e encontrar o nome do pacote. 4. **Configurar o App para Aguardar Conexão do Depurador:** - Comando: `adb shell am setup-debug-app –w `. - **Nota:** Este comando deve ser executado cada vez antes de iniciar o aplicativo para garantir que ele aguarde pelo depurador. - Para persistência, use `adb shell am setup-debug-app –w -–persistent `. - Para remover todas as flags, use `adb shell am clear-debug-app `. 5. **Preparar para Depuração no Android Studio:** - Navegue no Android Studio até _Arquivo -> Abrir Perfil ou APK_. - Abra o APK recompilado. 6. **Definir Pontos de Interrupção em Arquivos Java Importantes:** - Coloque pontos de interrupção em `MainActivity.java` (especificamente no método `onCreate`), `b.java` e `ContextWrapper.java`. #### **Burlando Verificações** O aplicativo, em certos pontos, verificará se é depurável e também procurará por binários indicando um dispositivo com root. O depurador pode ser usado para modificar informações do app, desmarcar o bit depurável e alterar os nomes dos binários pesquisados para burlar essas verificações. Para a verificação depurável: 1. **Modificar Configurações de Flag:** - Na seção de variáveis do console do depurador, navegue até: `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`. - **Nota:** A representação binária de `flags = 814267974` é `11000011100111011110`, indicando que a "Flag_debuggable" está ativa. ![Captura de Tela do Depurador](https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png) *Figura: Captura de tela ilustrando a visão do depurador e a modificação das configurações de flag.* Esses passos garantem coletivamente que o aplicativo possa ser depurado e que certas verificações de segurança possam ser burladas usando o depurador, facilitando uma análise ou modificação mais aprofundada do comportamento do aplicativo. O passo 2 envolve alterar um valor de flag para 814267972, que é representado em binário como 110000101101000000100010100. ## **Explorando uma Vulnerabilidade** Uma demonstração foi fornecida usando um aplicativo vulnerável contendo um botão e um textview. Inicialmente, o aplicativo exibe "Crack Me". O objetivo é alterar a mensagem de "Try Again" para "Hacked" em tempo de execução, sem modificar o código-fonte. ### **Verificando Vulnerabilidade** - O aplicativo foi descompilado usando `apktool` para acessar o arquivo `AndroidManifest.xml`. - A presença de `android_debuggable="true"` no AndroidManifest.xml indica que o aplicativo é depurável e suscetível a exploração. - Vale ressaltar que `apktool` é usado apenas para verificar o status depurável sem alterar nenhum código. ### **Preparando o Ambiente** - O processo envolveu iniciar um emulador, instalar o aplicativo vulnerável e usar `adb jdwp` para identificar portas Dalvik VM que estão ouvindo. - O JDWP (Java Debug Wire Protocol) permite a depuração de um aplicativo em execução em uma VM, expondo uma porta única. - O encaminhamento de porta foi necessário para depuração remota, seguido pela conexão do JDB ao aplicativo alvo. ### **Injetando Código em Tempo de Execução** - A exploração foi realizada definindo pontos de interrupção e controlando o fluxo do aplicativo. - Comandos como `classes` e `methods ` foram usados para descobrir a estrutura do aplicativo. - Um ponto de interrupção foi definido no método `onClick`, e sua execução foi controlada. - Os comandos `locals`, `next` e `set` foram utilizados para inspecionar e modificar variáveis locais, particularmente mudando a mensagem "Try Again" para "Hacked". - O código modificado foi executado usando o comando `run`, alterando com sucesso a saída do aplicativo em tempo real. Este exemplo demonstrou como o comportamento de um aplicativo depurável pode ser manipulado, destacando o potencial para explorações mais complexas, como obter acesso ao shell no dispositivo no contexto do aplicativo. # Referências * [https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0) * [https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications](https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications)
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras formas de apoiar o HackTricks: * Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos * **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** * **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).