Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
inhale — Un outil d'analyse et de classification de malwares. | Kitploit
Outils/GitHubGitHub/netspooky/inhale
Analyse StatiqueAnalyse de HachageAnalyse ForensiqueCollecte d'InformationsAnalyse de MalwareAnalyse de Binaires
GitHubnetspooky/inhale

inhale

Un outil d'analyse et de classification de malwares.

Voir le dépôt
19133il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Inhale - Inhalateur de Malwares

Inhale est un outil d'analyse et de classification de malwares capable d'automatiser et de mettre à l'échelle de nombreuses opérations d'analyse statique.

Ceci est la version bêta, destinée aux tests, aux retours et au développement communautaire.

Contexte

Inhale a commencé comme une série de petits scripts que j'utilisais pour collecter et analyser une grande quantité de malwares provenant de sources diverses. Il existe de nombreux frameworks et outils pour effectuer un travail similaire, mais aucun ne correspondait vraiment à mon flux de travail pour trouver rapidement, classifier et stocker des informations sur un grand nombre de fichiers. Certains nécessitent également des clés API coûteuses et d'autres services payants.

J'ai fini par transformer ces scripts en quelque chose que les gens peuvent rapidement installer et utiliser, que ce soit depuis un serveur de recherche, un ordinateur portable, ou un ordinateur bon marché comme un Raspberry Pi.

Installation

Cet outil est conçu pour fonctionner sous Linux avec Python3, ElasticSearch, radare2, yara et binwalk. jq est également nécessaire pour afficher joliment la sortie de la base de données. Voici quelques instructions de base pour l'installation.

Il y a un certain nombre de choses dans le fichier config.yml qui ne sont pas encore configurées, laissez-les tranquilles sauf indication contraire dans cette documentation.

Python3

Installer les dépendances

root@kitploit:~
python3 -m pip install -r requirements.txt

Installation d'ElasticSearch (Debian)

Une base de données n'est pas nécessaire pour utiliser Inhale, mais si vous souhaitez en configurer une, suivez ces instructions et définissez l'option "enable_database" du fichier config.yml sur True.

Documentation

root@kitploit:~
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo service elasticsearch start

Vous pouvez également installer manuellement en suivant cette documentation

Vous pouvez également mettre en place une pile ELK complète à des fins de visualisation et d'analyse de données. Ce n'est pas nécessaire pour utiliser cet outil.

Installation de radare2

Il est important d'installer radare2 depuis le dépôt, et non depuis votre gestionnaire de paquets. Les versions du gestionnaire de paquets ne comportent pas toutes les fonctionnalités nécessaires pour inhale.

root@kitploit:~
git clone https://github.com/radare/radare2
cd radare2
sys/install.sh

Installation de Yara

Documentation

root@kitploit:~
sudo apt-get install automake libtool make gcc
wget https://github.com/VirusTotal/yara/archive/v3.10.0.tar.gz
tar xvzf v3.10.0.tar.gz
cd yara-3.10.0/
./bootstrap.sh
./configure
make
sudo make install

Si vous obtenez des erreurs concernant les objets partagés, essayez ceci pour résoudre le problème.

root@kitploit:~
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf'
sudo ldconfig

Installation de binwalk

Il est probablement préférable d'installer simplement binwalk depuis le dépôt.

root@kitploit:~
git clone https://github.com/ReFirmLabs/binwalk
cd binwalk
sudo python3 setup.py install

Plus d'informations sur l'installation de fonctionnalités supplémentaires pour binwalk se trouvent ici.

Installation de telfhash/tshl

Il s'agit d'une bibliothèque qui hache les sections des fichiers ELF pour l'analyse des familles de malwares. telfhash dépend de tlsh, donc les instructions pour installer les deux sont les suivantes :

Configuration de tlsh

root@kitploit:~
git clone https://github.com/trendmicro/tlsh
cd tlsh
./make.sh
cd py_ext/
python3 ./setup.py build
sudo python3 ./setup.py install

Configuration de telfhash

root@kitploit:~
git clone https://github.com/trendmicro/telfhash
cd telfhash
sudo python3 setup.py install

Configuration du serveur web

Si vous souhaitez utiliser un serveur web pour héberger la sortie d'inhale et la partager, définissez les variables dans config.yml avec les chemins appropriés et assurez-vous que les répertoires existent !

root@kitploit:~
web:
  gen_html: False
  webdir: "/var/www/html/" # The actual web directory
  fqdn: "http://threat.land" # Your website
  in_path: "/var/www/html/inhaled/" # The path to inhale output
  ex_path: "/var/www/html/exhaled/" # The path for db query cache output

Pour utiliser la sortie HTML, exécutez inhale comme ceci :

root@kitploit:~
python3 inhale.py [all your args here] --html

Utilisation

Spécifiez le fichier que vous analysez par type :

root@kitploit:~
-f INFILE      Analyser un seul fichier
-d DIRECTORY   Analyser un répertoire de fichiers
-u URLFILE     Analyser un fichier distant (url)
-r RDIRECTORY  Analyser un répertoire distant (url)
-l URLLIST     Analyser une liste d'URL dans un fichier texte

Autres options :

root@kitploit:~
-t TAGS        Ajouter des balises supplémentaires à la sortie.
-b             Désactiver les signatures binwalk
-y YARARULES   Spécifier des règles Yara personnalisées
-o OUTDIR      Stocker les fichiers analysés dans un répertoire de sortie spécifique (par défaut : ./files/<date>/)
-i             Afficher uniquement les informations, ne pas ajouter les fichiers à la base de données
--html         Enregistrer la sortie au format HTML dans le répertoire web.

Exemples

L'exécution de inhale.py effectuera toutes les analyses sur un fichier/répertoire/URL donné et les affichera dans votre terminal.

Afficher les informations sur /bin/ls, sans l'ajouter à la base de données

root@kitploit:~
python3 inhale.py -f /bin/ls -i 

Ajouter le répertoire 'malwarez' à la base de données

root@kitploit:~
python3 inhale.py -d malwarez/

Télécharger ce fichier et l'ajouter à la base de données

root@kitploit:~
python3 inhale.py -u https://thugcrowd.com/chal/skull

Télécharger tout le contenu de ce répertoire distant, et tout étiqueter comme "phishing" :

root@kitploit:~
python3 inhale.py -r http://someurl.com/opendir/ -t phishing

ASTUCE : Utilisez cette recherche de hashtag Twitter pour trouver des répertoires ouverts intéressants pouvant contenir des malwares. Utilisez à vos propres risques.

Yara

Vous pouvez passer vos propres règles yara avec -y, c'est un énorme travail en cours et presque tout ce qui se trouve dans "YaraRules" provient de https://github.com/kevthehermit/PasteHunter/tree/master/YaraRules. Merci à @KevTheHermit

Interroger la base de données

Utilisez db.sh pour interroger (bientôt un joli script)

root@kitploit:~
db.sh *something* | jq .

Modèle de données

Voici le modèle de données actuellement utilisé pour la base de données elasticsearch. Tous ces champs ne seront pas utilisés pour chaque fichier donné. Les balises r2_* sont généralement réservées aux binaires d'une certaine sorte.

Solutions aux problèmes

Il y a quelques problèmes connus avec ce projet (principalement liés aux versions des gestionnaires de paquets), et je vais suivre ici tout ce qui a une solution.

Limite de champs d'index ElasticSearch

Si vous obtenez une erreur comme celle-ci :

root@kitploit:~
elasticsearch.exceptions.RequestError: RequestError(400, 'illegal_argument_exception', 'Limit of total fields [1000] in index [inhaled] has been exceeded')

Vous avez peut-être une version plus ancienne d'elasticSearch. Vous pouvez mettre à niveau ou augmenter la limite de champs avec cette commande one-liner.

root@kitploit:~
curl -XPUT 'localhost:9200/inhaled/_settings' -H 'Content-Type: application/json' -d'{ "index" : { "mapping" : { "total_fields" : { "limit" : "100000" }}}}'

Fonctionnalités futures

  • Refonte du plugin bot pour Discord / Matrix
  • Fonctionnalités d'analyse binaire supplémentaires - extraction des tables d'import/export, hachage de structures spécifiques dans l'en-tête, enregistrement de toutes les chaînes, etc. Certaines sont déjà implémentées dans telfhash !
  • Vérifier si le fichier est la base de données avant de l'ajouter. Cette fonctionnalité a été supprimée précédemment en raison de problèmes spécifiques avec les anciennes versions d'ES.
  • Options de configuration pour les requêtes telles que : user-agent, timeout, proxy, etc.
  • Dockerisation de l'ensemble du projet.

Contribution

Les PRs sont les bienvenues ! Si vous souhaitez donner un retour spécifique, vous pouvez également m'envoyer un message direct @netspooky sur Twitter.

Remerciements

Je tiens à remercier tous ceux qui m'ont aidé à tester cet outil. Je tiens également à remercier Plazmaz pour avoir effectué un premier nettoyage du code pour le rendre un peu plus propre.

Salutations à : hermit, plazmaz, nux, x0, dustyfresh, aneilan, sshell, readme, dnz, notdan, rqu, specters, nullcookies, ThugCrowd, et tous ceux impliqués avec ThreatLand et la TC Safari Zone.

Télécharger l’outil
NomDescription
filenameLe chemin complet du binaire
file_extL'extension du fichier
filesizeLa taille du fichier
filetypeType de fichier basé sur la valeur magique. Pas aussi fiable que les signatures binwalk.
md5Le hash MD5 du fichier
sha1Le hash SHA1 du fichier
sha256Le hash SHA256 du fichier
addedLa date d'ajout du fichier
r2_archArchitecture du fichier binaire
r2_baddrL'adresse de base du binaire
r2_binszLa taille du code programme
r2_bitsBits de l'architecture - 8/16/32/64 etc.
r2_canaryIndique si les canaris de pile sont activés
r2_classClasse du binaire
r2_compiledLa date de compilation du binaire
r2_dbg_fileLe fichier de débogage du binaire
r2_intrpL'interpréteur appelé par le binaire s'il est lié dynamiquement
r2_langLe langage du code source
r2_lsymsIndique s'il y a des symboles de débogage
r2_machineLe type de machine, généralement le CPU pour lequel le binaire est conçu
r2_osLe système d'exploitation sur lequel la machine est censée fonctionner
r2_picIndique s'il y a du code à position indépendante
r2_relocsIndique s'il y a des relocalisations
r2_rpathLe chemin de recherche d'exécution - le cas échéant
r2_strippedIndique si le binaire est dépouillé
r2_subsysLe sous-système du binaire
r2_formatLe format binaire
r2_iorwIndique si des appels ioctl sont présents
r2_typeLe type de binaire, qu'il s'agisse d'un exécutable, d'un objet partagé, etc.
yaraContient une liste de correspondances yara
binwalkContient une liste de signatures binwalk et leurs emplacements dans le binaire
tagsToutes les balises définies par l'utilisateur passées avec l'option -t.
urlL'URL d'origine si le fichier a été téléchargé à distance
urlsToutes les URL extraites du binaire