Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
frostbyte — Kombiniert AppDomain Manager Injection mit Shellcode-Einbettung in signierte Binärdateien, um die EDR/AV-Erkennung für Red-Team-Payloads zu umgehen. | Kitploit
Tools/GitHubGitHub/pwn1sher/frostbyte
ShellcodeShellcode-Generierung
GitHubpwn1sher/frostbyte

frostbyte

Kombiniert AppDomain Manager Injection mit Shellcode-Einbettung in signierte Binärdateien, um die EDR/AV-Erkennung für Red-Team-Payloads zu umgehen.

Repository anzeigen
3834619vor 4 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

FrostByte

Vorwort:

In den letzten Tagen habe ich mit der AppDomain-Manager-Injection Technik experimentiert und hatte in meinen früheren Red-Team-Einsätzen gegen bestimmte EDRs einigen Erfolg damit. Obwohl dies ein sehr guter initialer Zugriffsvektor ist, wollte ich einen POC veröffentlichen, der dabei hilft, Ihren Shellcode woanders zu verstecken. Keine Shellcode-eingebetteten DLL-Dateien mehr!

Das Problem!

Obwohl es sich um eine hervorragende Technik handelt, wenn sie eigenständig verwendet wird, ist das Problem bei Kombination mit einer Auslieferungstechnik wie dem Senden einer C# ClickOnce in einer ISO/ZIP/VHD/VHDX-Datei, dass 1 von 10 Mal die DLL für die AppDomain von den AI/ML-Heuristiken des AV/EDR erkannt wurde. Dies liegt daran, dass die DLL-Datei vor der Initialisierung der AppDomain auf die Festplatte gelegt werden muss. Abgesehen von den Remote-DLL-Loads (UNC-Pfade in .config) würde die DLL für die AppDomain den Shellcode enthalten, und ich hatte stark das Gefühl, dass dies der Grund für eine wahrscheinliche statische Erkennung ist, da der restliche Code, bei dem es sich um WINAPI-Aufrufe handelt, dynamisch aufgelöst und recht gut verschleiert werden kann.

Ich wollte diese Technik verbessern, um zu minimieren, was die DLL ursprünglich enthält. Ich begann damit, verschlüsselten Shellcode in einer separaten Datei auf der Festplatte zusammen mit der Injector-DLL abzulegen, stieß dann aber auf diesen großartigen Blog von Checkpoint über Zloaders Kampagne

TLDR-Version: Wir können beliebige Daten in einige Felder innerhalb der PE einbetten, ohne die Signatur der Datei zu beschädigen. Unsere Daten werden also eingebettet und die EXE bleibt weiterhin digital signiert.

Weitere Informationen dazu - https://www.blackhat.com/docs/us-16/materials/us-16-Nipravsky-Certificate-Bypass-Hiding-And-Executing-Malware-From-A-Digitally-Signed-Executable-wp.pdf

Die Idee ist also, einen verschlüsselten Shellcode-Stub in eine bekannte signierte ausführbare Datei einzubetten und dennoch dafür zu sorgen, dass sie signiert bleibt, wie es der Zloader-Malware gelang. Dadurch enthält die AppDomain-Manager-DLL den Shellcode nicht mehr selbst, sondern hat nur noch die Logik, den Shellcode aus der PE-Binärdatei zu parsen, die ihn lädt, zu entschlüsseln und als separaten Thread auszuführen. Dies könnte die statische Erkennungsrate für die DLL senken, während Ihr Shellcode schön in einer signierten Binärdatei platziert ist.

Ich versuchte dies, indem ich manuell an den ZLoader-Beispielen manipuliere, die ich von VirusTotal hatte, aber später fand ich ein Projekt, das all diese Techniken bereits recht gut implementiert hatte – Sigflip. In diesem POC nutzte ich Sigflips Lader-Code, um die AppDomain-DLL zu erstellen, und den SigFlip-Injektor, um den verschlüsselten Shellcode in unsere C#-EXE einzubetten.

Vorteile:

Große Shellcode-Blobs wie Cobalt Strikes Stageless-Shellcode befinden sich nicht mehr in einer unsignierten DLL auf der Festplatte, unabhängig von den verwendeten Verschleierungs-/Kodierungstechniken. Die DLL ist sauberer, kleiner und unauffälliger mit minimalem Code, wodurch die Erkennungswahrscheinlichkeit verringert wird.

Funktionsweise

Diagram

Schritte zum Erstellen einer signierten Shellcode-Ausführbaren Datei

  • Wählen Sie eine beliebige x64 signierte C#-Binärdatei aus, in der Ihr Cobalt Strike Beacon residieren und ausgeführt werden soll: Z.B.: CasPol.exe usw.
  • Generieren Sie Ihren Cobalt Strike Stageless Shellcode - x64-stageless.bin
  • Legen Sie beide in einen Ordner, in dem sich auch SigFlip befindet, und führen Sie den folgenden Befehl aus:
    SigFlip.exe -i "Z:\ZLoader\CasPol.exe" "Z:\ZLoader\x64-stageless.bin" "Z:\ZLoader\update.exe" "S3cretK3y"
  • Dank SigFlip haben Sie nun eine (Windows signierte?) Binärdatei namens update.exe, die eine digital signierte PE mit eingebettetem verschlüsselten Shellcode ist.

Schritte zum Erstellen der AppDomain-Loader-DLL

  • Nehmen Sie den C#-Vorlagencode von hier
  • Ersetzen Sie Ihren Verschlüsselungs-Geheimschlüssel durch den, den Sie beim Ausführen von SigFlip gewählt haben, in Zeile 163 (möglicherweise müssen Sie ein paar Bytes anpassen, um zu bestätigen, dass Ihr CS-Shellcode ordnungsgemäß entschlüsselt wird)
  • Ersetzen Sie den Binärpfad in Zeile 146
  • Ändern Sie die Logdateipfade in den Zeilen 158,165
  • Kompilieren Sie den Code als DLL mit dem folgenden Befehl - csc /target:library /out:test.dll test.cs
  • Legen Sie die kompilierte DLL und die Datei update.exe.config in denselben Ordner, in dem sich Ihre signierte Shellcode-EXE befindet.
  • Führen Sie update.exe aus.

Fazit:

Dieser POC ist nur eine Idee, die ich hatte, um zwei völlig unterschiedliche defensiv-umgehende Techniken zusammenzubringen, die mir und anderen Red Teamern helfen, bessere anfängliche Ausführungspayloads für ihre Operationen zu erstellen. Dieses Projekt verwendet AppDomain-Manager-Injection als Beispiel, aber diese Idee ist auch auf andere Injection-Techniken anwendbar, wie DLL-Seitenladung, DLL-Hijacking usw.

Danksagungen:

Vollständige Credits an med0x2e, dieser POC basiert auf seinem SigFlip-Projekt

Referenzen:

  • https://research.checkpoint.com/2022/can-you-trust-a-files-digital-signature-new-zloader-campaign-exploits-microsofts-signature-verification-putting-users-at-risk/
  • https://www.blackhat.com/docs/us-16/materials/us-16-Nipravsky-Certificate-Bypass-Hiding-And-Executing-Malware-From-A-Digitally-Signed-Executable-wp.pdf
  • https://pentestlaboratories.com/2020/05/26/appdomainmanager-injection-and-detection/
  • https://github.com/med0x2e/SigFlip
Tool herunterladen