
Kit di penetration testing e auditing per app Android.
Uno strumento Java che aiuta a eseguire pentest sulle app Android in modo più veloce, semplice ed efficiente. AndroTickler offre molte funzionalità di raccolta informazioni, controlli statici e dinamici che coprono gran parte degli aspetti del pentesting di app Android. Offre inoltre diverse funzionalità di cui i pentester hanno bisogno durante i loro test. AndroTickler si integra anche con Frida per fornire tracciamento e manipolazione dei metodi. In precedenza era pubblicato con il nome di Tickler.
AndroTickler richiede un host Linux e un dispositivo Android con root collegato alla sua porta USB. Lo strumento non installa nulla sul dispositivo Android, crea solo una directory Tickler su /sdcard. AndroTickler dipende da Android SDK per eseguire comandi sul dispositivo e copiare i dati dell'app nella directory TicklerWorkspace sull'host per ulteriori analisi. TicklerWorkspace è la directory di lavoro di AndroTickler e ogni app ha una sottodirectory separata in TicklerWorkspace che può contenere quanto segue (a seconda delle azioni dell'utente):
La directory libs e il file di configurazione Tickler.conf si trovano nella stessa directory del file jar. Il file di configurazione imposta la posizione della directory TicklerDir sull'host e Tickler su /sdcard del dispositivo Android. Se il file di configurazione non esiste o queste 2 directory non sono impostate, verranno utilizzati i valori predefiniti (Tickler_workspace nella directory corrente e /sdcard/Tickler rispettivamente). La directory Tickler_lib contiene alcune librerie Java e strumenti esterni utilizzati da AndroTickler, come apktool e dex2jar.
AndroTickler dipende fortemente dai seguenti strumenti, quindi devono essere presenti sulla tua macchina prima di usarlo:
Altri strumenti sono richiesti per alcune funzionalità, ma AndroTickler può comunque funzionare senza di essi:
Compilare lo strumento dal codice
gradle build
Spostare AndroTickler.jar nella stessa directory della directory Tickler_lib e del file Tickler.conf (creato automaticamente in build/libs)
Impostare dex2jar come eseguibile (libs/notJars//dex2jar-2.1/d2j-dex2jar.sh e libs/notJars//dex2jar-2.1/d2j_invoke.sh)
Collegare il dispositivo Android con l'applicazione da testare installata
Nota: Se la compilazione del codice sorgente fallisce, puoi scaricare l'ultima release compilata dalla scheda releases
La versione corrente fa quanto segue:
java -jar AndroTickler.jar -h
Elenca le app installate sul dispositivo:
java -jar AndroTickler.jar -pkgs
Cerca un'app (pacchetto) installata sul dispositivo il cui nome del pacchetto contiene la chiave di ricerca
java -jar AndroTickler.jar -findPkg <searchKey>
java -jar AndroTickler.jar -pkg <pacchetto> [altre opzioni]
Qualsiasi comando con l'opzione -pkg (usata o meno con una delle seguenti opzioni) esegue le seguenti azioni se non sono già state eseguite:
java -jar AndroTickler.jar -pkg <pacchetto> -info
Restituisce le seguenti informazioni:
java -jar AndroTickler.jar -pkg <pacchetto> -squeeze [short | <codeLocation> ]
Recupera quanto segue dal codice Java decompilato dell'app:
Come prevedibile, il suo output è solitamente enorme, quindi si consiglia di reindirizzare l'output del comando in un file.
short Squeeza solo il codice decompilato che appartiene allo sviluppatore. Ad esempio, se un'app ha un nome pacchetto com.notEnaf.myapp, allora squeeze short squeeze solo il codice nella directory com/notEnaf.
Squeeza il codice solo nella directory codeLocation. Utile per limitare la ricerca o per squeezeare il codice sorgente se disponibile.
java -jar AndroTickler.jar -pkg <pacchetto> -l [-exp] [-v]
Elenca tutti i componenti dell'app
-exp Mostra solo i componenti esportati
-v Fornisce informazioni più dettagliate per ogni componente:
java -jar AndroTickler.jar -pkg <pacchetto> -l [-act | -ser | -rec | -prov ] [-exp] [-v]
java -jar AndroTickler.jar -pkg <pacchetto> -db [|e|l|d] [nu]
Per impostazione predefinita, tutti i comandi -db aggiornano la directory di archiviazione dati dell'app sull'host prima di eseguire il controllo.
nessun attributo O e Verifica se i database dell'app sono crittografati. È l'azione predefinita se non viene fornita alcuna opzione dopo il flag -db. l Elenca tutti i database dell'app. I database crittografati potrebbero non essere rilevati. d Esegue un dump sqlite di uno qualsiasi dei database non crittografati. nu noUpdate: esegue una qualsiasi delle opzioni sopra senza aggiornare la directory dati dell'app sull'host.
java -jar AndroTickler.jar -pkg <pacchetto> -diff [d|detailed]
Copia la directory di archiviazione dati dell'app (in DataDirOld) quindi chiede all'utente di eseguire l'azione desiderata e di premere Invio quando ha finito. Quindi copia di nuovo la directory di archiviazione dati (in DataDir) ed esegue un diff tra di esse per mostrare quali file sono stati aggiunti, eliminati o modificati.
d|detailed Fa la stessa cosa del normale comando -diff, inoltre mostra esattamente cosa è cambiato nei file di testo e nei database non crittografati.
java -jar AndroTickler.jar -pkg <pacchetto> -sc <chiave> [<posizionePersonalizzata>]
Cerca la chiave nelle seguenti posizioni:
La ricerca non distingue tra maiuscole e minuscole.
Sostituisce la posizione del codice Java decompilato con la posizione personalizzata.