drozer es un marco de pruebas de seguridad para Android.
drozer le permite buscar vulnerabilidades de seguridad en aplicaciones y dispositivos asumiendo el rol de una aplicación e interactuando con Android Runtime, los puntos finales IPC de otras aplicaciones y el sistema operativo subyacente.
drozer proporciona herramientas para ayudarle a utilizar, compartir y comprender los exploits públicos de Android.
drozer es un software de código abierto mantenido por WithSecure y se puede descargar desde: https://labs.withsecure.com/tools/drozer/
Esta es una versión BETA de una versión drozer reescrita; esta versión está actualizada para admitir python3.
Actualmente, están presentes los siguientes problemas conocidos:
Para ayudar a garantizar que drozer se pueda ejecutar en todos los sistemas, se creó un contenedor Docker que tiene una versión funcional de drozer.
Puede usar pip
o pipx
(preferiblemente, si está disponible) para instalar la última versión de drozer de 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 garantizar que los paquetes instalados por pipx
aparezcan en su PATH
Para construir drozer desde la fuente, puedes ejecutar.
git clone https://github.com/WithSecureLabs/drozer.git
cd drozer
pip install .
Para compilar los componentes nativos de Android con un SDK específico, puede configurar 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:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar '
Windows-cmd:
set ANDROID_SDK = " C:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.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).
Descargue el último agente drozer aquí.
adb install drozer-agent.apk
Ahora debería tener la consola drozer instalada en su PC y el agente ejecutándose en su dispositivo de prueba. Ahora necesitas conectar los dos y estarás listo para comenzar a explorar.
Usaremos el servidor integrado en el Agente drozer para hacer esto. Primero, inicie el Agente, seleccione la opción "Servidor integrado" y toque "Activar" para iniciar el servidor. Debería ver una notificación de que el servidor se ha iniciado.
Luego, siga una de las opciones a continuación.
De forma predeterminada, el Agente drozer escucha las conexiones TCP entrantes en todas las interfaces en el puerto 31415. Para conectarse al Agente, ejecute el siguiente comando:
drozer console connect --server <phone's IP address>
Si está utilizando el contenedor Docker, el comando equivalente sería:
docker run --net host -it withsecurelabs/drozer console connect --server <phone's IP address>
En algunos escenarios, es posible que no sea viable conectarse al dispositivo a través de la red. En estos escenarios, podemos aprovechar las capacidades de reenvío de puertos de adb
para establecer una conexión a través de USB.
Primero, debe configurar un puerto de reenvío adecuado para que su 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 puede conectarse al Agente drozer conectándose a localhost
(o simplemente sin especificar la IP de destino)
drozer console connect
Debería aparecer un símbolo del sistema 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 mensaje confirma la ID de Android del dispositivo al que se ha conectado, junto con el fabricante, modelo y versión del software de Android.
Ahora está listo para comenzar a explorar el dispositivo.
Dominio | Descripción |
---|---|
correr | Ejecuta un módulo drozer |
lista | Muestra una lista de todos los módulos drozer que se pueden ejecutar en la sesión actual. Esto oculta módulos para los que no tiene los permisos adecuados para ejecutar. |
caparazón | Inicie un shell de Linux interactivo 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. |
limpio | Elimine los archivos temporales almacenados por drozer en el dispositivo Android. |
contribuyentes | Muestra una lista de personas que han contribuido al marco y los módulos de drozer en uso en su sistema. |
eco | Imprime texto en la consola. |
salida | Termina la sesión de drozer. |
ayuda | Muestra ayuda sobre un comando o módulo en particular. |
carga | Cargue un archivo que contenga comandos de drozer y ejecútelos en secuencia. |
módulo | Busque e instale módulos drozer adicionales desde Internet. |
permisos | Muestra una lista de los permisos otorgados al Agente drozer. |
colocar | Almacene un valor en una variable que se pasará como variable de entorno a cualquier shell de Linux generado por drozer. |
desarmado | Elimine una variable con nombre que drozer pasa a cualquier shell de Linux que genere. |
drozer se publica bajo una licencia BSD de 3 cláusulas. Consulte LICENCIA para obtener todos los detalles.
drozer es un software de código abierto, mejorado gracias a las contribuciones de la comunidad.
Para obtener el código fuente completo, informar errores, sugerir funciones y aportar parches, consulte nuestro proyecto Github:
https://github.com/WithSecureLabs/drozer
Aquí se pueden enviar informes de errores, solicitudes de funciones, comentarios y preguntas.