drozer¶
drozer é um framework de teste de segurança para Android que permite buscar vulnerabilidades de segurança em aplicativos e dispositivos ao assumir o papel de um aplicativo interagindo com o runtime do Android, endpoints de IPC de outros aplicativos e o sistema operacional subjacente.
O drozer pode ser usado durante avaliações de segurança Android para automatizar tarefas. Ele permite que testadores e engenheiros reversos:
- Descubram e interajam com a superfície de ataque exposta por aplicativos Android.
- Executem código Java dinâmico em um dispositivo, evitando a necessidade de compilar e instalar pequenos scripts de teste.
O drozer funciona tanto em emuladores Android quanto em dispositivos reais. Ele não requer que a depuração USB ou outros recursos de desenvolvimento estejam habilitados; assim, você pode realizar avaliações em dispositivos em seu estado de produção para simular ataques.
Você pode estender o drozer com módulos adicionais para encontrar, testar e explorar outras fragilidades; isso, combinado com possibilidades de script, ajuda a automatizar testes de regressão para problemas de segurança.
Instalação e configuração do drozer¶
Instruções detalhadas sobre como instalar e configurar o console do drozer em sua máquina e o agente drozer no telefone Android podem ser encontradas no repositório GitHub do drozer.
Exemplo de uso¶
Após a configuração do drozer, você pode usá-lo para realizar reconhecimento e exploração de aplicativos Android a partir da perspectiva de um aplicativo malicioso no dispositivo. O Manual do Usuário do drozer apresenta um aplicativo intencionalmente vulnerável - sieve - junto com instruções passo a passo de exploração.
Alguns comandos comuns do drozer incluem:
Buscando aplicativos no dispositivo¶
run app.package.list -f <palavra-chave>
Isso lista informações básicas sobre quaisquer pacotes que contenham a palavra "
Enumerando a superfície de ataque de um aplicativo¶
run app.package.attacksurface <pacote>
Este comando inspeciona o manifesto do aplicativo alvo e fornece um relatório sobre quaisquer componentes exportados do aplicativo, e verifica se o aplicativo é depurável.
Uma vez identificada a superfície de ataque, você pode obter informações mais específicas sobre cada classe de componente. Por exemplo, para listar Activities, você pode usar o seguinte comando:
run app.activity.info -a <pacote>
Isso lista os nomes de todas as Activities exportadas, junto com as permissões necessárias para interagir com elas.
Iniciando uma Activity¶
Para lançar uma activity exportada, use o seguinte comando:
run app.activity.start --component <pacote> <nome do componente>
Ao chamar app.activity.start, você pode construir um intent muito mais complexo. Como em todos os módulos do drozer, você pode solicitar mais informações de uso usando o comando help:
dz> help app.activity.start
Attempting to run shell module
usage: run app.activity.start [-h] [--action ACTION] [--category CATEGORY [CATEGORY ...]] [--component PACKAGE COMPONENT] [--data-uri DATA_URI] [--extra TYPE KEY VALUE] [--flags FLAGS [FLAGS ...]] [--mimetype MIMETYPE]
Você pode aprender mais sobre como os intents são criados executando help intents.
Outros recursos do drozer¶
Outros recursos onde você pode encontrar informações úteis são: