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
BokuLoader — Ein Proof-of-Concept Cobalt Strike Reflective Loader, der darauf abzielt, Cobalt Strikes Evasion-Funktionen nachzubilden, zu integrieren und zu verbessern! | Kitploit
Tools/GitHubGitHub/boku7/bokuloader
Penetrationstest-FrameworksExploit-FrameworksShellcodeBinäranalyseRed TeamingPayload-Entwicklung
GitHubboku7/bokuloader

BokuLoader

Ein Proof-of-Concept Cobalt Strike Reflective Loader, der darauf abzielt, Cobalt Strikes Evasion-Funktionen nachzubilden, zu integrieren und zu verbessern!

Repository anzeigen
1.4k275vor 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

BokuLoader : Reflektiver Loader für Cobalt Strike

Ein Proof-of-Concept User-Defined Reflective Loader (UDRL), der darauf abzielt, die Evasion-Funktionen von Cobalt Strike nachzubilden, zu integrieren und zu verbessern!

Mitwirkende:

MitwirkenderTwitterBemerkenswerte Beiträge
Bobby Cooke@0xBokuProjekt ursprünglicher Autor und Betreuer
Santiago Pecin@s4ntiago_pWesentliche Verbesserungen des Reflective Loaders
Chris Spehn@ConsciousHackerAggressor-Scripting
Joshua Magri@passthehashbrwnIAT-Hooking
Dylan Tran@d_tranmanReflective Call-Stack-Spoofing
James Yeung@5cript1diotIndirekte Systemaufrufe

Überlegungen zur Verwendung des UDRL

Der integrierte Cobalt Strike-Reflective-Loader ist robust und unterstützt alle Malleable-PE-Evasion-Funktionen, die Cobalt Strike bietet. Der größte Nachteil bei der Verwendung eines benutzerdefinierten UDRL besteht darin, dass Malleable-PE-Evasion-Funktionen möglicherweise nicht out-of-the-box unterstützt werden.

Das Ziel des öffentlichen BokuLoader-Projekts ist es, Red Teams bei der Erstellung eines eigenen Cobalt-Strike-UDRL zu unterstützen. Das Projekt soll alle sinnvollen CS-Malleable-PE-Evasion-Funktionen unterstützen. Einige Evasion-Funktionen nutzen die CS-Integration, andere wurden komplett neu erstellt, und einige werden nicht unterstützt.

Bevor Sie dieses Projekt in irgendeiner Form verwenden, sollten Sie testen, ob die Evasion-Funktionen wie erwartet funktionieren. Zwischen dem C-Code und dem Aggressor-Skript können unterschiedliche Betriebssystemversionen, Compiler und Java zu unterschiedlichen Ergebnissen führen.

Evasion-Features

BokuLoader-spezifische Evasion-Features

  • Reflective Callstack-Spoofing mittels synthetischer Frames.
  • Benutzerdefinierter ASM/C-Reflective-Loader-Code
  • Indirekte NT-Syscalls mittels HellsGate- und HalosGate-Techniken
    • Alle Änderungen des Speicherschutzes für alle Allokationsoptionen werden über indirekte Syscalls an NtProtectVirtualMemory durchgeführt.
  • obfuscate "true" mit benutzerdefinierter UDRL-Aggressor-Skript-Implementierung.
  • NOHEADERCOPY
    • Der Loader kopiert keine Rohdaten der Beacon-DLL in die virtuelle Beacon-DLL. Die ersten 0x1000 Bytes sind Nullen.
  • XGetProcAddress zur Auflösung von Symbolen
    • Verwendet nicht Kernel32.GetProcAddress
  • xLoadLibrary zur Auflösung der Basisadresse von DLLs und zum Laden von DLLs
    • Für geladene DLLs wird die Basisadresse aus TEB->PEB->PEB_LDR_DATA->InMemoryOrderModuleList bezogen.
    • Verwendet nicht Kernel32.LoadLibraryA
  • Caesar-Chiffre zur Zeichenfolgenverschleierung
  • 100k UDRL-Größe
  • Die Namen der Import-DLLs und die Namen der Importeinträge werden in der virtuellen Beacon-DLL überschrieben.

Unterstützte Malleable-PE-Evasion-Features

Test

  • (22.02.23) Alle 4 Allokator-Methoden getestet mit threatexpress/malleable-c2/master/jquery-c2.4.7.profile

Projektursprünge

  • Basierend auf Stephen Fewers unglaublichem Reflective-Loader-Projekt:
    • https://github.com/stephenfewer/ReflectiveDLLInjection
  • Ursprünglich erstellt während der Arbeit an Renz0hs Reflective-DLL-Videos aus dem Sektor7 Malware Developer Intermediate (MDI) Course

Verwendung

  1. Kompiliere die BokuLoader-Objektdatei mit make
  2. Starte deinen Cobalt Strike Team Server
  3. Importiere innerhalb von Cobalt Strike das Aggressor-Skript BokuLoader.cna
  4. Generiere den x64-Beacon (Angriffe -> Pakete -> Windows Executable (S))
  5. Verwende die Skript-Konsole, um sicherzustellen, dass BokuLoader in den Beacon-Build implementiert wurde
  • Unterstützt keine x86-Option. Die x86-Binärdatei ist die ursprüngliche Reflective-Loader-Objektdatei.
  • Die Erzeugung von RAW-Beacons funktioniert sofort. Bei Verwendung des Artifact-Kits für den Beacon-Loader muss die Variable stagesize größer als der Standardwert sein.
    • Weitere Informationen findest du in der Cobalt Strike-Dokumentation zum benutzerdefinierten Reflective Loader

Erkennungshinweise

Hartcodierte Zeichenfolgen

  • BokuLoader ändert einige häufig erkannte Zeichenfolgen in neue hartcodierte Werte. Diese Zeichenfolgen können zur Signatur von BokuLoader verwendet werden:
Ursprünglicher Cobalt-Strike-StringBokuLoader-Cobalt-Strike-String
ReflectiveLoaderBokuLoader
Microsoft Base Cryptographic Provider v1.012367321236742382543232341241261363163151d
(admin)(tomin)
beaconbacons

Speicherzuweiser

DLL-Modul-Stomping

  • Kernel32.LoadLibraryExA wird aufgerufen, um die DLL von der Festplatte abzubilden.
  • Das 3. Argument für Kernel32.LoadLibraryExA ist DONT_RESOLVE_DLL_REFERENCES (0x00000001)
    • Das System ruft DllMain nicht auf
  • Die Adressen im LDR-PEB-Eintrag werden nicht aufgelöst, wie von MDSec hier beschrieben
  • Erkennbar durch Scannen des Prozessspeichers mit dem Tool pe-sieve

Heap-Zuweisung

  • Ausführbarer RX- oder RWX-Speicher wird im Heap vorhanden sein, wenn kein Sleepmask-Kit verwendet wird.

Mapped-Allocator

  • Kernel32.CreateFileMappingA & Kernel32.MapViewOfFile werden aufgerufen, um Speicher für die virtuelle Beacon-DLL zuzuweisen.

Sleepmask-Erkennung

  • Wenn ein Sleepmask-Kit verwendet wird, gibt es Erkennungsmethoden für diese unabhängige Speicherzuweisung, wie von MDSec hier beschrieben

Indirekte Syscalls

  • BokuLoader ruft die folgenden NT-Systemaufrufe auf, um den ausführbaren Beacon-Speicher einzurichten: NtAllocateVirtualMemory, NtProtectVirtualMemory
  • Diese werden indirekt aus dem ausführbaren BokuLoader-Speicher aufgerufen.
  • Das Setzen von Userland-Hooks in ntdll.dll wird diese Systemaufrufe nicht erkennen.
  • Es könnte möglich sein, Kernel-Callbacks mit einem Kernel-Treiber zu registrieren, um die oben genannten Systemaufrufe zu überwachen und ihre Verwendung zu erkennen.
  • Der BokuLoader selbst enthält die Assembly-Anweisungen mov eax, r11d; mov r11, r10; mov r10, rcx; jmp r11 in seinem ausführbaren Speicher.

Virtueller Beacon-DLL-Header

  • Die ersten 0x1000 Bytes der virtuellen Beacon-DLL sind Nullen.

Quellcode verfügbar

  • Der Quellcode von BokuLoader ist im Repository enthalten und kann zur Erstellung von Speichersignaturen verwendet werden.
  • Wenn du weitere Erkennungshinweise hast, kannst du gerne einen Pull-Request einreichen.

Danksagungen / Referenzen

Reflective Call Stack Spoofing

  • LoudSunRun: Call stack synthetic frame spoofer with indirect syscalls
  • SilentMoonwalk: PoC Implementation of a fully dynamic call stack spoofer
  • Vulcan Raven: PoC implementation for spoofing arbitrary call stacks when making syscalls
  • CallStackMasker: A PoC implementation for dynamically masking call stacks with timers
  • ThreadStackSpoofer: Thread Stack Spoofing PoC
  • Behind the Mask: Spoofing Call Stacks Dynamically with Timers

Reflective Loader

  • https://github.com/stephenfewer/ReflectiveDLLInjection
  • Schau dir diese Videos an, wenn du an Reflective DLL interessiert bist:
    • Dancing with Import Address Table (IAT) - Sektor 7 MDI Course
    • Walking through Export Address Table - Sektor 7 MDI Course
    • Reflective Injection Explained - Sektor 7 MDI Course
    • ReflectiveLoader source review - Sektor 7 MDI Course
  • TitanLdr
  • AceLdr
  • KaynLdr

HalosGate SysCaller

  • Reenz0h von @SEKTOR7net
    • Schau dir die fantastischen Kurse und Blogs von Reenz0h an!
    • Die besten Kurse zur Malware-Entwicklung, die ich besucht habe.
    • Entwickler der Halos-Gate-Technik. Seine Arbeit war ursprünglich die Motivation für diese Arbeit.
    • Sektor7 HalosGate Blog

HellsGate Syscaller

  • @smelly__vx & @am0nsec (Ersteller/Herausgeber der Hells-Gate-Technik)
    • Ohne sie hätte ich meine Implementierung von HellsGate nicht umsetzen können :)
    • Tolle Arbeit bei dieser Methode, ich habe es sehr genossen, sie selbst durchzuarbeiten. Danke!
    • https://github.com/am0nsec/HellsGate
    • Link zum Hell's Gate Paper: https://vxug.fakedoma.in/papers/VXUG/Exclusive/HellsGate.pdf

Aggressor Scripting

  • sinusoid @the_bit_diddler : returnIntegerFromArray

Cobalt Strike User Defined Reflective Loader

  • https://www.cobaltstrike.com/help-user-defined-reflective-loader

Great Resource for learning Intel ASM

  • Pentester Academy - SLAE64

ETW and AMSI Bypass

  • @anthemtotheego inline-ExecuteAssembly
  • @mariuszbit - für die großartige Idee, Bypässe im Reflective Loader zu implementieren!
  • @XPN Hiding Your .NET – ETW
  • ajpc500/BOFs
  • Offensive Security OSEP

Implementing ASM in C Code with GCC

  • https://outflank.nl/blog/2020/12/26/direct-syscalls-in-beacon-object-files/
  • https://www.cs.uaf.edu/2011/fall/cs301/lecture/10_12_asm_c.html
  • http://gcc.gnu.org/onlinedocs/gcc-4.0.2/gcc/Extended-Asm.html#Extended-Asm

Cobalt Strike C2 Profiles

  • Tylous's epic SourcePoint project
  • threatexpress/malleable-c2/jquery-c2.4.7.profile
Tool herunterladen
BefehlOption(en)Unterstützt
allocatorHeapAlloc, MapViewOfFile, VirtualAllocAlle unterstützt durch BokuLoader-Implementierung
module_x64string (DLL-Name)Unterstützt durch BokuLoader-Implementierung. Die gleichen DLL-Stomping-Anforderungen wie bei der CS-Implementierung gelten
obfuscatetrue/falseHTTP/S-Beacons werden durch BokuLoader-Implementierung unterstützt. SMB/TCP wird derzeit für obfuscate true nicht unterstützt. Details im Issue. Hilfe wird angenommen, wenn du es beheben kannst :)
entry_pointRVA als DezimalzahlUnterstützt durch BokuLoader-Implementierung
cleanuptrueUnterstützt durch CS-Integration
userwxtrue/falseUnterstützt durch BokuLoader-Implementierung
sleep_mask(true/false) oder (Sleepmask Kit+true)Unterstützt. Bei Verwendung des Standard-„sleepmask true“ (ohne Sleepmask Kit) setze „userwx true“. Bei Verwendung des Sleepmask Kits, das RX-Beacon.text-Speicher unterstützt (src47/Ekko), setze „sleepmask true“ && „userwx false“.
magic_mz_x644-Zeichen-StringUnterstützt durch CS-Integration
magic_pe2-Zeichen-StringUnterstützt durch CS-Integration
transform-x64 prependescaped hex stringBokuLoader.cna Aggressor-Skript-Modifikation
transform-x64 strrepstring stringBokuLoader.cna Aggressor-Skript-Modifikation
stomppetrue/falseNicht unterstützt. BokuLoader kopiert keine Beacon-DLL-Header. Die ersten 0x1000 Bytes der virtuellen Beacon-DLL sind 0x00
checksumnumberExperimentell. BokuLoader.cna Aggressor-Skript-Modifikation
compile_timedate-time stringExperimentell. BokuLoader.cna Aggressor-Skript-Modifikation
image_size_x64decimal valueNicht unterstützt
namestringExperimentell. BokuLoader.cna Aggressor-Skript-Modifikation
rich_headerescaped hex stringExperimentell. BokuLoader.cna Aggressor-Skript-Modifikation
stringwstringNicht unterstützt
stringstringNicht unterstützt