SPAWN - Cobalt Strike BOF
Cobalt Strike BOF, das einen Opferprozess erzeugt, Shellcode injiziert und den Payload ausführt. Entwickelt, um EDR/UserLand-Hooks zu umgehen, indem es den Opferprozess mit Arbitrary Code Guard (ACG), BlockDll und PPID-Spoofing startet.
- Aufgrund von ACG wird kein Shellcode unterstützt, der von diesen Funktionen abhängig ist:
- Umschalten der Speicherberechtigungen zwischen RW/RX.
- RWX-Speicher
- Um Shellcode in einen erzeugten Prozess zu injizieren, der von den oben genannten Funktionen abhängig ist, siehe bitte das Hollow BOF-Projekt
- Eine hervorragende Erklärung zu ACG finden Sie im Blog von Adam Chester unten.
Neue Funktionen (08/01/2021)
- Opferprozess mit Arbitrary Code Guard (ACG) erzeugen, um zu verhindern, dass EDR-Lösungen in die DLLs des Opferprozesses hooken.
- Shellcode injizieren und ausführen.
Popin' Calc aus ACG-geschütztem Prozess

beacon> spawn notepad.exe 6248 /Users/bobby.cooke/git/boku7/SPAWN/popCalc.bin
[*] SPAWN (Bobby Cooke//SpiderLabs|@0xBoku|github.com/boku7)
[+] Opened handle 0x534 to process 6248(PID)
[+] Spawned process: notepad.exe | PID: 8404 | PPID: 6248
[+] Allocated RE memory in remote process 8404 (PID) at: 0x00000177A72C0000
[+] Wrote 280 bytes to memory in remote process 8404 (PID) at 0x00000177A72C0000
[+] APC queued for main thread of 8404 (PID) to shellcode address 0x00000177A72C0000
Neue Funktionen (19.07.2021)
- CNA Agressor Script Schnittstelle
beacon> help
spawn Spawn a process with a spoofed PPID and blockDll
beacon> help spawn
Synopsis: spawn /path/to/exe PPID
beacon> ps
8264 5536 OneDrive.exe x86 1 DESKTOP-KOSR2NO\boku
beacon> spawn cmd.exe 8264
[*] SPAWN (@0xBoku|github.com/boku7)
Opened handle 0x634 to process 8264(PID)
Success! Spawned process: cmd.exe | PID: 5384 | PPID: 8264
- PPID-Spoofing
- Cobalt Strike-ähnliche
blockdll-Funktionalität
Kompilieren mit x64 MinGW:
x86_64-w64-mingw32-gcc -c spawn.x64.c -o spawn.x64.o
Ausführen in der Cobalt Strike Beacon-Konsole
- Nach dem Kompilieren das spawn.cna-Skript in den Cobalt Strike Script Manager importieren.
beacon> spawn /path/to/exe PPID /local/path/to/shellcode.bin
Aufgabenliste
Agressor-Skript für bessere Benutzererfahrung

PPID-Spoofing für bessere Eltern-Kind-Prozessbeziehungs-OPSEC
- Hier sehen wir, wie unser
cmd.exe-Prozess mit der PPID OneDrive.exe erzeugt wird.
Implementierung der Cobalt Strike blockdll-Funktionalität, um nicht von Microsoft signierte DLLs am Laden in den Speicher des erzeugten Prozesses zu hindern
- Wir sehen die Eltern-Kind-Prozessbeziehung und dass unser erzeugter Prozess mit der Option „Signatures restricted (Microsoft only)“ erstellt wurde.
- „Signatures restricted (Microsoft only)“ bewirkt, dass nur von Microsoft signierte DLLs in unseren erzeugten Prozess geladen werden können.
Absturz des Beacon-Prozesses verhindern, wenn die PE-Datei nicht existiert
- Kein Absturz mehr bei fehlgeschlagener Prozesserzeugung!
PID an die Cobalt Strike-Konsole zurückgeben, wenn der neue Prozess erzeugt wird

Verschiedene Methoden der Remote-Prozess-Injektion ausbauen (08/01/2021)
- Verschiedene Methoden des Remote-Prozess-Patchings ausbauen
- NTDLL.DLL Remote-Prozess-Unhooking
Warum habe ich das gebaut?
1. Um mehr über Cobalt Strike BOFs zu lernen.
2. Ich möchte Flexibilität bei der Wahl meiner Opferprozesse haben.
- Jedes Mal denselben Prozess für fork-and-run zu erzeugen, erscheint mir wie schlechte/vorhersagbare OPSEC.
- Es gibt wahrscheinlich bereits Methoden dafür oder sie sind bereits in CS integriert. So oder so, ich wollte meine eigene bauen.
3. Ich habe viele coole BOF-Ideen, die ich darauf aufbauen möchte.
Danksagungen / Referenzen
PPID-Spoofing & blockDll-Funktionalität
- Dank/Shoutout an: Adam Chester @_xpn_ + @SEKTOR7net + Raphael Mudge
- Vielen Dank für die erstaunliche Arbeit, die ihr geleistet habt. Ich könnte dies nicht veröffentlichen ohne eure Blogs, Videos und großartigen Inhalte!
- Hauptreferenzen für PPID-Spoofing & blockdll
Raphael Mudge - Beacon Object Files - Luser Demo
Cobalt Strike - Beacon Object Files
BOF-Code-Referenzen
anthemtotheego/InlineExecute-Assembly
ajpc500/BOFs
trustedsec/CS-Situational-Awareness-BOF
Sektor7 Malware Dev Essentials Kurs - habe gelernt, wie man die Early-Bird-Injektionstechnik durchführt