
Uno strumento che automatizza i compiti banali del pentesting di app Android. Utilizza APKTool e Dex2Jar.
v2.0.0
Uno strumento che automatizza le attività banali del penetration testing di app Android.
Lo strumento attualmente fornisce le seguenti funzionalità:
/data/app//data/dataÈ possibile concatenare le modalità operative per automatizzare il proprio flusso di lavoro personalizzato.
Esempio:
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
============================================================
Impostazioni in uso:
+> Elabora file apk: True
> Nome del file apk di destinazione: sneezed.apk
+> Configura ADB su WiFi: True
+> Scarica file apk: True
+> Scarica directory dati app: False
>> Impostazioni condivise per la configurazione ADB e il download apk/dati:
>> Percorso file ADBKey: /home/humoud/.android/adbkey
>> Indirizzo IP del dispositivo di test: 192.168.1.114
>> Porta del dispositivo di test: 5555
>> Nome pacchetto di destinazione: com.dev.test.example
Confermare? [s/n] s
Arresto del server adb
Elenco dei dispositivi collegati
* daemon non in esecuzione; avvio ora su tcp:5037
* demone avviato con successo
> Elenco dei dispositivi collegati
> xxxxx dispositivo
Impostazione del dispositivo in ascolto sulla porta 5555
> riavvio in modalità TCP porta: 5555
Connessione al dispositivo...
> connesso a 192.168.1.114:5555
Puoi testare se tutto funziona provando a ottenere una shell: adb -s 192.168.1.114:5555 shell
<*> Copia del file APK su /data/local/tmp/apkSneeze/base.apk (dispositivo mobile)...
<*> Download del file APK su sneezed.apk...
<*> Download completato, controlla sneezed.apk
<*> Eliminazione del file APK da /data/local/tmp/apkSneeze/base.apk (dispositivo mobile)...
[0] Elaborazione del file apk...
[1] Decompilazione del file APK tramite APKTOOL...
> I: Utilizzo di Apktool 2.4.0-dirty su sneezed.apk
> I: Caricamento tabella risorse...
> I: Decodifica AndroidManifest.xml con risorse...
> I: Caricamento tabella risorse dal file: /home/humoud/.local/share/apktool/framework/1.apk
> I: Manifest regolare del pacchetto...
> I: Decodifica risorse file...
> I: Decodifica valori */* XML...
> I: Baksmaling classes.dex...
> I: Baksmaling classes2.dex...
> I: Baksmaling classes3.dex...
> I: Copia assets e librerie...
> I: Copia file sconosciuti...
> I: Copia file originali...
[2] Conversione del file APK in JAR tramite dex2jar...
dex2jar sneezed.apk -> ./sneezed-dex2jar.jar
[3] Ricerca stringhe interessanti (output su file interesting_strings_sneezed.txt)...
[3] >> Elaborazione lista RegEx...
[3] >> Elaborazione lista stringhe...
Risultati: 20853
Fatto!
Requisiti:
python3 -m pip install -r requirements.txt
Nota: Lo strumento è stato testato e sviluppato su Kali Linux che ha apktool e dex2jar installati.
Per elaborare un file apk (Decompilare, convertire in Jar e cercare stringhe interessanti):
python3 apkSneeze.py -apk -apk_name test.apk
Per configurare ADB su WiFi, il dispositivo deve essere collegato via USB:
python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114
Imposta una porta personalizzata:
python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114 -device_port 10111
Per scaricare un file apk da un dispositivo di test (richiede accesso root):
python3 apkSneeze.py -apk_dl -pkg_name com.dev.test -device_ip 192.168.1.114
Se si utilizza una porta diversa da 5555 (porta personalizzata):
python3 apkSneeze.py -apk_dl -pkg_name com.dev.test -device_ip 192.168.1.114 -device_port 10111
Per scaricare la directory dei dati di un'app (/data/data) da un dispositivo di test (richiede accesso root):
python3 apkSneeze.py -data_dir_dl -device_ip 192.168.1.114 -pkg_name com.test.target.app
Puoi concatenare le modalità operative. Esempio: configura adb su wifi, poi scarica un file apk e infine elabora il file apk scaricato.
python3 apkSneeze.py -adb_over_wifi -device_ip 192.168.1.114 -apk_dl -pkg_name com.dev.test.example -apk
Lo strumento utilizza i seguenti valori predefiniti:
Tutti possono essere modificati specificando il parametro appropriato.
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'utilizzo di APKSneeze per attaccare bersagli senza previo consenso reciproco è illegale. È responsabilità dell'utente finale rispettare tutte le leggi locali, statali e federali applicabili. Gli sviluppatori non si assumono alcuna responsabilità e non sono responsabili per eventuali usi impropri o danni causati da questo programma.