
Penetrationstest- und Audit-Toolkit für Android-Apps.
Ein Java-Werkzeug, das hilft, Android-Apps schneller, einfacher und effizienter zu pentesten. AndroTickler bietet viele Funktionen zur Informationssammlung, statischen und dynamischen Überprüfungen, die die meisten Aspekte des Pentestings von Android-Apps abdecken. Es bietet außerdem mehrere Funktionen, die Pentester während ihrer Tests benötigen. AndroTickler integriert sich zudem mit Frida, um Methoden-Tracing und -Manipulation zu ermöglichen. Es wurde zuvor unter dem Namen Tickler veröffentlicht.
AndroTickler benötigt einen Linux-Host und ein gerootetes Android-Gerät, das über USB angeschlossen ist. Das Tool installiert nichts auf dem Android-Gerät, es erstellt lediglich ein Tickler-Verzeichnis auf /sdcard. AndroTickler ist auf das Android SDK angewiesen, um Befehle auf dem Gerät auszuführen und die App-Daten in das TicklerWorkspace-Verzeichnis auf dem Host zur weiteren Analyse zu kopieren. TicklerWorkspace ist das Arbeitsverzeichnis von AndroTickler und jede App hat ein separates Unterverzeichnis in TicklerWorkspace, das Folgendes enthalten kann (je nach Benutzeraktionen):
Das libs-Verzeichnis und die Konfigurationsdatei Tickler.conf befinden sich im selben Verzeichnis wie die Jar-Datei. Die Konfigurationsdatei legt den Speicherort des TicklerDir-Verzeichnisses auf dem Host und Tickler auf /sdcard des Android-Geräts fest. Wenn die Konfigurationsdatei nicht existiert oder diese beiden Verzeichnisse nicht gesetzt sind, werden Standardwerte verwendet (Tickler_workspace im aktuellen Verzeichnis bzw. /sdcard/Tickler). Das Tickler_lib-Verzeichnis enthält einige Java-Bibliotheken und externe Werkzeuge, die von AndroTickler verwendet werden, wie apktool und dex2jar.
AndroTickler ist stark von den folgenden Werkzeugen abhängig, daher sollten sie vor der Verwendung auf Ihrem Rechner vorhanden sein:
Andere Werkzeuge werden für einige Funktionen benötigt, aber AndroTickler kann auch ohne sie ausgeführt werden:
Tool aus dem Code bauen
gradle build
Verschieben Sie AndroTickler.jar in dasselbe Verzeichnis wie das Tickler_lib-Verzeichnis und die Datei Tickler.conf (automatisch in build/libs erstellt).
Setzen Sie dex2jar als ausführbar (libs/notJars//dex2jar-2.1/d2j-dex2jar.sh und libs/notJars//dex2jar-2.1/d2j_invoke.sh)
Schließen Sie Ihr Android-Gerät mit der zu testenden App an.
Hinweis: Wenn das Bauen des Quellcodes fehlschlägt, können Sie die neueste kompilierte Version über den Releases-Tab herunterladen.
Die aktuelle Version bietet Folgendes:
java -jar AndroTickler.jar -h
Installierte Apps auf dem Gerät auflisten:
java -jar AndroTickler.jar -pkgs
Suche nach einer auf dem Gerät installierten App (Paket), deren Paketname den Suchbegriff enthält:
java -jar AndroTickler.jar -findPkg <searchKey>
java -jar AndroTickler.jar -pkg <package> [andere Optionen]
Jeder Befehl mit einer -pkg-Option (unabhängig davon, ob sie mit einer der folgenden Optionen verwendet wird oder nicht) führt die folgenden Aktionen aus, sofern sie nicht bereits durchgeführt wurden:
java -jar AndroTickler.jar -pkg <package> -info
Gibt die folgenden Informationen zurück:
java -jar AndroTickler.jar -pkg <package> -squeeze [short | <codeLocation> ]
Ruft Folgendes aus dem dekompilierten Java-Code der App ab:
Es ist nicht überraschend, dass die Ausgabe normalerweise riesig ist, daher wird empfohlen, die Ausgabe des Befehls in eine Datei umzuleiten.
short Squeezed nur den dekompilierten Code, der zum Entwickler gehört. Wenn eine App beispielsweise den Paketnamen com.notEnaf.myapp hat, dann squeezed squeeze short nur den Code im Verzeichnis com/notEnaf.
Squeezed den Code nur im codeLocation-Verzeichnis. Hilfreich, um die Suche einzuschränken oder den Quellcode zu squeezen, falls verfügbar.
java -jar AndroTickler.jar -pkg <package> -l [-exp] [-v]
Listet alle Komponenten der App auf.
-exp Zeigt nur exportierte Komponenten an.
-v Liefert detailliertere Informationen für jede Komponente:
java -jar AndroTickler.jar -pkg <package> -l [-act | -ser | -rec | -prov ] [-exp] [-v]
java -jar AndroTickler.jar -pkg <package> -db [|e|l|d] [nu]
Standardmäßig aktualisieren alle -db-Befehle das Daten-Speicherverzeichnis der App auf dem Host, bevor die Prüfung ausgeführt wird.
kein Attribut ODER e Prüft, ob die Datenbanken der App verschlüsselt sind. Dies ist die Standardaktion, wenn nach dem -db-Flag keine Option angegeben wird. l Listet alle Datenbanken der App auf. Verschlüsselte Datenbanken werden möglicherweise nicht erkannt. d Erstellt einen sqlite-Dump einer der unverschlüsselten Datenbanken. nu noUpdate: führt eine der obigen Optionen aus, ohne das Datenverzeichnis der App auf dem Host zu aktualisieren.
java -jar AndroTickler.jar -pkg <package> -diff [d|detailed]
Kopiert das Daten-Speicherverzeichnis der App (nach DataDirOld), fordert den Benutzer auf, die gewünschte Aktion durchzuführen und die Eingabetaste zu drücken, wenn er fertig ist. Dann kopiert es das Daten-Speicherverzeichnis erneut (nach DataDir) und führt einen diff zwischen ihnen durch, um zu zeigen, welche Dateien hinzugefügt, gelöscht oder geändert wurden.
d|detailed Macht dasselbe wie der normale -diff-Befehl, zeigt aber auch an, was genau in Textdateien und unverschlüsselten Datenbanken geändert wurde.
java -jar AndroTickler.jar -pkg <package> -sc <key> [<customLocation>]
Sucht nach dem key an folgenden Stellen: