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
Shinigami — A dynamic unpacking tool | Kitploit
Tools/GitHubGitHub/buzzer-re/shinigami
Dynamic Analysis (Sandboxing)Reverse EngineeringShellcodeMalware AnalysisBinary Analysis
GitHubbuzzer-re/shinigami

Shinigami

A dynamic unpacking tool

Repository anzeigen
15212vor 2 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

Shinigami

Build Release

Bildbeschreibung

Shinigami ist ein experimentelles Tool, das dazu entwickelt wurde, Malware-Implantate zu erkennen und zu entpacken, die per Process Hollowing oder generische Packerroutinen injiziert werden.

Wie das funktioniert

Das Tool funktioniert, indem es NT-Funktionen im Zusammenhang mit Process Hollowing hookt und neu ausführbare Speicherseiten mit dem Page-Guard-Bit markiert. Diese Technik ermöglicht es Shinigami, indirekte Kontrollflussänderungen zu erkennen, die typischerweise durch Shellcode oder entpackten Code verursacht werden und oft auf Malware hindeuten. Shinigami erstellt die Zielausführungsdatei in einem angehaltenen Zustand und injiziert eine DLL-Bibliothek namens „Ichigo". Diese Bibliothek hookt automatisch jede notwendige Funktion, um das Implantat zu erkennen und zu extrahieren. Sobald das Artefakt vollständig extrahiert wurde, beendet das Tool den Prozess.

Die Effektivität von Shinigami kann je nach der konkret angezielten Malware variieren. Es ist jedoch eine wertvolle Ergänzung für jedes Toolkit zur Malware-Analyse und kann sich als nützlich erweisen, um Malware zu erkennen und zu analysieren, die Process Hollowing oder generische Packerroutinen verwendet.

Wichtig: Dies ist ein dynamisches Entpackungstool und sollte nicht auf Ihrem persönlichen Rechner oder in einem statischen Analyselabor ausgeführt werden

Aktuelle Entpackungsmethoden

Process Hollowing

Die Kernmethode von Shinigami zum Extrahieren von Implantaten, die per Process Hollowing injiziert wurden, besteht darin, zwei NT-Funktionen zu hooken: NtResumeThread und NtWriteVirtualMemory. So funktioniert es:

  • NtResumeThread Hook

    • Shinigami durchsucht den gesamten zuvor über NtAllocateVirtualMemory allokierten Speicher, um zu prüfen, ob er die DOS-Header-Signatur enthält. Wenn sie gefunden wird, extrahiert es die entfernte PE-Datei, patcht sie, sodass die Sektionen ausgerichtet sind, und speichert sie im Format filename_dumped.bin auf der Festplatte.
  • NtWriteVirtualMemory Hook

    • Shinigami erkennt durch das Hooking von NtWriteVirtualMemory, ob das ausführbare Programm versucht, eine PE-Datei in den entfernten Prozess zu schreiben. Wenn eine PE-Datei gefunden wird, wird sie mithilfe des Buffer-Zeigers extrahiert und als filename_before_written.bin auf der Festplatte gespeichert. Diese Option wird nur verwendet, wenn das Flag --stop-at-write übergeben wird.

Generischer Unpacker

Das generische Unpacker-Modul von Shinigami markiert neu allokierte Speicherbereiche mit dem PAGE_GUARD-Bit. Es setzt dieses Bit auch, wenn bei einem vorhandenen Speicherbereich die Schutzrechte durch etwas Ausführbares ersetzt werden. Mithilfe von Guard-Pages kann es nachverfolgen, welcher Speicherbereich für die Allokation von Shellcode oder PE-Images verwendet werden soll.

Für jeden erkannten Shellcode speichert Shinigami den rohen Shellcode selbst auf der Festplatte. Es scannt den Speicherbereich außerdem nach PE-Dateien und speichert diese ebenfalls. Shinigami behandelt jede unterschiedliche Shellcode-Ausführung als neue Stufe, sodass Sie am Ende in Ihrem Arbeitsverzeichnis Dateien mit dem Namen filename_shellcode_STAGENUM.bin or .exe haben.

Verwendung

Das Tool bietet einige Optionen:

root@kitploit:~
Usage: Shinigami [--help] [--version] [--output VAR] [--stop-at-write] [--verbose] [--only-executables] [--exported VAR] program_name

Positional arguments:
  program_name                  Name of the program to execute

Optional arguments:
  -h, --help                    shows help message and exits
  -v, --version                 prints version information and exits
  -o, --output                  Directory to dump artefacts
  --stop-at-write               Unhollow: Stop the execution when the PE file is being to be written
  --verbose                     Display a verbose output
  -p, --only-executables        Only extract PE artefacts
  -e, --exported                Exported Function: Choose a exported function to execute if the target is a DLL (rundll will be used)

Einige wichtige Optionen sind:

-o, --output: Gibt das Verzeichnis an, in das die extrahierten Artefakte gespeichert werden sollen. Standardmäßig werden extrahierte Artefakte in einem Verzeichnis namens output im aktuellen Arbeitsverzeichnis gespeichert. Sie können ein anderes Verzeichnis angeben, indem Sie dessen Pfad als Argument übergeben.

--stop-at-write: Dieses Argument wird beim Entpacken eines ausgehöhlten Prozesses verwendet. Wenn Shinigami erkennt, dass die PE-Datei in den ausgehöhlten Prozess geschrieben wird, stoppt es die Ausführung und speichert die extrahierte PE-Datei. Diese Option kann nützlich sein, wenn Sie vermeiden möchten, den gesamten ausgehöhlten Prozess auszuführen, und nur den entpackten Code extrahieren möchten.

--verbose: Zeigt eine ausführliche Ausgabe an. Dies kann beim Debuggen oder zum Verständnis der internen Arbeitsweise von Shinigami nützlich sein.

Beispielverwendung:

Unhollow

Test gegen Dridex

Nach Abschluss der Extraktion wird der Prozess beendet und Sie haben (hoffentlich) die extrahierte PE-Datei:

Abgelegtes Implantat

Das erkannte Implantat wird gemäß dem Format abgelegt, das im Abschnitt Erkennungsmethoden beschrieben ist.

Entpacken

Entpacken eines zufälligen Loaders, beschrieben hier

Im obigen Beispiel hat Shinigami automatisch das Verhalten eines generischen Loaders erkannt und alle darin ausgeführten Shellcodes und Images extrahiert, ohne dass spezielle Schalter erforderlich waren, um die Entpackungsroutine zu aktivieren oder zu deaktivieren. Dies war möglich, weil Shinigami einige Funktionen mit dem Unhollow-Modul gemeinsam nutzt und dabei gemeinsame Hooks verwendet, die von der Bibliothek Gancho bereitgestellt werden.

Emotet

Entpacken der Emotet-DLL

Shinigami unterstützt außerdem DLLs und kann injizierte Binärdateien mithilfe abgetrennter DOS-Header rekonstruieren. Bemerkenswerterweise nutzen Malware-Beispiele wie Emotet diese Technik, um In-Memory-PE-Scanner zu umgehen. Shinigami erkennt solche fehlenden Teile (DOS-Header) und verwendet Heuristiken, um sie zu rekonstruieren.

Installation

Holen Sie sich Ihre bevorzugte Variante auf der Release-Seite.

Erstellen und Hacken

Es wäre großartig, wenn Sie diesem Projekt helfen. Wenn Sie möchten, finden Sie hier die Abhängigkeiten und Schritte.

  • Installieren Sie Visual Studio >= 2019 mit der C++-Workload.
  • Installieren Sie Zydis, einen schnellen und leichtgewichtigen x86/x86-64-Disassembler. Ich empfehle die vcpkg-Methode.
    • Zydis wird verwendet, um sicherzustellen, dass das API-Hooking präziser ist und beim Kopieren kein Opcode verloren geht.
  • Öffnen Sie die Projektmappendatei Shinigami.sln in Visual Studio und erstellen/entwickeln Sie das Projekt.

Bitte eröffnen Sie ein Issue oder einen Pull-Request für alle Änderungen, die Sie vornehmen möchten.

Fazit

Dieses coole Maskottchen-Bild wurde von Bleach inspiriert und von Dall-E erzeugt.

Tool herunterladen