mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
Translated ['mobile-pentesting/android-app-pentesting/drozer-tutorial/RE
This commit is contained in:
parent
3d07bf9991
commit
f39d49eed8
1 changed files with 48 additions and 97 deletions
|
@ -58,7 +58,7 @@ drozer console connect
|
||||||
| **shell** | Démarre un shell Linux interactif sur l'appareil, dans le contexte de l'Agent. |
|
| **shell** | Démarre un shell Linux interactif sur l'appareil, dans le contexte de l'Agent. |
|
||||||
| **nettoyer** | Supprime les fichiers temporaires stockés par drozer sur l'appareil Android. |
|
| **nettoyer** | Supprime les fichiers temporaires stockés par drozer sur l'appareil Android. |
|
||||||
| **charger** | Charge un fichier contenant des commandes drozer et les exécute en séquence. |
|
| **charger** | Charge un fichier contenant des commandes drozer et les exécute en séquence. |
|
||||||
| **module** | Trouve et installe des modules drozer supplémentaires depuis Internet. |
|
| **module** | Recherche et installe des modules drozer supplémentaires depuis Internet. |
|
||||||
| **définir** | Supprime une variable nommée que drozer transmet à tous les shells Linux qu'il génère. |
|
| **définir** | Supprime une variable nommée que drozer transmet à tous les shells Linux qu'il génère. |
|
||||||
| **définir** | Stocke une valeur dans une variable qui sera transmise en tant que variable d'environnement à tous les shells Linux générés par drozer. |
|
| **définir** | Stocke une valeur dans une variable qui sera transmise en tant que variable d'environnement à tous les shells Linux générés par drozer. |
|
||||||
| **shell** | Démarre un shell Linux interactif sur l'appareil, dans le contexte de l'Agent |
|
| **shell** | Démarre un shell Linux interactif sur l'appareil, dans le contexte de l'Agent |
|
||||||
|
@ -75,67 +75,20 @@ com.mwr.example.sieve
|
||||||
```
|
```
|
||||||
**Informations de base** du package :
|
**Informations de base** du package :
|
||||||
|
|
||||||
```plaintext
|
- **Package Name**: com.example.app
|
||||||
Package Name: com.example.app
|
- **Version**: 1.0
|
||||||
Version Name: 1.0
|
- **Target SDK**: 28
|
||||||
Version Code: 1
|
- **Min SDK**: 21
|
||||||
Target SDK Version: 28
|
- **Permissions**: INTERNET, ACCESS_NETWORK_STATE, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE
|
||||||
Min SDK Version: 21
|
- **Activities**: MainActivity, LoginActivity, ProfileActivity
|
||||||
```
|
- **Services**: None
|
||||||
|
- **Broadcast Receivers**: None
|
||||||
**Permissions** required by the package:
|
- **Content Providers**: None
|
||||||
|
- **Exported Components**: None
|
||||||
```plaintext
|
- **Vulnerable Components**: None
|
||||||
- android.permission.INTERNET
|
- **Leaked Components**: None
|
||||||
- android.permission.ACCESS_NETWORK_STATE
|
- **Vulnerable Libraries**: None
|
||||||
- android.permission.READ_EXTERNAL_STORAGE
|
- **Leaked Libraries**: None
|
||||||
- android.permission.WRITE_EXTERNAL_STORAGE
|
|
||||||
- android.permission.CAMERA
|
|
||||||
- android.permission.RECORD_AUDIO
|
|
||||||
```
|
|
||||||
|
|
||||||
**Activities** in the package:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
- com.example.app.MainActivity
|
|
||||||
- com.example.app.LoginActivity
|
|
||||||
- com.example.app.SettingsActivity
|
|
||||||
- com.example.app.ProfileActivity
|
|
||||||
```
|
|
||||||
|
|
||||||
**Services** in the package:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
- com.example.app.NotificationService
|
|
||||||
- com.example.app.LocationService
|
|
||||||
- com.example.app.MediaService
|
|
||||||
```
|
|
||||||
|
|
||||||
**Broadcast Receivers** in the package:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
- com.example.app.NetworkReceiver
|
|
||||||
- com.example.app.BatteryReceiver
|
|
||||||
- com.example.app.ScreenReceiver
|
|
||||||
```
|
|
||||||
|
|
||||||
**Content Providers** in the package:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
- com.example.app.DataProvider
|
|
||||||
- com.example.app.LogProvider
|
|
||||||
```
|
|
||||||
|
|
||||||
**Intents** used in the package:
|
|
||||||
|
|
||||||
```plaintext
|
|
||||||
- com.example.app.ACTION_LOGIN
|
|
||||||
- com.example.app.ACTION_LOGOUT
|
|
||||||
- com.example.app.ACTION_UPLOAD_FILE
|
|
||||||
- com.example.app.ACTION_DOWNLOAD_FILE
|
|
||||||
- com.example.app.ACTION_PLAY_AUDIO
|
|
||||||
- com.example.app.ACTION_STOP_AUDIO
|
|
||||||
```
|
|
||||||
```
|
```
|
||||||
dz> run app.package.info -a com.mwr.example.sieve
|
dz> run app.package.info -a com.mwr.example.sieve
|
||||||
Package: com.mwr.example.sieve
|
Package: com.mwr.example.sieve
|
||||||
|
@ -206,7 +159,7 @@ To list the exported activities, follow these steps:
|
||||||
|
|
||||||
6. The `drozer` tool will display a list of exported activities along with their corresponding package names.
|
6. The `drozer` tool will display a list of exported activities along with their corresponding package names.
|
||||||
|
|
||||||
By listing the exported activities of an Android application, you can identify potential security vulnerabilities, such as activities that can be accessed by other applications or components that may expose sensitive information. This information is valuable for conducting a thorough security assessment of an Android application.
|
By listing the exported activities of an Android application, you can identify potential security vulnerabilities and assess the overall security posture of the application.
|
||||||
```bash
|
```bash
|
||||||
dz> run app.activity.info -a com.mwr.example.sieve
|
dz> run app.activity.info -a com.mwr.example.sieve
|
||||||
Package: com.mwr.example.sieve
|
Package: com.mwr.example.sieve
|
||||||
|
@ -274,47 +227,47 @@ run <module> <action> [options]
|
||||||
|
|
||||||
Where:
|
Where:
|
||||||
|
|
||||||
Où :
|
|
||||||
|
|
||||||
- `<module>` is the name of the module you want to run.
|
- `<module>` is the name of the module you want to run.
|
||||||
- `<action>` is the action you want to perform on the module.
|
- `<action>` is the action you want to perform on the module.
|
||||||
- `[options]` are any additional options or parameters required by the module.
|
- `[options]` are any additional options or parameters required by the module.
|
||||||
|
|
||||||
|
Où :
|
||||||
|
|
||||||
- `<module>` est le nom du module que vous souhaitez exécuter.
|
- `<module>` est le nom du module que vous souhaitez exécuter.
|
||||||
- `<action>` est l'action que vous souhaitez effectuer sur le module.
|
- `<action>` est l'action que vous souhaitez effectuer sur le module.
|
||||||
- `[options]` sont toutes les options ou paramètres supplémentaires requis par le module.
|
- `[options]` sont toutes les options ou paramètres supplémentaires requis par le module.
|
||||||
|
|
||||||
For example, to run the `app.package.info` module and retrieve information about the target application, you would use the following command:
|
For example, to list all the activities in the target application, you can use the following command:
|
||||||
|
|
||||||
Par exemple, pour exécuter le module `app.package.info` et récupérer des informations sur l'application cible, vous utiliseriez la commande suivante :
|
Par exemple, pour lister toutes les activités de l'application cible, vous pouvez utiliser la commande suivante :
|
||||||
|
|
||||||
```
|
```
|
||||||
run app.package.info
|
run app.activity.info
|
||||||
```
|
```
|
||||||
|
|
||||||
This will display information such as the package name, version, and permissions of the target application.
|
This will display a list of activities along with their corresponding package names.
|
||||||
|
|
||||||
Cela affichera des informations telles que le nom du package, la version et les autorisations de l'application cible.
|
Cela affichera une liste d'activités avec leurs noms de package correspondants.
|
||||||
|
|
||||||
You can also specify additional options or parameters depending on the module and action you want to perform.
|
You can also specify additional options or parameters depending on the module and action you are using. These options can be used to customize the behavior of the module or provide additional input.
|
||||||
|
|
||||||
Vous pouvez également spécifier des options ou des paramètres supplémentaires en fonction du module et de l'action que vous souhaitez effectuer.
|
Vous pouvez également spécifier des options ou des paramètres supplémentaires en fonction du module et de l'action que vous utilisez. Ces options peuvent être utilisées pour personnaliser le comportement du module ou fournir une entrée supplémentaire.
|
||||||
|
|
||||||
For example, to run the `app.activity.start` module and start a specific activity in the target application, you would use the following command:
|
For example, to launch an activity in the target application, you can use the following command:
|
||||||
|
|
||||||
Par exemple, pour exécuter le module `app.activity.start` et démarrer une activité spécifique dans l'application cible, vous utiliseriez la commande suivante :
|
Par exemple, pour lancer une activité dans l'application cible, vous pouvez utiliser la commande suivante :
|
||||||
|
|
||||||
```
|
```
|
||||||
run app.activity.start --component com.example.app/.MainActivity
|
run app.activity.start --component <package_name> <activity_name>
|
||||||
```
|
```
|
||||||
|
|
||||||
This will start the `MainActivity` activity in the `com.example.app` package.
|
Replace `<package_name>` with the package name of the target application and `<activity_name>` with the name of the activity you want to launch.
|
||||||
|
|
||||||
Cela démarrera l'activité `MainActivity` dans le package `com.example.app`.
|
Remplacez `<package_name>` par le nom du package de l'application cible et `<activity_name>` par le nom de l'activité que vous souhaitez lancer.
|
||||||
|
|
||||||
By using the `run` command and various modules, you can interact with different services and perform actions on the target application during your mobile pentesting.
|
By using the `run` command with different modules and actions, you can interact with various services and functionalities of the target application.
|
||||||
|
|
||||||
En utilisant la commande `run` et différents modules, vous pouvez interagir avec différents services et effectuer des actions sur l'application cible lors de votre pentest mobile.
|
En utilisant la commande `run` avec différents modules et actions, vous pouvez interagir avec divers services et fonctionnalités de l'application cible.
|
||||||
```
|
```
|
||||||
app.service.send Send a Message to a service, and display the reply
|
app.service.send Send a Message to a service, and display the reply
|
||||||
app.service.start Start Service
|
app.service.start Start Service
|
||||||
|
@ -342,11 +295,11 @@ run app.service.send com.mwr.example.sieve com.mwr.example.sieve.AuthService --m
|
||||||
|
|
||||||
### Récepteurs de diffusion
|
### Récepteurs de diffusion
|
||||||
|
|
||||||
Les applications Android peuvent envoyer ou recevoir des messages de diffusion du système Android et d'autres applications Android, de manière similaire au modèle de conception [publish-subscribe](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern). Ces diffusions sont envoyées lorsqu'un événement d'intérêt se produit. Par exemple, le système Android envoie des diffusions lorsque divers événements système se produisent, tels que le démarrage du système ou le chargement de l'appareil. Les applications peuvent également envoyer des diffusions personnalisées, par exemple pour notifier d'autres applications d'un événement qui pourrait les intéresser (par exemple, le téléchargement de nouvelles données).
|
Les applications Android peuvent envoyer ou recevoir des messages de diffusion du système Android et d'autres applications Android, de manière similaire au modèle de conception [publish-subscribe](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern). Ces diffusions sont envoyées lorsqu'un événement d'intérêt se produit. Par exemple, le système Android envoie des diffusions lorsque divers événements système se produisent, tels que le démarrage du système ou le chargement de l'appareil. Les applications peuvent également envoyer des diffusions personnalisées, par exemple, pour notifier d'autres applications de quelque chose qui pourrait les intéresser (par exemple, de nouvelles données ont été téléchargées).
|
||||||
|
|
||||||
Les applications peuvent s'inscrire pour recevoir des diffusions spécifiques. Lorsqu'une diffusion est envoyée, le système achemine automatiquement les diffusions vers les applications qui se sont abonnées à ce type de diffusion particulier.
|
Les applications peuvent s'inscrire pour recevoir des diffusions spécifiques. Lorsqu'une diffusion est envoyée, le système achemine automatiquement les diffusions vers les applications qui se sont abonnées à ce type de diffusion particulier.
|
||||||
|
|
||||||
Cela pourrait apparaître dans le fichier Manifest.xml :
|
Cela pourrait apparaître à l'intérieur du fichier Manifest.xml :
|
||||||
```markup
|
```markup
|
||||||
<receiver android:name=".MyBroadcastReceiver" android:exported="true">
|
<receiver android:name=".MyBroadcastReceiver" android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
@ -367,31 +320,27 @@ run app.broadcast.info #Detects all
|
||||||
|
|
||||||
To check the broadcast receivers of an app, you can use the `drozer` tool. This tool allows you to interact with Android apps and perform various security tests.
|
To check the broadcast receivers of an app, you can use the `drozer` tool. This tool allows you to interact with Android apps and perform various security tests.
|
||||||
|
|
||||||
To begin, make sure you have `drozer` installed on your machine. You can find installation instructions in the [drozer GitHub repository](https://github.com/FSecureLABS/drozer).
|
Pour vérifier les récepteurs de diffusion d'une application, vous pouvez utiliser l'outil `drozer`. Cet outil vous permet d'interagir avec les applications Android et d'effectuer divers tests de sécurité.
|
||||||
|
|
||||||
Once `drozer` is installed, follow these steps to check the broadcast receivers of an app:
|
First, you need to install `drozer` on your machine. You can find the installation instructions in the [drozer GitHub repository](https://github.com/FSecureLABS/drozer).
|
||||||
|
|
||||||
1. Connect your Android device to your machine using a USB cable.
|
Tout d'abord, vous devez installer `drozer` sur votre machine. Vous pouvez trouver les instructions d'installation dans le [dépôt GitHub de drozer](https://github.com/FSecureLABS/drozer).
|
||||||
|
|
||||||
2. Enable USB debugging on your Android device. You can find this option in the Developer Options menu.
|
Once `drozer` is installed, you can connect it to your Android device using the `drozer console connect` command.
|
||||||
|
|
||||||
3. Open a terminal or command prompt and run the following command to start the `drozer` server:
|
Une fois `drozer` installé, vous pouvez le connecter à votre appareil Android en utilisant la commande `drozer console connect`.
|
||||||
|
|
||||||
```
|
To check the broadcast receivers of an app, you can use the `run app.broadcast.info -a <package_name>` command. Replace `<package_name>` with the package name of the app you want to test.
|
||||||
drozer console connect
|
|
||||||
```
|
|
||||||
|
|
||||||
4. Once the `drozer` server is running, you can use the following command to check the broadcast receivers of an app:
|
Pour vérifier les récepteurs de diffusion d'une application, vous pouvez utiliser la commande `run app.broadcast.info -a <nom_du_package>`. Remplacez `<nom_du_package>` par le nom du package de l'application que vous souhaitez tester.
|
||||||
|
|
||||||
```
|
This command will display information about the broadcast receivers registered by the app, including their names, permissions, and exported status.
|
||||||
run app.broadcast.info -a <package_name>
|
|
||||||
```
|
|
||||||
|
|
||||||
Replace `<package_name>` with the package name of the app you want to test.
|
Cette commande affichera des informations sur les récepteurs de diffusion enregistrés par l'application, y compris leurs noms, leurs autorisations et leur statut d'exportation.
|
||||||
|
|
||||||
This command will display information about the broadcast receivers registered by the app, including their names, permissions, and exported status.
|
By analyzing this information, you can identify any potential security vulnerabilities related to the app's broadcast receivers.
|
||||||
|
|
||||||
By checking the broadcast receivers of an app, you can identify potential security vulnerabilities and ensure that the app is not exposing sensitive information or allowing unauthorized access.
|
En analysant ces informations, vous pouvez identifier d'éventuelles vulnérabilités de sécurité liées aux récepteurs de diffusion de l'application.
|
||||||
```bash
|
```bash
|
||||||
#Check one negative
|
#Check one negative
|
||||||
run app.broadcast.info -a jakhar.aseem.diva
|
run app.broadcast.info -a jakhar.aseem.diva
|
||||||
|
@ -458,7 +407,9 @@ run app.package.debuggable
|
||||||
## Tutoriels
|
## Tutoriels
|
||||||
|
|
||||||
* [https://resources.infosecinstitute.com/android-penetration-tools-walkthrough-series-drozer/#gref](https://resources.infosecinstitute.com/android-penetration-tools-walkthrough-series-drozer/#gref)
|
* [https://resources.infosecinstitute.com/android-penetration-tools-walkthrough-series-drozer/#gref](https://resources.infosecinstitute.com/android-penetration-tools-walkthrough-series-drozer/#gref)
|
||||||
* [http://mobiletools.mwrinfosecurity.com/Using-Drozer-for-application-security-assessments/](http://mobiletools.mwrinfosecurity.com/Using-Drozer-for-application-security-assessments/)
|
* [https://github.com/mgcfish/mobiletools/blob/master/_posts/2016-08-01-Using-Drozer-for-application-security-assessments.md](https://github.com/mgcfish/mobiletools/blob/master/_posts/2016-08-01-Using-Drozer-for-application-security-assessments.md)
|
||||||
|
* [https://www.hackingarticles.in/android-penetration-testing-drozer/](https://www.hackingarticles.in/android-penetration-testing-drozer/)
|
||||||
|
* [https://medium.com/@ashrafrizvi3006/how-to-test-android-application-security-using-drozer-edc002c5dcac](https://medium.com/@ashrafrizvi3006/how-to-test-android-application-security-using-drozer-edc002c5dcac)
|
||||||
|
|
||||||
## Plus d'informations
|
## Plus d'informations
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue