* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
**Dica de bug bounty**: **inscreva-se** no **Intigriti**, uma plataforma premium de **bug bounty criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje mesmo e comece a ganhar recompensas de até **$100.000**!
Baixe e instale o APK do drozer nas [últimas versões](https://github.com/mwrlabs/drozer/releases). No momento, é [este](https://github.com/mwrlabs/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk).
O agente está sendo executado na porta 31415, precisamos fazer um [redirecionamento de porta](https://en.wikipedia.org/wiki/Port\_forwarding) para estabelecer a comunicação entre o Cliente Drozer e o Agente. Aqui está o comando para fazer isso:
| **Help MODULE** | Mostra a ajuda do módulo selecionado |
| **list** | Mostra uma lista de todos os módulos do drozer que podem ser executados na sessão atual. Isso oculta os módulos para os quais você não tem permissões adequadas para executar. |
| **shell** | Inicia um shell Linux interativo no dispositivo, no contexto do Agente. |
| **clean** | Remove arquivos temporários armazenados pelo drozer no dispositivo Android. |
| **load** | Carrega um arquivo contendo comandos do drozer e os executa em sequência. |
| **module** | Encontra e instala módulos adicionais do drozer da Internet. |
| **unset** | Remove uma variável nomeada que o drozer passa para qualquer shell Linux que ele inicia. |
| **set** | Armazena um valor em uma variável que será passada como uma variável de ambiente para qualquer shell Linux iniciado pelo drozer. |
| **shell** | Inicia um shell Linux interativo no dispositivo, no contexto do Agente |
| **run MODULE** | Executa um módulo do drozer |
| **exploit** | O drozer pode criar exploits para executar no dispositivo. `drozer exploit list` |
| **payload** | Os exploits precisam de um payload. `drozer payload list` |
To list the exported activities of an Android application, you can use the `drozer` tool. This tool allows you to perform various security assessments on Android apps.
2. Connect your Android device to your machine using a USB cable.
3. Enable USB debugging on your Android device.
4. Open a terminal or command prompt and navigate to the `drozer` installation directory.
5. Run the following command to start the `drozer` console:
```
drozer console connect
```
6. Once the `drozer` console is open, run the following command to start the app you want to assess:
```
run app.package.list -f <package_name>
```
Replace `<package_name>` with the package name of the app you want to assess.
7. After the app is started, run the following command to list the exported activities:
```
run app.activity.info -a <package_name>
```
Replace `<package_name>` with the package name of the app you want to assess.
8. The `drozer` tool will display a list of exported activities along with their corresponding details, such as the activity name, package name, and intent filters.
By listing the exported activities of an Android app, you can identify potential security vulnerabilities and assess the app's overall security posture.
-`<module>` is the name of the module you want to run.
-`<action>` is the action you want to perform on the module.
-`[options]` are additional options or parameters required by the module.
Onde:
-`<module>` é o nome do módulo que você deseja executar.
-`<action>` é a ação que você deseja realizar no módulo.
-`[options]` são opções ou parâmetros adicionais necessários pelo módulo.
For example, to list all the activities in the target application, you can use the following command:
Por exemplo, para listar todas as atividades no aplicativo alvo, você pode usar o seguinte comando:
```
run app.activity.info
```
This will display a list of activities along with their corresponding package names.
Isso exibirá uma lista de atividades juntamente com seus respectivos nomes de pacote.
You can also specify additional options or parameters depending on the module and action you are using. For example, to launch a specific activity, you can use the following command:
Você também pode especificar opções ou parâmetros adicionais dependendo do módulo e ação que você está usando. Por exemplo, para iniciar uma atividade específica, você pode usar o seguinte comando:
```
run app.activity.start --component <package_name><activity_name>
```
Replace `<package_name>` with the package name of the target application and `<activity_name>` with the name of the activity you want to launch.
Substitua `<package_name>` pelo nome do pacote do aplicativo alvo e `<activity_name>` pelo nome da atividade que você deseja iniciar.
By using the `run` command, you can interact with various services and components of the target application, allowing you to perform actions such as starting activities, sending intents, accessing content providers, and more.
Ao usar o comando `run`, você pode interagir com vários serviços e componentes do aplicativo alvo, permitindo que você execute ações como iniciar atividades, enviar intents, acessar provedores de conteúdo e muito mais.
```
app.service.send Send a Message to a service, and display the reply
Observe que você estará enviando primeiro os dados dentro de "_msg.what_", depois "_msg.arg1_" e "_msg.arg2_", você deve verificar dentro do código **quais informações estão sendo usadas** e onde.\
Usando a opção `--extra`, você pode enviar algo interpretado por "_msg.replyTo"_, e usando `--bundle-as-obj`, você cria um objeto com os detalhes fornecidos.
Os aplicativos Android podem enviar ou receber mensagens de transmissão do sistema Android e de outros aplicativos Android, semelhante ao padrão de design [publicar-assinar](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern). Essas transmissões são enviadas quando ocorre um evento de interesse. Por exemplo, o sistema Android envia transmissões quando vários eventos do sistema ocorrem, como quando o sistema é inicializado ou o dispositivo começa a carregar. Os aplicativos também podem enviar transmissões personalizadas, por exemplo, para notificar outros aplicativos sobre algo que possa ser do seu interesse (por exemplo, algum novo dado foi baixado).
Os aplicativos podem se registrar para receber transmissões específicas. Quando uma transmissão é enviada, o sistema automaticamente encaminha as transmissões para os aplicativos que se inscreveram para receber aquele tipo específico de transmissão.
Após descobrir esses Receptores de Transmissão, você deve **verificar o código** deles. Preste atenção especial na função **`onReceive`**, pois ela será responsável por lidar com as mensagens recebidas.
To check the broadcast receivers of an app, you can use the `drozer` tool. Broadcast receivers are components in an Android app that listen for system-wide events or custom events sent by other apps. They can be potential entry points for attackers to exploit.
Replace `<package_name>` with the package name of the app you want to test.
5.`drozer` will display a list of broadcast receivers along with their corresponding permissions and exported status. Analyze the output to identify any potential security vulnerabilities.
By checking the broadcast receivers of an app, you can identify any insecure or misconfigured receivers that may pose a risk to the app's security.
Broadcasts são uma forma de comunicação entre componentes de um aplicativo Android. Eles permitem que um componente envie uma mensagem para todos os outros componentes registrados para receber esse tipo específico de mensagem. Essas mensagens podem ser usadas para iniciar ações em outros componentes, como iniciar uma atividade, exibir uma notificação ou executar um serviço em segundo plano.
No contexto da segurança, os broadcasts podem ser explorados por hackers para realizar ataques em aplicativos Android. Os hackers podem interceptar e manipular broadcasts para obter acesso não autorizado a informações confidenciais ou para executar ações maliciosas no dispositivo.
Neste tutorial, vamos explorar técnicas de pentesting para identificar e explorar vulnerabilidades relacionadas a interações de broadcast em aplicativos Android. Vamos usar a ferramenta Drozer, uma poderosa ferramenta de teste de segurança para aplicativos Android, para realizar esses testes.
Vamos começar examinando os diferentes tipos de interações de broadcast e como eles podem ser explorados em um contexto de pentesting.
Neste exemplo, abusando do [apk FourGoats](https://github.com/linkedin/qark/blob/master/tests/goatdroid.apk) do Content Provider, você pode **enviar um SMS arbitrário** para qualquer destino não premium **sem pedir** permissão ao usuário.
Um APK de produção nunca deve estar depurável. Isso significa que você pode **anexar um depurador Java** à aplicação em execução, inspecioná-la em tempo de execução, definir pontos de interrupção, avançar passo a passo, coletar valores de variáveis e até mesmo alterá-los. [O InfoSec Institute tem um excelente artigo](../exploiting-a-debuggeable-application.md) sobre como investigar mais a fundo quando sua aplicação está depurável e injetar código em tempo de execução.
**Dica de recompensa por bugs**: **inscreva-se** na **Intigriti**, uma plataforma premium de **recompensa por bugs criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje mesmo e comece a ganhar recompensas de até **$100.000**!
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? Ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).