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
Chimera — Automatisiertes DLL-Sideloading-Tool mit EDR-Umgehungsfähigkeiten | Kitploit
Tools/GitHubGitHub/georgesotiriadis/chimera
Payload-GenerierungExploitationShellcodeRed Teaming
GitHubgeorgesotiriadis/chimera

Chimera

Automatisiertes DLL-Sideloading-Tool mit EDR-Umgehungsfähigkeiten

Repository anzeigen
50758vor 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

Chimera Unlea$ed 

Hintergrund des Tools


Während DLL-Sideloading für legitime Zwecke genutzt werden kann, etwa um benötigte Bibliotheken für ein Programm zu laden, kann es auch für böswillige Zwecke verwendet werden. Angreifer können DLL-Sideloading nutzen, um beliebigen Code auf einem Zielsystem auszuführen, oft indem sie Schwachstellen in legitimen Anwendungen ausnutzen, die zum Laden von DLLs verwendet werden.

Um den DLL-Sideloading-Prozess zu automatisieren und effektiver zu gestalten, wurde Chimera entwickelt – ein Tool, das Evasionstechniken umfasst, um EDR-/AV-Produkte zu umgehen. Dieses Tool kann Shellcode automatisch per XOR mit einem zufälligen Schlüssel verschlüsseln und Vorlage-Images erstellen, die in Visual Studio importiert werden können, um eine bösartige DLL zu erstellen.

Außerdem werden dynamische Syscalls von SysWhispers3 und eine modifizierte Assembly-Version verwendet, um die Muster zu umgehen, nach denen EDR sucht. Es werden zufällige NOP-Slides hinzugefügt und Register verschoben. Darüber hinaus wird auch Early Bird Injection verwendet, um den Shellcode in einen anderen Prozess zu injizieren, den der Benutzer angeben kann, mit Sandbox-Evasion-Mechanismen wie der Überprüfung der Festplatte und ob der Prozess debuggt wird. Schließlich wird im Loader ein Timing-Angriff platziert, der wartbare Timer nutzt, um die Ausführung des Shellcodes zu verzögern.

Dieses Tool wurde getestet und hat sich als effektiv erwiesen, um EDR-/AV-Produkte zu umgehen und beliebigen Code auf einem Zielsystem auszuführen.

Die aktualisierte Version von Chimera Unleashed hat bedeutende Fortschritte bei der Umgehung sowohl der statischen als auch der dynamischen Analyse gezeigt, insbesondere im Zusammenhang mit Microsoft 365s Endpoint Detection and Response (EDR)-System. Die Sideloading-Techniken des Tools entgingen selbst bei bekannten Binärdateien wie OneDrive erfolgreich der Erkennung. Es ist jedoch bemerkenswert, dass der vom Tool verwendete Early Bird Injection-Prozess vom EDR-System erkannt wurde, während der Sideloading-Aspekt unentdeckt blieb. Dies zeigt einen Bereich für weitere Verfeinerungen zur Verbesserung der gesamten Tarnfähigkeiten des Tools.

Verwendung des Tools


Wichtige Aktualisierungen und Funktionen:

  • Umstrukturierte Gliederung: Das gesamte Programm wurde für eine verbesserte Entwicklungsfreundlichkeit und zukünftige Wartbarkeit neu strukturiert.
  • Integration polymorphen Codes: Aufnahme polymorphen Codes, der die Evasionsfähigkeiten erheblich verbessert und das Tool widerstandsfähiger gegen statische Analysen macht.
  • SysWhispers 3 Integration: Wechsel von SysWhispers 2 zu einer modifizierten Version von SysWhispers 3. Diese Aktualisierung verbessert die Fähigkeit des Tools, von EDR-Systemen verwendete Mustererkennungsmechanismen zu umgehen, unter Verwendung dynamischer Syscalls und modifizierter Assembly-Techniken.
  • AES-Verschlüsselung: Implementierung der AES-Verschlüsselung zur Sicherung des Shellcodes, was eine zusätzliche Sicherheits- und Verschleierungsschicht hinzufügt.
  • Early Bird Injection: Das Tool verwendet Early Bird Injection-Techniken, die eine heimlichere Codeausführung innerhalb von Zielprozessen ermöglichen.
  • Module Stomping: Wird in Zukunft hinzugefügt; Sie können auch Ihre eigene Codeinjektionstechnik in das Tool implementieren.

Chimera ist in Python 3 geschrieben und es müssen keine zusätzlichen Abhängigkeiten installiert werden.

Chimera unterstützt derzeit zwei DLL-Optionen: entweder Microsoft Teams oder Microsoft OneDrive.

Jemand kann eine userenv.dll erstellen, eine fehlende DLL von Microsoft Teams, und sie in den spezifischen Ordner einfügen:

⁠%USERPROFILE%/Appdata/local/Microsoft/Teams/current

Für Microsoft OneDrive verwendet das Skript eine version.dll, die üblich ist, da sie in der Binärdatei (z. B. onedriveupdater.exe) fehlt.

Befehlszeilenargumente

Chimera Unleashed verwendet argparser zum Parsen der Befehlszeilenargumente. Die folgenden Argumente sind verfügbar:

  • --raw oder -r: Pfad zur Datei mit dem Shellcode. Erforderlich.
  • --path oder -p: Ausgabepfad für die C-Vorlagendatei. Erforderlich.
  • --pname oder -n: Name des Prozesses, in den der Shellcode injiziert werden soll. Erforderlich.
  • --dexports oder -d: Gibt an, welche DLL-Exports verwendet werden sollen (entweder 'teams' oder 'onedrive'). Erforderlich.
  • --enc oder -e: Bevorzugte Verschlüsselung angeben (XOR / AES). Erforderlich.
  • --inj oder -i: Bevorzugte Injektionstechnik angeben (EB / MS). Erforderlich.
  • --rshell oder -s: [Optional] Ersetzen Sie den Namen der Shellcode-Variablen durch einen eindeutigen Namen. Standard ist 'encoded_shell'.

Beispielverwendung: python Chimera.py --raw <path_to_shellcode> --path <output_path> --pname <process_name> --dexports <exports_file> --enc AES --inj EB --rshell my_shellcode

Nützlicher Hinweis

Sobald der Kompilierungsprozess abgeschlossen ist, wird eine DLL generiert, die entweder "version.dll" für OneDrive oder "userenv.dll" für Microsoft Teams enthalten sollte. Als nächstes ist es notwendig, die ursprünglichen DLLs umzubenennen.

Zum Beispiel sollte die ursprüngliche "userenv.dll" in "tmpB0F7.dll" umbenannt werden, während die ursprüngliche "version.dll" in "tmp44BC.dll" umbenannt werden sollte. Zusätzlich haben Sie die Möglichkeit, den Namen der Proxy-DLL nach Wunsch zu ändern, indem Sie den Quellcode der DLL-Exports ändern, anstatt die Standard-Skriptnamen zu verwenden.

Die Datei code.h enthält den Shellcode.

Visual Studio Projekt-Setup


Schritt 1: Erstellen eines neuen Visual Studio-Projekts mit DLL-Vorlage

  1. Starten Sie Visual Studio und klicken Sie auf "Neues Projekt erstellen" oder gehen Sie zu "Datei" -> "Neu" -> "Projekt".
  2. Wählen Sie im Fenster der Projektvorlagen auf der linken Seite "Visual C++" aus.
  3. Wählen Sie "Leeres Projekt" aus den verfügbaren Vorlagen.
  4. Geben Sie einen geeigneten Namen und Speicherort für das Projekt an und klicken Sie dann auf "OK".
  5. Navigieren Sie im Fenster der Projekteigenschaften zu "Konfigurationseigenschaften" -> "Allgemein" und setzen Sie den "Konfigurationstyp" auf "Dynamic Library (.dll)".
  6. Konfigurieren Sie andere Projekteinstellungen nach Wunsch und speichern Sie das Projekt.

Schritt 2: Importieren von Dateien in das Visual Studio-Projekt

  1. Lokalisieren Sie den Ordner "chimera_automation", der die erforderlichen Images enthält.
  2. Öffnen Sie den Ordner und identifizieren Sie die folgenden Dateien: main.c, syscalls.c, syscallsstubs.std.x64.asm.
  3. Klicken Sie in Visual Studio im "Projektmappen-Explorer" mit der rechten Maustaste auf das Projekt und wählen Sie "Hinzufügen" -> "Vorhandenes Element".
  4. Navigieren Sie zum Speicherort jeder Datei (main.c, syscalls.c, syscallsstubs.std.x64.asm) und wählen Sie sie nacheinander aus. Klicken Sie auf "Hinzufügen", um sie in das Projekt zu importieren.
  5. Erstellen Sie einen Ordner mit dem Namen "header_files" im Projektverzeichnis, falls er noch nicht existiert.
  6. Lokalisieren Sie die Header-Datei "syscalls_mem.h" im Ordner "header_files" des Verzeichnisses "chimera_automation".
  7. Klicken Sie im "Projektmappen-Explorer" von Visual Studio mit der rechten Maustaste auf den Ordner "header_files" und wählen Sie "Hinzufügen" -> "Vorhandenes Element".
  8. Navigieren Sie zum Speicherort von "syscalls_mem.h" und wählen Sie sie aus. Klicken Sie auf "Hinzufügen", um sie in das Projekt zu importieren.

Schritt 3: Build-Anpassung

  1. Navigieren Sie im Fenster der Projekteigenschaften zu "Konfigurationseigenschaften" -> "Build-Anpassungen".
  2. Klicken Sie auf die Schaltfläche "Build-Anpassungen", um den Dialog für Build-Anpassungen zu öffnen.

Schritt 4: MASM aktivieren

  1. Aktivieren Sie im Dialog für Build-Anpassungen das Kontrollkästchen neben "masm", um es zu aktivieren.
  2. Klicken Sie auf "OK", um den Dialog für Build-Anpassungen zu schließen.

Schritt 5:

  1. Klicken Sie mit der rechten Maustaste auf die Assembly-Datei -> Eigenschaften und wählen Sie Folgendes aus:
  2. Von Build ausschließen -> Nein
  3. Inhalt -> Ja
  4. Elementtyp -> Microsoft Macro Assembler

Abschließendes Projekt-Setup

Compiler-Optimierungen


Schritt 1: Optimierung ändern

  1. Wählen Sie in Visual Studio Projekt -> Eigenschaften
  2. C/C++ -> Optimierung und ändern Sie Folgendes:

Schritt 2: Debug-Informationen entfernen

  1. Wählen Sie in Visual Studio Projekt -> Eigenschaften
  2. Linker -> Debugging -> Debug-Informationen generieren -> Nein

Mitwirkende

Ursprünglicher Mitwirkender:

  • George Sotiriadis
    • Erstveröffentlichung und Konzept.
    • Code-Refactoring in der aktualisierten Version.
    • Modifiziertes SysWhispers3 in der aktualisierten Version.

Mitwirkender:

  • Efstratios Chatzoglou
    • Hinzufügung von polymorphischem Code, Obfuskator und AES-Verschlüsselung in der aktualisierten Version.
    • Unterstützung beim Code-Refactoring und der weiteren Entwicklung.

Haftungsausschluss:


Soweit gesetzlich zulässig, haften ich (George Sotiriadis) und/oder verbundene Unternehmen, die Inhalte zu meinem Repository beigetragen haben, nicht für indirekte, zufällige, besondere, Folge- oder Strafschäden oder für entgangene Gewinne oder Einnahmen, die direkt oder indirekt entstanden sind, oder für Datenverluste, Nutzungsausfälle, Verlust des Goodwills oder andere immaterielle Verluste, die sich ergeben aus (i) Ihrem Zugriff auf diese Ressource und/oder der Unfähigkeit, auf diese Ressource zuzugreifen; (ii) jeglichem Verhalten oder Inhalt Dritter, auf die diese Ressource verweist, einschließlich, aber nicht beschränkt auf beleidigendes, anstößiges oder rechtswidriges Verhalten anderer Benutzer oder Dritter; (iii) jeglichem Inhalt, der von dieser Ressource bezogen wurde.

Referenzen


https://www.ired.team/offensive-security/code-injection-process-injection/early-bird-apc-queue-code-injection

https://evasions.checkpoint.com/

https://github.com/Flangvik/SharpDllProxy

https://github.com/jthuraisamy/SysWhispers2

https://systemweakness.com/on-disk-detection-bypass-avs-edr-s-using-syscalls-with-legacy-instruction-series-of-instructions-5c1f31d1af7d

https://github.com/Mr-Un1k0d3r

Tool herunterladen
  • --rxor oder -x: [Optional] Ersetzen Sie den Namen der XOR-Verschlüsselung durch einen eindeutigen Namen. Standard ist 'do_xor'.
  • --rkey oder -k: [Optional] Ersetzen Sie den Namen der Schlüsselvariablen durch einen eindeutigen Namen. Standard ist 'key'.
  • --rsleep oder -z: [Optional] Gesamte Schlafzeit während der Ausführung (Sekunden). Standard ist 4000.
  • --size oder -f: [Optional] Dateigröße der Junk-Daten in KB. Null (0) deaktiviert, Eins (1) ist zufällige Dateigröße. Standard ist 0.