
El marco líder de evaluación de seguridad para Android.
drozer es un framework de pruebas de seguridad para Android.
drozer te permite buscar vulnerabilidades de seguridad en aplicaciones y dispositivos asumiendo el rol de una aplicación e interactuando con el Android Runtime, los endpoints IPC de otras aplicaciones y el sistema operativo subyacente.
drozer proporciona herramientas para ayudarte a usar, compartir y entender exploits públicos de Android.
drozer es software de código abierto, mantenido por Reversec. Puedes encontrar una guía de usuario introductoria en Reversec Labs
Esta es una versión BETA de una versión reescrita de drozer; esta versión se ha actualizado para soportar python3.
Actualmente, están presentes los siguientes problemas conocidos:
Para ayudar a asegurar que drozer se pueda ejecutar en todos los sistemas, se creó un contenedor Docker que tiene una compilación funcional de drozer.
Puedes usar pip o pipx (preferiblemente, si está disponible) para instalar la última versión de drozer desde PyPI:
pipx install drozer
Alternativamente, puedes descargar versiones individuales desde GitHub y ejecutar:
pipx install ./drozer-*.whl
Si aún no lo has hecho, considera ejecutar:
pipx ensurepath
para asegurarte de que los paquetes instalados con pipx aparezcan en tu PATH
Para compilar drozer desde el código fuente puedes ejecutar.
git clone https://github.com/ReversecLabs/drozer.git
cd drozer
pip install .
Para compilar los componentes nativos de Android contra un SDK específico puedes establecer la variable de entorno ANDROID_SDK en la ruta. Por ejemplo:
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"
La ubicación de la herramienta d8 utilizada también se puede cambiar configurando D8.
drozer se puede instalar usando Android Debug Bridge (adb).
Descarga el último agente drozer aquí.
adb install drozer-agent.apk
Ahora deberías tener la Consola drozer instalada en tu PC y el Agente ejecutándose en tu dispositivo de prueba. Ahora, necesitas conectar ambos y estás listo para comenzar a explorar.
Usaremos el servidor integrado en el Agente drozer para hacer esto. Primero, inicia el Agente, selecciona la opción "Embedded Server" y toca "Enable" para iniciar el servidor. Deberías ver una notificación de que el servidor ha comenzado.
Luego, sigue una de las opciones a continuación.
Por defecto, el Agente drozer escucha conexiones TCP entrantes en todas las interfaces en el puerto 31415. Para conectar con el Agente, ejecuta el siguiente comando:
drozer console connect --server <phone's IP address>
Si estás usando el contenedor Docker, el comando equivalente sería:
docker run --net host -it drozerdocker/drozer console connect --server <phone's IP address>
En algunos escenarios, conectar al dispositivo a través de la red puede no ser viable. En estos escenarios, podemos aprovechar las capacidades de redireccionamiento de puertos de adb para establecer una conexión a través de USB.
Primero, necesitas configurar un redireccionamiento de puerto adecuado para que tu PC pueda conectarse a un socket TCP abierto por el Agente dentro del emulador, o en el dispositivo. Por defecto, drozer usa el puerto 31415
adb forward tcp:31415 tcp:31415
Ahora puedes conectarte al Agente drozer conectándote a localhost (o simplemente sin especificar la IP de destino)
drozer console connect
Deberías ver un símbolo del sistema de 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>
El símbolo del sistema confirma el ID de Android del dispositivo al que te has conectado, junto con el fabricante, modelo y versión del software Android.
Ahora estás listo para comenzar a explorar el dispositivo.
drozer se publica bajo una Licencia BSD de 3 cláusulas. Consulta LICENSE para obtener más detalles.
drozer es software de Código Abierto, mejorado por las contribuciones de la comunidad.
Para el código fuente completo, reportar errores, sugerir funciones y contribuir con parches, consulta nuestro proyecto de Github:
https://github.com/ReversecLabs/drozer
Los informes de errores, solicitudes de funciones, comentarios y preguntas se pueden enviar aquí.
| Comando | Descripción |
|---|
| run | Ejecuta un módulo de drozer |
| list | Muestra una lista de todos los módulos de drozer que se pueden ejecutar en la sesión actual. Esto oculta los módulos para los que no tienes permisos adecuados para ejecutar. |
| shell | Inicia un shell interactivo de Linux en el dispositivo, en el contexto del proceso del Agente. |
| cd | Monta un espacio de nombres particular como raíz de la sesión, para evitar tener que escribir repetidamente el nombre completo de un módulo. |
| clean | Elimina archivos temporales almacenados por drozer en el dispositivo Android. |
| contributors | Muestra una lista de personas que han contribuido al framework drozer y a los módulos en uso en tu sistema. |
| echo | Imprime texto en la consola. |
| exit | Termina la sesión de drozer. |
| help | Muestra ayuda sobre un comando o módulo en particular. |
| load | Carga un archivo que contiene comandos de drozer y los ejecuta en secuencia. |
| module | Encuentra e instala módulos adicionales de drozer desde Internet. |
| permissions | Muestra una lista de los permisos otorgados al Agente drozer. |
| set | Almacena un valor en una variable que se pasará como variable de entorno a cualquier shell de Linux generado por drozer. |
| unset | Elimina una variable nombrada que drozer pasa a cualquier shell de Linux que genere. |