drozer é uma estrutura de testes de segurança para Android.
O drozer permite que você procure vulnerabilidades de segurança em aplicativos e dispositivos, assumindo a função de um aplicativo e interagindo com o Android Runtime, os endpoints IPC de outros aplicativos e o sistema operacional subjacente.
drozer fornece ferramentas para ajudar você a usar, compartilhar e compreender explorações públicas do Android.
drozer é um software de código aberto, mantido pela WithSecure e pode ser baixado em: https://labs.withsecure.com/tools/drozer/
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 versã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 do PyPI:
pipx install drozer
Alternativamente, você pode baixar versões individuais do GitHub e executar:
pipx install ./drozer- * .whl
Se ainda não o fez, considere executar:
pipx ensurepath
para garantir que os pacotes instalados pipx
apareçam em seu PATH
Para construir o drozer a partir do código-fonte, você pode executar.
git clone https://github.com/WithSecureLabs/drozer.git
cd drozer
pip install .
Para criar os componentes nativos do Android em um SDK específico, você pode definir a variável de ambiente ANDROID_SDK
como 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:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar '
Windows -cmd:
set ANDROID_SDK = " C:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar "
A localização da ferramenta d8
usada também pode ser alterada configurando D8
.
O drozer pode ser instalado usando o Android Debug Bridge (adb).
Baixe o agente drozer mais recente aqui.
adb install drozer-agent.apk
Agora você deve ter o Console do drozer instalado em seu PC e o Agente em execução em seu dispositivo de teste. Agora, você precisa conectar os dois e estará pronto para começar a explorar.
Usaremos o servidor incorporado no agente drozer para fazer isso. Primeiro, inicie o Agente, selecione a opção “Servidor Incorporado” e toque em “Ativar” para iniciar o servidor. Você deverá 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 conexões TCP de entrada em todas as interfaces na porta 31415. Para se conectar 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 withsecurelabs/drozer console connect --server <phone's IP address>
Em alguns cenários, a conexão 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 soquete 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 ao localhost
(ou simplesmente não especificando o IP de destino)
drozer console connect
Você deverá receber um prompt de comando do 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ê está conectado, juntamente com o fabricante, modelo e versão do software Android.
Agora você está pronto para começar a explorar o dispositivo.
Comando | Descrição |
---|---|
correr | Executa um módulo drozer |
lista | 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. |
concha | Inicie 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. |
limpar | Remova arquivos temporários armazenados pelo drozer no dispositivo Android. |
contribuidores | Exibe uma lista de pessoas que contribuíram para a estrutura drozer e módulos em uso em seu sistema. |
eco | Imprima o texto no console. |
saída | Encerre a sessão do drozer. |
ajuda | Exibir ajuda sobre um comando ou módulo específico. |
carregar | Carregue um arquivo contendo comandos do drozer e execute-os em sequência. |
módulo | Encontre e instale módulos drozer adicionais na Internet. |
permissões | Exiba uma lista das permissões concedidas ao Agente drozer. |
definir | Armazene um valor em uma variável que será passada como uma variável de ambiente para qualquer shell Linux gerado pelo drozer. |
desarmar | Remova uma variável nomeada que o drozer passa para qualquer shell do Linux que ele gera. |
drozer é lançado sob uma licença BSD de 3 cláusulas. Consulte LICENÇA para obter detalhes completos.
drozer é um software de código aberto, desenvolvido com contribuições da comunidade.
Para o código-fonte completo, para relatar bugs, sugerir recursos e contribuir com patches, consulte nosso projeto no Github:
https://github.com/WithSecureLabs/drozer
Relatórios de bugs, solicitações de recursos, comentários e perguntas podem ser enviados aqui.