
O principal framework de avaliação de segurança para Android.
drozer é um framework de testes de segurança para Android.
drozer permite que você procure por vulnerabilidades de segurança em aplicativos e dispositivos assumindo o papel de um aplicativo e interagindo com o Android Runtime, endpoints de IPC de outros aplicativos e o sistema operacional subjacente.
drozer fornece ferramentas para ajudar você a usar, compartilhar e entender exploits públicos do Android.
drozer é um software de código aberto, mantido pela Reversec. Um guia introdutório do usuário pode ser encontrado em Reversec Labs
Esta é uma versão BETA de uma versão reescrita do drozer; esta versão foi atualizada para suportar python3.
Atualmente, os seguintes problemas conhecidos estão presentes:
Para ajudar a garantir que o drozer possa ser executado em todos os sistemas, foi criado um contêiner Docker que possui uma compilação funcional do drozer.
Você pode usar pip ou pipx (de preferência, se disponível) para instalar a versão mais recente do drozer a partir do PyPI:
pipx install drozer
Alternativamente, você pode baixar lançamentos individuais do GitHub e executar:
pipx install ./drozer-*.whl
Se você ainda não fez isso, considere executar:
pipx ensurepath
para garantir que pacotes instalados via pipx apareçam no seu PATH
Para compilar o drozer a partir do código-fonte, você pode executar.
git clone https://github.com/ReversecLabs/drozer.git
cd drozer
pip install .
Para compilar os componentes nativos do Android contra um SDK específico, você pode definir a variável de ambiente ANDROID_SDK para o caminho. Por exemplo:
Linux/macOS:
export ANDROID_SDK=/home/drozerUser/Android/Sdk/platforms/android-34/android.jar
Windows - PowerShell:
New-Item -Path Env:\ANDROID_SDK -Value 'C:\Users\drozerUser\AppData\Local\Android\sdk\platforms\android-34\android.jar'
Windows - cmd:
set ANDROID_SDK = "C:\Users\drozerUser\AppData\Local\Android\sdk\platforms\android-34\android.jar"
A localização da ferramenta d8 utilizada também pode ser alterada definindo D8.
drozer pode ser instalado usando Android Debug Bridge (adb).
Baixe o último Agente drozer aqui.
adb install drozer-agent.apk
Você agora deve ter o Console drozer instalado no seu PC e o Agente em execução no seu dispositivo de teste. Agora, você precisa conectar os dois e está pronto para começar a explorar.
Usaremos o servidor embutido no Agente drozer para fazer isso. Primeiro, inicie o Agente, selecione a opção "Servidor Embutido" e toque em "Ativar" para iniciar o servidor. Você deve ver uma notificação de que o servidor foi iniciado.
Em seguida, siga uma das opções abaixo.
Por padrão, o Agente drozer escuta por conexões TCP de entrada em todas as interfaces na porta 31415. Para conectar-se ao Agente, execute o seguinte comando:
drozer console connect --server <phone's IP address>
Se você estiver usando o contêiner Docker, o comando equivalente seria:
docker run --net host -it drozerdocker/drozer console connect --server <phone's IP address>
Em alguns cenários, conectar-se ao dispositivo pela rede pode não ser viável. Nesses cenários, podemos aproveitar os recursos de encaminhamento de porta do adb para estabelecer uma conexão via USB.
Primeiro, você precisa configurar um encaminhamento de porta adequado para que seu PC possa se conectar a um socket TCP aberto pelo Agente dentro do emulador ou no dispositivo. Por padrão, o drozer usa a porta 31415
adb forward tcp:31415 tcp:31415
Agora você pode se conectar ao Agente drozer conectando-se a localhost (ou simplesmente não especificando o IP de destino)
drozer console connect
Você deve ver um prompt de comando drozer:
Selecting ebe9fcc0c47b28da (Google sdk_gphone64_x86_64 12)
.. ..:.
..o.. .r..
..a.. . ....... . ..nd
ro..idsnemesisand..pr
.otectorandroidsneme.
.,sisandprotectorandroids+.
..nemesisandprotectorandroidsn:.
.emesisandprotectorandroidsnemes..
..isandp,..,rotecyayandro,..,idsnem.
.isisandp..rotectorandroid..snemisis.
,andprotectorandroidsnemisisandprotec.
.torandroidsnemesisandprotectorandroid.
.snemisisandprotectorandroidsnemesisan:
.dprotectorandroidsnemesisandprotector.
drozer Console (v3.0.0)
dz>
O prompt confirma o ID Android do dispositivo ao qual você se conectou, juntamente com o fabricante, modelo e versão do software Android.
Agora você está pronto para começar a explorar o dispositivo.
drozer é distribuído sob uma licença BSD de 3 cláusulas. Consulte LICENSE para detalhes completos.
drozer é um software de código aberto, tornado excelente pelas contribuições da comunidade.
Para o código-fonte completo, relatar bugs, sugerir funcionalidades e contribuir com patches, consulte nosso projeto no Github:
https://github.com/ReversecLabs/drozer
Relatórios de bugs, solicitações de funcionalidades, comentários e perguntas podem ser enviados aqui.
| Comando | Descrição |
|---|
| run | Executa um módulo drozer |
| list | Mostra uma lista de todos os módulos drozer que podem ser executados na sessão atual. Isso oculta 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 processo do Agente. |
| cd | Monta um namespace específico como raiz da sessão, para evitar ter que digitar repetidamente o nome completo de um módulo. |
| clean | Remove arquivos temporários armazenados pelo drozer no dispositivo Android. |
| contributors | Exibe uma lista de pessoas que contribuíram para o framework drozer e módulos em uso no seu sistema. |
| echo | Imprime texto no console. |
| exit | Encerra a sessão drozer. |
| help | Exibe ajuda sobre um comando ou módulo específico. |
| load | Carrega um arquivo contendo comandos drozer e os executa em sequência. |
| module | Encontra e instala módulos adicionais do drozer da Internet. |
| permissions | Exibe uma lista das permissões concedidas ao Agente drozer. |
| set | Armazena um valor em uma variável que será passada como variável de ambiente para quaisquer shells Linux gerados pelo drozer. |
| unset | Remove uma variável nomeada que o drozer passa para quaisquer shells Linux que ele gera. |