
Hooker is an opensource project for dynamic analyses of Android applications. This project provides various tools and applications that can be use to automaticaly intercept and modify any API calls made by a targeted application.
==========================================================
Hooker ist ein Open-Source-Projekt für die dynamische Analyse von Android-Anwendungen. Dieses Projekt bietet verschiedene Tools und Anwendungen, die verwendet werden können, um API-Aufrufe einer Zielanwendung automatisch abzufangen und zu modifizieren.
Es nutzt das Android-Substrate-Framework, um diese Aufrufe abzufangen und alle ihre Kontextinformationen (Parameter, Rückgabewerte, ...) zu sammeln. Die gesammelten Informationen können entweder in einer ElasticSearch-Datenbank oder in JSON-Dateien gespeichert werden.
Es wird auch eine Reihe von Python-Skripten bereitgestellt, um die Durchführung einer Analyse zur Sammlung aller API-Aufrufe einer Reihe von Anwendungen zu automatisieren.
Android-Hooker ist ein Proof-of-Concept, der auf dem Substrate-Framework basiert. Das bedeutet, dass Hooker nicht funktionieren kann, wenn Substrate nicht korrekt auf Ihrem Gerät installiert ist. Derzeit haben die Autoren Substrate erfolgreich auf Geräten mit Android-Versionen 4.1 und 4.2 installiert. Wenn Sie wissen, wie Substrate auf höheren Versionen installiert wird, lassen Sie es uns bitte per E-Mail an [email protected] wissen. Wir werden uns freuen, dies in das Projekt zu integrieren.
Hooker besteht aus mehreren Modulen:
Wir haben Hooker auf einem Debian-64-Bit-System entwickelt, daher kann es auf anderen Systemen aufgrund falscher Pfade oder Parameter fehlschlagen. Ihre Hilfe bei der Identifizierung dieser Inkompatibilitäten wird sehr geschätzt. Bitte melden Sie ein Problem in unserem Bug-Tracker, wenn Sie bei der Verwendung auf Fehler stoßen.
Um Hooker zu verwenden, benötigen Sie mindestens einen Server, auf dem Sie Folgendes installiert haben:
Dieser Schritt betrifft die ElasticSearch-Installation. Bitte laden Sie die Online-Dokumentation von ElasticSearch herunter und folgen Sie ihr: http://www.elasticsearch.org/overview/elkdownloads/. Sie können ElasticSearch entweder auf einem einzelnen Host installieren oder einen Cluster von ElasticSearch-Knoten bereitstellen.
Sie können das Android-Bundle hier herunterladen. Wenn Sie das Hooker-Installationsskript verwenden möchten, müssen Sie:
ANDROID_HOME-Umgebungsvariable setzen: $ export ANDROID_HOME=/path/to/your/sdk/folderEin Installationsskript wird bereitgestellt, um Ihnen beim Erstellen und Installieren aller erforderlichen Abhängigkeiten zu helfen. Wenn Sie dieses Skript verwenden möchten, stellen Sie sicher, dass Sie die folgenden Abhängigkeiten haben:
# openjdk-7-jdk, ant, python-setuptools (just apt install them)
Wenn alles bereit ist, führen Sie das Installationsskript im Hooker-Stammverzeichnis aus:
$ ./install.sh
$ $ANDROID_HOME/tools/android list target.cd tools/emulatorCreator && python HookerInstaller.py -s SDK_PATH -a Hooker_test -t ANDROID_TARGET -d AVD_DIRECTORY,Menu > System Settings > Security > Screen lock > NoneZu Ihrer Information können Sie sich ein Video zur Vorbereitung eines Emulators hier ansehen
Wenn sich Ihr Elasticsearch-Host auf einem anderen Host als Ihrem Android-Emulator befindet, müssen Sie den Datenverkehr über das Netzwerk umleiten. Dazu können Sie socat verwenden:
$ socat -s -v TCP4-LISTEN:9200,fork,ignoreeof,reuseaddr TCP4:192.168.98.11:9200,ignoreeof
Wenn Sie einen Fehler bezüglich der OpenGLES-Emulation haben (Could not load OpenGLES emulation library), müssen Sie Ihre ldconfig bearbeiten (als root):
# echo "/path/to/your/sdk/tools/lib" > /etc/ld.so.conf.d/android.conf
# ldconfig
Sehen Sie sich dieses Video an, um eine Demo zur Durchführung eines manuellen Experiments zur Analyse einer bestimmten Anwendung zu sehen.
Wenn Sie Hooker auf echten Geräten verwenden möchten, lesen Sie bitte zuerst die spezifische README.
hooker_xp/sampleManualAnalysis.conf,hooker_xp/sampleAutomaticAnalysis.conf,*RealDevice*-Konfigurationsdateien,Hooker verwendet ElasticSearch, um Ereignisse zu speichern, und Kibana als Frontend zur Analyse dieser. Um Ihnen bei der Analyse von Anwendungen zu helfen, haben wir ein Kibana-Dashboard-Beispiel im Verzeichnis tools/kibana-dashboard bereitgestellt. Um es zu verwenden, müssen Sie ein erstes Experiment durchführen und dann die Datei filekibana-export.json importieren. Um ein Dashboard zu importieren, müssen Sie zur URL http://localhost:5601 gehen und:
Settings -> Objects,Import,Das Python-Experiment-Skript befindet sich im Verzeichnis hooker_xp:
$ cd hooker_xp && python hooker_xp.py -c yourAnalysisConfigurationFile.conf
Sie sollten Python-Logs sehen, die erklären, was passiert.
Wir würden uns freuen, wenn Sie uns helfen könnten, diese Arbeit zu verbessern. Bitte nutzen Sie die GitHub-Funktionen, um Ihre Fehlerbehebungen und Verbesserungen bereitzustellen.
Das Hooker-Projekt wurde von Georges Bossert und Dimitri Kirchner initiiert. Beide arbeiten für AMOSSYS, ein französisches IT-Sicherheitsunternehmen http://www.amossys.fr.
Diese Software ist unter der GPLv3-Lizenz lizenziert. Die vollständigen Lizenzbestimmungen finden Sie in der Datei LICENSE im obersten Verzeichnis der Distribution.