⛏️Outil Drozer

Manuel d'utilisation de l'outi Drozer

Description

Drozer est un framework d'exploitation dédié à Android permettant de faire de l'analyse statique et dynamique via l'installation et la communication avec un agent .apk à installer sur la machine cible et qui va permettre de faire un grand nombre d'interactions allant de la collecte d'informations jusqu'à l'exploitation d'applications.

Installation

Prérequis

Téléchargement et configuration

Rendez vous sur https://github.com/WithSecureLabs/drozer/releases/tag/2.4.4 puis télécharger le fichier drozer-2.4.4-py2-none-any.whl.

Téléchargez ensuite l'agent ici: https://github.com/mwrlabs/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk

Une fois l'agent téléchargé, on va pouvoir l'installer sur l'appareil Android avec adb comme ceci:

$ adb install agent.apk

Il reste ensuite à lancer le serveur dans l'application "drozer Agent" installée en switchant le bouton en bas à droite sur "ON".

L'agent Drozer s'exécute sur le port 31415, il faut donc transférer le port avec la commande ci-dessous pour établir la communication entre le client Drozer et l'agent.

$ adb forward tcp:31415 tcp:31415

Vérifier ensuite le bon fonctionnement du serveur en lancant la commande:

$ drozer console connect

Lister / Rechercher des packages

Dans le shell drozer:

dz> run app.package.list [-f exemple]

Renseignements sur un package

dz> run app.package.info -a com.example.targetapp

Lire le fichier AndroidManifest

dz> run app.package.manifest com.example.targetapp

Lister la surface d'attaque d'un package

dz> run app.package.attacksurface com.example.targetapp

Activities

Lister les activitiés exportées

dz> run app.activity.info -a com.example.targetapp

Lancer une activité

dz> run app.activity.start --component com.example.targetapp com.example.targetapp.MainActivity

Content providers

Lister les content providers

dz> run app.provider.info -a com.example.targetapp

Trouver des URIs

dz> run scanner.provider.finduris -a com.example.targetapp

Lire les fichiers dans le file system

dz> run app.provider.read content://com.example.targetapp...

Télécharger le contenu d'un fichier

dz> run app.provider.download content://com.example.targetapp...

Requêter un content provider

dz> run app.provider.query content://com.example.targetapp.DBContentProvider/Passwords/ --vertical

Envoyer de nouvelles données à un content provider

dz> run app.provider.insert content://com.example.targetapp.DBContentProvider/Passwords/ --string <DBcolumn> <contenu>

#Types de données
--string
--float
--integer
--long
--short
--boolean

Mettre à jour le contenu d'un content provider

dz> run app.provider.update content://com.example.targetapp.DBContentProvider/Passwords/ --selection "<DBcolumn>=?" --selection-args <contenu> --string <DBcolumn> <contenu>

Supprimer le contenu d'un content provider

dz> run app.provider.delete content://com.example.targetapp.DBContentProvider/Passwords/ --selection "<DBcolumn>=?" --selection-args <contenu>

Services

Lister les services

dz> run app.service.info -a com.example.targetapp

Interactions avec un service

dz> run app.service.send  //Permet d'envoyer un message à un service et d'intercepter la réponse
dz> run app.service.start  //Permet de lancer un service
dz> run app.service.stop  //Permet de stopper un service

Broadcast Receivers

Lister les broadcast receivers

dz> run app.broadcast.info -a com.example.targetapp

Interactions avec les broadcast

dz> run app.broadcast.info  //Permet d'obtenir des informations sur les boraidcast
dz> run app.broadcast.send  //Permet d'envoyer un broadcast avec un intent
dz> run app.broadcast.sniff  //Permet d'enregistrer un broadcast reveiver pouvant sniffer des intents particuliers

Lister les applications debuggable

dz> run app.package.debuggable

Autre

Ouvrir un shell sur la machine

dz> run shell.start

Télécharger / Envoyer un fichier sur la machine

dz> run tools.file.upload
dz> run tools.file.download

Dernière mise à jour