
Hooker est un projet open source pour les analyses dynamiques d'applications Android. Ce projet fournit divers outils et applications qui peuvent être utilisés pour intercepter et modifier automatiquement tout appel API effectué par une application ciblée.
Hooker est un projet open source d'analyses dynamiques d'applications Android. Ce projet fournit divers outils et applications qui peuvent être utilisés pour intercepter et modifier automatiquement tout appel d'API effectué par une application ciblée.
Il s'appuie sur le framework Android Substrate pour intercepter ces appels et agréger toutes leurs informations contextuelles (paramètres, valeurs de retour, ...). Les informations collectées peuvent être stockées soit dans une ElasticSearch, soit dans des fichiers JSON.
Un ensemble de scripts Python est également fourni pour automatiser l'exécution d'une analyse afin de collecter tout appel d'API effectué par un ensemble d'applications.
Android-Hooker est une preuve de concept reposant sur le framework Substrate. Cela signifie que Hooker ne peut pas fonctionner si Substrate n'est pas correctement installé sur votre appareil. Pour le moment, les auteurs ont installé Substrate avec succès sur des appareils fonctionnant sous Android 4.1 et 4.2. Si vous savez comment installer Substrate sur des versions supérieures, merci de nous le faire savoir par courriel à l'adresse [email protected] et nous serons ravis de l'intégrer à ce projet.
Hooker est composé de plusieurs modules :
Nous avons développé Hooker sur un système Debian 64 bits et, à ce titre, il peut ne pas s'exécuter correctement sur d'autres systèmes en raison de chemins ou de paramètres inappropriés. Votre aide pour identifier ces incompatibilités est hautement appréciée. Merci de signaler un problème dans notre suivi de bogues si vous rencontrez une erreur lors de son utilisation.
Pour utiliser Hooker, vous avez besoin d'au moins un serveur sur lequel vous avez installé :
Cette étape concerne l'installation d'ElasticSearch. Veuillez télécharger et suivre la documentation en ligne d'ElasticSearch : http://www.elasticsearch.org/overview/elkdownloads/. Vous pouvez soit installer ElasticSearch sur un seul hôte, soit déployer un cluster de nœuds ElasticSearch.
Vous pouvez télécharger le bundle Android ici. Si vous souhaitez utiliser le script d'installation de Hooker, vous devez :
Vous assurer de définir votre variable d'environnement ANDROID_HOME : $ export ANDROID_HOME=/path/to/your/sdk/folder
Télécharger les API SDK depuis votre gestionnaire SDK.
Un script d'installation est fourni pour vous aider à compiler et installer toutes les dépendances nécessaires. Si vous souhaitez utiliser ce script, assurez-vous de disposer des dépendances suivantes :
# openjdk-7-jdk, ant, python-setuptools (il suffit de les installer via apt)
Lorsque tout est prêt, exécutez le script d'installation à la racine du répertoire Hooker :
$ ./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 > NonePour votre information, vous pouvez consulter une vidéo sur la façon de préparer un émulateur ici
Si votre hôte ElasticSearch se trouve sur un hôte différent de votre émulateur Android, vous devrez rediriger le trafic via le réseau. Pour ce faire, vous pouvez utiliser socat :
$ socat -s -v TCP4-LISTEN:9200,fork,ignoreeof,reuseaddr TCP4:192.168.98.11:9200,ignoreeof
Si vous avez une erreur concernant l'émulation OpenGLES (Could not load OpenGLES emulation library), vous devez modifier votre ldconfig (en tant que root) :
# echo "/path/to/your/sdk/tools/lib" > /etc/ld.so.conf.d/android.conf
# ldconfig
Consultez cette vidéo pour regarder une démonstration sur la façon d'exécuter une expérience manuelle afin d'analyser une application spécifique.
Si vous souhaitez utiliser Hooker sur des appareils réels, veuillez d'abord lire le README spécifique.
hooker_xp/sampleManualAnalysis.conf,hooker_xp/sampleAutomaticAnalysis.conf,*RealDevice*,Hooker utilise ElasticSearch pour stocker les événements et Kibana comme interface frontale pour les analyser. Afin de vous aider à analyser les applications, nous avons poussé un exemple de tableau de bord Kibana dans le répertoire tools/kibana-dashboard. Pour l'utiliser, vous devrez exécuter une première expérience puis importer le fichier kibana-export.json. Pour importer un tableau de bord, vous devez aller à l'URL http://localhost:5601 et :
Settings -> Objects,Import,Le script d'expérience Python se trouve dans le répertoire hooker_xp :
$ cd hooker_xp && python hooker_xp.py -c yourAnalysisConfigurationFile.conf
Vous devriez voir des journaux Python vous expliquant ce qui se passe.
Nous serions ravis que vous puissiez nous aider à améliorer ce travail. Veuillez utiliser les fonctionnalités de GitHub pour fournir vos corrections de bogues et améliorations.
Le projet Hooker a été lancé par Georges Bossert et Dimitri Kirchner. Tous deux travaillent pour AMOSSYS, une entreprise française de sécurité informatique http://www.amossys.fr.
Ce logiciel est sous licence GPLv3. Voir le fichier LICENSE dans le répertoire de distribution supérieur pour le texte complet de la licence.