Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
inhale — Ein Tool zur Malware-Analyse und -Klassifizierung. | Kitploit
Tools/GitHubGitHub/netspooky/inhale
Statische AnalyseHash-AnalyseForensikInformationsbeschaffungMalware-AnalyseBinäranalyse
GitHubnetspooky/inhale

inhale

Ein Tool zur Malware-Analyse und -Klassifizierung.

Repository anzeigen
19133vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Inhale - Malware-Inhalator

Inhale ist ein Werkzeug zur Analyse und Klassifizierung von Malware, das in der Lage ist, viele statische Analysevorgänge zu automatisieren und zu skalieren.

Dies ist die Beta-Release-Version, zu Testzwecken, für Feedback und Community-Entwicklung.

Hintergrund

Inhale begann als eine Reihe kleiner Skripte, die ich beim Sammeln und Analysieren einer großen Menge an Malware aus verschiedenen Quellen verwendete. Es gibt viele Frameworks und Werkzeuge für ähnliche Arbeiten, aber keines entsprach wirklich meinem Arbeitsablauf, der darin besteht, schnell Informationen über eine große Anzahl von Dateien zu finden, zu klassifizieren und zu speichern. Einige erfordern auch teure API-Schlüssel und andere kostenpflichtige Dienste.

Letztendlich habe ich diese Skripte in etwas verwandelt, das Leute schnell einrichten und nutzen können, egal ob von einem Forschungsserver, einem Laptop oder einem kostengünstigen Computer wie einem Raspberry Pi.

Installation

Dieses Tool ist für den Betrieb unter Linux mit Python3, ElasticSearch, radare2, yara und binwalk ausgelegt. jq wird ebenfalls benötigt, um die Ausgabe aus der Datenbank hübsch zu formatieren. Hier sind einige grundlegende Installationsanweisungen.

Es gibt eine Reihe von Dingen in der config.yml-Datei, die noch nicht eingerichtet sind; lassen Sie sie einfach, sofern in dieser Dokumentation nichts anderes angegeben ist.

Python3

Abhängigkeiten installieren

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

ElasticSearch installieren (Debian)

Eine Datenbank ist für die Verwendung von Inhale nicht erforderlich. Wenn Sie jedoch eine einrichten möchten, befolgen Sie einfach diese Anweisungen und setzen Sie die config.yml-Option "enable_database" auf True.

Dokumentation

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

Sie können auch manuell installieren, indem Sie dieser Dokumentation folgen

Zusätzlich können Sie einen vollständigen ELK-Stack einrichten für Visualisierungs- und Datenanalysezwecke. Es ist nicht erforderlich, um dieses Tool zu verwenden.

radare2 installieren

Es ist wichtig, radare2 aus dem Repository zu installieren, nicht über Ihren Paketmanager. Die Versionen der Paketmanager haben nicht alle erforderlichen Funktionen für inhale.

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

Yara installieren

Dokumentation

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

Wenn Sie Fehler bezüglich Shared Objects erhalten, versuchen Sie Folgendes, um das Problem zu beheben.

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

binwalk installieren

Es ist wahrscheinlich am besten, binwalk einfach aus dem Repository zu installieren.

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

Weitere Informationen zur Installation zusätzlicher Funktionen für binwalk finden Sie hier.

telfhash/tshl installieren

Dies ist eine Bibliothek, die Abschnitte von ELF-Dateien zur Analyse von Malware-Familien hasht. telfhash benötigt tlsh, daher folgen Anweisungen zur Installation beider:

tlsh einrichten

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

telfhash einrichten

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

Webserver einrichten

Wenn Sie einen Webserver verwenden möchten, um die inhale-Ausgabe zu hosten und zu teilen, setzen Sie die Variablen in config.yml auf die entsprechenden Pfade und stellen Sie sicher, dass die Verzeichnisse existieren!

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

Um die HTML-Ausgabe zu verwenden, führen Sie inhale wie folgt aus:

root@kitploit:~
python3 inhale.py [alle Ihre Argumente hier] --html

Verwendung

Geben Sie die Datei an, die Sie nach Typ durchsuchen:

root@kitploit:~
-f INFILE      Analysiert eine einzelne Datei
-d DIRECTORY   Analysiert ein Verzeichnis mit Dateien
-u URLFILE     Analysiert eine entfernte Datei (URL)
-r RDIRECTORY  Analysiert ein entferntes Verzeichnis (URL)
-l URLLIST     Analysiert eine Liste von URLs in einer Textdatei

Weitere Optionen:

root@kitploit:~
-t TAGS        Fügt der Ausgabe zusätzliche Tags hinzu.
-b             Deaktiviert binwalk-Signaturen
-y YARARULES   Gibt benutzerdefinierte Yara-Regeln an
-o OUTDIR      Speichert gescrapte Dateien in einem bestimmten Ausgabeverzeichnis (Standard: ./files/<date>/)
-i             Nur Informationen anzeigen, keine Dateien zur Datenbank hinzufügen
--html         Speichert die Ausgabe als HTML im Webverzeichnis.

Beispiele

Das Ausführen von inhale.py führt alle Analysen für eine bestimmte Datei/ein bestimmtes Verzeichnis/eine bestimmte URL durch und gibt sie auf Ihrem Terminal aus.

Informationen zu /bin/ls anzeigen, aber nicht zur Datenbank hinzufügen

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

Verzeichnis 'malwarez' zur Datenbank hinzufügen

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

Diese Datei herunterladen und zur Datenbank hinzufügen

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

Alles in diesem entfernten Verzeichnis herunterladen, alles als "phishing" taggen:

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

PROTIP: Nutzen Sie diese Twitter-Hashtag-Suche, um interessante offene Verzeichnisse zu finden, die möglicherweise Malware enthalten. Nutzung auf eigene Gefahr.

Yara

Sie können Ihre eigenen Yara-Regeln mit -y übergeben. Dies ist eine große Baustelle, und fast alles in "YaraRules" stammt von https://github.com/kevthehermit/PasteHunter/tree/master/YaraRules. Ein großes Dankeschön an @KevTheHermit

Abfragen der Datenbank

Verwenden Sie db.sh zum Abfragen (Bald ein schönes Skript)

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

Datenmodell

Das Folgende ist das aktuelle Datenmodell, das für die Elasticsearch-Datenbank verwendet wird. Nicht alle davon werden für jede Datei verwendet. r2_*-Tags sind normalerweise für Binärdateien reserviert.

Lösungen für Probleme

Es gibt einige bekannte Probleme mit diesem Projekt (hauptsächlich in Bezug auf Versionen aus Paketmanagern), und hier werde ich alles verfolgen, wofür es eine Lösung gibt.

ElasticSearch Index-Feld-Limit

Wenn Sie einen Fehler wie diesen erhalten:

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

Möglicherweise haben Sie eine ältere Version von ElasticSearch. Sie können ein Upgrade durchführen oder das Feld-Limit mit diesem Einzeiler erhöhen.

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

Zukünftige Funktionen

  • Überarbeitung des Bot-Plugins für Discord / Matrix
  • Zusätzliche Binäranalysefunktionen – Extrahieren von Import-/Export-Tabellen, Hashen spezifischer Strukturen im Header, Protokollieren aller Strings usw. Einige in telfhash implementiert!
  • Überprüfen, ob die Datei bereits in der Datenbank ist, bevor sie hinzugefügt wird. Diese Funktion wurde zuvor aufgrund spezifischer Probleme mit älteren ES-Versionen entfernt.
  • Konfigurationsoptionen für Anfragen wie: User-Agent, Timeout, Proxy usw.
  • Dockerisierung des gesamten Projekts.

Mitwirken

PRs sind willkommen! Wenn Sie spezifisches Feedback geben möchten, können Sie mir auch auf Twitter eine DM an @netspooky schicken.

Danksagungen

Ich möchte mich bei allen bedanken, die mir beim Testen dieses Tools geholfen haben. Ich danke auch Plazmaz für die erste Durchsicht des Codes, um ihn ein wenig aufzuräumen.

Grüße an: hermit, plazmaz, nux, x0, dustyfresh, aneilan, sshell, readme, dnz, notdan, rqu, specters, nullcookies, ThugCrowd und alle, die an ThreatLand und der TC Safari Zone beteiligt sind.

Tool herunterladen
NameBeschreibung
filenameDer vollständige Pfad der Binärdatei
file_extDie Dateierweiterung
filesizeDie Dateigröße
filetypeDateityp basierend auf Magic-Wert. Nicht so zuverlässig wie binwalk-Signaturen.
md5Der MD5-Hash der Datei
sha1Der SHA1-Hash der Datei
sha256Der SHA256-Hash der Datei
addedDas Datum, an dem die Datei hinzugefügt wurde
r2_archArchitektur der Binärdatei
r2_baddrDie Basisadresse der Binärdatei
r2_binszDie Größe des Programmcodes
r2_bitsArchitektur-Bits - 8/16/32/64 usw.
r2_canaryOb Stack Canaries aktiviert sind
r2_classBinärklasse
r2_compiledDas Datum, an dem die Binärdatei kompiliert wurde
r2_dbg_fileDie Debug-Datei der Binärdatei
r2_intrpDer Interpreter, den die Binärdatei aufruft, wenn sie dynamisch gelinkt ist
r2_langDie Sprache des Quellcodes
r2_lsymsOb Debug-Symbole vorhanden sind
r2_machineDer Maschinentyp, normalerweise die CPU, für die die Binärdatei bestimmt ist
r2_osDas Betriebssystem, auf dem die Maschine laufen soll
r2_picOb positionsunabhängiger Code vorhanden ist
r2_relocsOb Relocation-Einträge vorhanden sind
r2_rpathDer Laufzeit-Suchpfad - falls zutreffend
r2_strippedOb die Binärdatei gestripped ist
r2_subsysDas Subsystem der Binärdatei
r2_formatDas Binärformat
r2_iorwOb ioctl-Aufrufe vorhanden sind
r2_typeDer Binärtyp, ob es sich um eine ausführbare Datei, ein Shared Object usw. handelt.
yaraEnthält eine Liste von Yara-Treffern
binwalkEnthält eine Liste von binwalk-Signaturen und deren Positionen in der Binärdatei
tagsAlle benutzerdefinierten Tags, die mit dem Flag -t übergeben wurden.
urlDie Ursprungs-URL, wenn die Datei remote heruntergeladen wurde
urlsAlle URLs, die aus der Binärdatei extrahiert wurden