
Un outil qui automatise les tâches répétitives du pentesting des applications Android. Il utilise APKTool et Dex2Jar.
v2.0.0
Un outil qui automatise les tâches rébarbatives du pentest d'applications Android.
L'outil fournit actuellement les fonctionnalités suivantes :
/data/app//data/dataVous pouvez enchaîner les modes de fonctionnement pour automatiser votre propre workflow personnalisé.
Exemple :
humoud@komputer:~/Documents/dev/apkSneeze# python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114 -apk_dl -pkg_name com.dev.test.example -apk
===========================================================
___ ______ _ __ _____ _ _ _____ _____ ______ _____
/ _ \ | ___ \ | / / / ___| \ | || ___| ___|___ /| ___|
/ /_\ \| |_/ / |/ / \ `--.| \| || |__ | |__ / / | |__
| _ || __/| \ `--. \ . ` || __|| __| / / | __|
| | | || | | |\ \ /\__/ / |\ || |___| |___./ /___| |___
\_| |_/\_| \_| \_/ \____/\_| \_/\____/\____/\_____/\____/
v2.0.0
============================================================
Using Settings:
+> Process apk file: True
> Target apk file name: sneezed.apk
+> Setup ADB over WiFi: True
+> Download apk file: True
+> Download app data directory: False
>> Settings shared for adb setup and apk\data download:
>> ADBKey file location: /home/humoud/.android/adbkey
>> Test device IP address: 192.168.1.114
>> Test device port: 5555
>> Target package name: com.dev.test.example
Confirm? [y/n] y
Killing adb server
Listing attached devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
> List of devices attached
> xxxxx device
Setting the device to listen on port 5555
> restarting in TCP mode port: 5555
Connecting to the device...
> connected to 192.168.1.114:5555
You can test if everything is working by seeing if you can get a shell: adb -s 192.168.1.114:5555 shell
<*> Copying APK file to /data/local/tmp/apkSneeze/base.apk (mobile device)...
<*> Downloading APK file to sneezed.apk...
<*> Download done, check sneezed.apk
<*> Deleting APK file from /data/local/tmp/apkSneeze/base.apk (mobile device)...
[0] Processing apk file...
[1] Decompiling the APK file using APKTOOL...
> I: Using Apktool 2.4.0-dirty on sneezed.apk
> I: Loading resource table...
> I: Decoding AndroidManifest.xml with resources...
> I: Loading resource table from file: /home/humoud/.local/share/apktool/framework/1.apk
> I: Regular manifest package...
> I: Decoding file-resources...
> I: Decoding values */* XMLs...
> I: Baksmaling classes.dex...
> I: Baksmaling classes2.dex...
> I: Baksmaling classes3.dex...
> I: Copying assets and libs...
> I: Copying unknown files...
> I: Copying original files...
[2] Converting APK file to JAR file using dex2jar...
dex2jar sneezed.apk -> ./sneezed-dex2jar.jar
[3] Searching for interesting strings(outputing to file interesting_strings_sneezed.txt)...
[3] >> Going through RegEx list...
[3] >> Going through strings list...
Hits: 20853
Done!
Prérequis :
python3 -m pip install -r requirements.txt
Remarque : L'outil a été testé et développé sur Kali Linux, il possède apktool et dex2jar installés.
Pour traiter un fichier apk (décompiler, convertir en Jar et rechercher des chaînes intéressantes) :
python3 apkSneeze.py -apk -apk_name test.apk
Pour configurer ADB via WiFi, l'appareil doit être connecté via USB :
python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114
Définir un port personnalisé :
python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114 -device_port 10111
Pour télécharger un fichier apk depuis un appareil de test (accès root requis) :
python3 apkSneeze.py -apk_dl -pkg_name com.dev.test -device_ip 192.168.1.114
Si vous utilisez un port autre que 5555 (port personnalisé) :
python3 apkSneeze.py -apk_dl -pkg_name com.dev.test -device_ip 192.168.1.114 -device_port 10111
Pour télécharger le répertoire de données d'une application (/data/data) depuis un appareil de test (accès root requis) :
python3 apkSneeze.py -data_dir_dl -device_ip 192.168.1.114 -pkg_name com.test.target.app
Vous pouvez enchaîner les modes de fonctionnement. Ex : configurer adb via wifi, puis télécharger un fichier apk, et enfin traiter le fichier apk téléchargé.
python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114 -apk_dl -pkg_name com.dev.test.example -apk
Les valeurs par défaut de l'outil sont les suivantes :
Ils peuvent tous être modifiés en spécifiant le paramètre approprié.
usage: apkSneeze.py [-h] [-apk] [-apk_name APK_NAME] [-apk_dl] [-data_dir_dl]
[-pkg_name PKG_NAME] [-device_ip DEVICE_IP]
[-device_port DEVICE_PORT] [-adbkey_file ADBKEY_FILE]
[-adb_over_wifi]
optional arguments:
-h, --help show this help message and exit
-apk Process an apk file.
-apk_name APK_NAME Name of the apk file to process.
-apk_dl Download apk file from device. Requires params:
pkg_name, device_ip, device_port, adbkey_file.
-data_dir_dl Download app data directory from device. Requires
params: pkg_name, device_ip, device_port, adbkey_file.
-pkg_name PKG_NAME Application Package Name (ex: com.dev.app). This is
required if you wish to download the apk file.
-device_ip DEVICE_IP IP Address of the testing device.
-device_port DEVICE_PORT
Port number the testing device is listening on.
-adbkey_file ADBKEY_FILE
Location of the adbkey file (ex:
/home/user/.android/adbkey).
-adb_over_wifi Setup adb over wifi automatically. You must provide
the IP address of the device and have it connected via
USB. You can set a custom port using param
device_port.
L'utilisation d'APKSneeze pour attaquer des cibles sans consentement mutuel préalable est illégale. Il est de la responsabilité de l'utilisateur final de respecter toutes les lois locales, étatiques et fédérales applicables. Les développeurs déclinent toute responsabilité et ne sont pas responsables des mauvais usage ou dommages causés par ce programme.