Skip to content

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 "" em seu identificador de pacote. Isso inclui nomes de pacotes, diretórios principais usados pelo aplicativo e quaisquer permissões usadas ou definidas pelo aplicativo.

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: