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/xforcered/bokuloader
Penetrationstest-FrameworksIDS/IPS-UmgehungPost-ExploitationCommand and ControlRed TeamingPayload-EntwicklungAdversarial-Angriff
GitHubxforcered/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
335251vor 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 : Cobalt Strike Reflective Loader

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:

MitwirkendeTwitterBemerkenswerte Beiträge
Bobby Cooke@0xBokuProjekt-Autor und -Betreuer
Santiago Pecin@s4ntiago_pWesentliche Verbesserungen am Reflective Loader
Chris Spehn@ConsciousHackerAggressor-Scripting
Joshua Magri@passthehashbrwnIAT-Hooking
Dylan Tran@d_tranmanSpoofing des Reflective Call Stacks
James Yeung@5cript1diotIndirekte Systemaufrufe

Hinweise zur Verwendung von UDRL

Der integrierte Reflective Loader von Cobalt Strike ist robust und unterstützt alle Malleable-PE-Evasion-Funktionen, die Cobalt Strike zu bieten hat. Der größte Nachteil bei der Verwendung eines eigenen UDRL ist, dass Malleable-PE-Evasion-Funktionen möglicherweise nicht ohne Weiteres unterstützt werden.

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

Bevor du dieses Projekt in irgendeiner Form verwendest, solltest du gründlich testen, ob die Evasion-Funktionen wie vorgesehen funktionieren. Zwischen dem C-Code und dem Aggressor-Skript kann die Kompilierung mit verschiedenen Versionen von Betriebssystemen, Compilern und Java unterschiedliche Ergebnisse liefern.

Evasion-Funktionen

BokuLoader-spezifische Evasion-Funktionen

  • Spoofing des Reflective Call Stacks mittels synthetischer Frames.
  • Eigener ASM/C-Reflective-Loader-Code
  • Indirekte NT-Syscalls mittels HellsGate- & HalosGate-Techniken
    • Alle Änderungen des Speicherschutzes für alle Allokationsoptionen werden über einen indirekten Syscall an NtProtectVirtualMemory durchgeführt
  • obfuscate "true" mit eigener UDRL-Aggressor-Skript-Implementierung.
  • NOHEADERCOPY
    • Der Loader kopiert die Header der rohen Beacon-DLL nicht in die virtuelle Beacon-DLL. Die ersten 0x1000 Bytes sind Nullen.
  • XGetProcAddress zum Auflösen von Symbolen
    • Verwendet nicht Kernel32.GetProcAddress
  • xLoadLibrary zum Auflösen der DLL-Basisadresse und zum Laden von DLLs
    • Ermittelt für geladene DLLs die DLL-Basisadresse über TEB->PEB->PEB_LDR_DATA->InMemoryOrderModuleList
    • Verwendet nicht Kernel32.LoadLibraryA
  • Caesar-Chiffre zur String-Verschleierung
  • 100k UDRL-Größe
  • Import-DLL-Namen und Namen der Import-Einstiegspunkte werden in der virtuellen Beacon-DLL überschrieben.

Unterstützte Malleable-PE-Evasion-Funktionen

Test

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

Projektursprünge

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

Verwendung

  1. Kompiliere die BokuLoader-Objektdatei mit make
  2. Starte deinen Cobalt-Strike-Teamserver
  3. Importiere in Cobalt Strike das Aggressor-Skript BokuLoader.cna
  4. Generiere den x64-Beacon (Attacks -> Packages -> Windows Executable (S))
  5. Verwende die Script Console, um sicherzustellen, dass BokuLoader in den Beacon-Build implementiert wurde
  • Die x86-Option wird nicht unterstützt. Die x86-Binärdatei ist die ursprüngliche Reflective-Loader-Objektdatei.
  • Die Generierung 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 Dokumentation zum Cobalt Strike User Defined Reflective Loader

Erkennungshinweise

Fest codierte Strings

  • BokuLoader ändert einige häufig erkannte Strings in neue fest codierte Werte. Diese Strings 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

Speicher-Allokatoren

DLL-Modul-Stomping

  • Kernel32.LoadLibraryExA wird aufgerufen, um die DLL von der Festplatte zu mappen
  • Das dritte Argument von 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-Allokation

  • Wenn das Sleepmask-Kit nicht verwendet wird, existiert ausführbarer RX- oder RWX-Speicher im Heap.

Gemappter Allokator

  • Kernel32.CreateFileMappingA und Kernel32.MapViewOfFile werden aufgerufen, um Speicher für die virtuelle Beacon-DLL zu allozieren.

Sleepmask-Erkennung

  • Wenn das Sleepmask-Kit verwendet wird, existieren Erkennungsmethoden für diese unabhängige Speicherallokation, wie von MDSec hier beschrieben

Indirekte Syscalls

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

Header der virtuellen Beacon-DLL

  • 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

Spoofing des Reflective Call Stacks

  • LoudSunRun: Spoofer für synthetische Frames des Call Stacks mit indirekten Syscalls
  • SilentMoonwalk: PoC-Implementierung eines vollständig dynamischen Call-Stack-Spoofers
  • Vulcan Raven: PoC-Implementierung zum Spoofing beliebiger Call Stacks bei Syscalls
  • CallStackMasker: Eine PoC-Implementierung zum dynamischen Maskieren von Call Stacks mit Timern
  • 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 dich für Reflective DLL interessierst:
    • Dancing with Import Address Table (IAT) - Sektor 7 MDI Kurs
    • Walking through Export Address Table - Sektor 7 MDI Kurs
    • Reflective Injection Explained - Sektor 7 MDI Kurs
    • ReflectiveLoader source review - Sektor 7 MDI Kurs
  • TitanLdr
  • AceLdr
  • KaynLdr

HalosGate-SysCaller

  • Reenz0h von @SEKTOR7net
    • Schau dir Reenz0hs großartige Kurse und Blogs an!
    • Die besten Kurse zur Malware-Entwicklung, die ich belegt habe.
    • Erfinder der Halos-Gate-Technik. Seine Arbeit war ursprünglich die Motivation für dieses Projekt.
    • Sektor7 HalosGate Blog

HellsGate-Syscaller

  • @smelly__vx & @am0nsec ( Erfinder/Herausgeber der Hells-Gate-Technik )
    • Ich hätte meine Implementierung von HellsGate ohne sie nicht erstellen können :)
    • Großartige Arbeit an dieser Methode, ich habe es wirklich genossen, mich selbst damit zu beschäftigen. 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

Großartige Ressource zum Lernen von Intel-ASM

  • Pentester Academy - SLAE64

ETW- und AMSI-Bypass

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

Implementierung von ASM in C-Code mit 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-Profile

  • Tylous' episches SourcePoint-Projekt
  • threatexpress/malleable-c2/jquery-c2.4.7.profile
Tool herunterladen
BefehlOption(en)Unterstützt
allocatorHeapAlloc, MapViewOfFile, VirtualAllocAlle werden über die BokuLoader-Implementierung unterstützt
module_x64string (DLL-Name)Wird über die BokuLoader-Implementierung unterstützt. Es gelten dieselben DLL-Stomping-Anforderungen wie bei der CS-Implementierung
obfuscatetrue/falseHTTP/S-Beacons werden über die 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 DezimalzahlWird über die BokuLoader-Implementierung unterstützt
cleanuptrueWird über die CS-Integration unterstützt
userwxtrue/falseWird über die BokuLoader-Implementierung unterstützt
sleep_mask(true/false) oder (Sleepmask-Kit+true)Unterstützt. Wenn das Standard-"sleepmask true" (ohne Sleepmask-Kit) verwendet wird, setze "userwx true". Wenn ein Sleepmask-Kit verwendet wird, das RX-beacon.text-Speicher unterstützt (src47/Ekko), setze "sleepmask true" && "userwx false".
magic_mz_x644-Zeichen-StringWird über die CS-Integration unterstützt
magic_pe2-Zeichen-StringWird über die CS-Integration unterstützt
transform-x64 prependescaped Hex-StringBokuLoader.cna-Aggressor-Skript-Modifikation
transform-x64 strrepstring stringBokuLoader.cna-Aggressor-Skript-Modifikation
stomppetrue/falseNicht unterstützt. BokuLoader kopiert die Beacon-DLL-Header nicht. Die ersten 0x1000 Bytes der virtuellen Beacon-DLL sind 0x00
checksumnumberExperimentell. BokuLoader.cna-Aggressor-Skript-Modifikation
compile_timeDatums-/Zeit-StringExperimentell. BokuLoader.cna-Aggressor-Skript-Modifikation
image_size_x64DezimalwertNicht unterstützt
namestringExperimentell. BokuLoader.cna-Aggressor-Skript-Modifikation
rich_headerescaped Hex-StringExperimentell. BokuLoader.cna-Aggressor-Skript-Modifikation
stringwstringNicht unterstützt
stringstringNicht unterstützt