CodeXTF2/ScreenshotBOF
GitHub: CodeXTF2/ScreenshotBOF
一款基于 BOF 技术的 Cobalt Strike 截屏增强工具,通过避免 fork & run 行为提升 OPSEC 安全性,支持内存下载和最小化窗口捕获。
Stars: 490 | Forks: 68
# ScreenshotBOF
一款用于 Cobalt Strike 的替代截屏功能,利用 WinAPI 实现且不执行 fork & run。截屏文件在内存中下载。
# 功能特性
- JPEG 压缩
- 在内存中以截屏或文件形式下载
- 支持捕获最小化的窗口
- 灰度、JPEG 质量及缩放以减小文件体积
## 自行编译
1. git clone 该仓库
2. 运行 `make`
## 保存方式:
0. 落地文件到磁盘
1. 通过 beacon 下载文件(仅限 Cobalt Strike)
2. 通过 beacon 以截屏形式下载(仅限 Cobalt Strike)
## PID
0: 捕获全屏 (PID = 0)
指定 PID: 捕获特定 PID (即使最小化也有效!)
## 用法
1. 将 screenshotBOF.cna 脚本导入 Cobalt Strike
2. 使用命令 screenshot_bof {本地文件名} {保存方式 0/1/2} {pid/0} {灰度 0/1} {质量 0-100} {缩放 0-100}
- 不带参数运行 `screenshot_bof` 将弹出 GUI 对话框
```
beacon> screenshot_bof file.jpg 2 21964 0 90 100
[*] Running screenshot BOF by (@codex_tf2)
[+] host called home, sent: 12421 bytes
[+] received output:
Downloading JPEG over beacon as a screenshot with filename file.jpg
[*] received screenshot of Screenshot from Admin (26kb)
[+] received output:
Screenshot saved/downloaded successfully
```
## 注意事项
- 未执行任何规避操作,但这通常没有问题,因为所使用的 WinAPI 并非恶意接口
## 为什么开发这个工具?
Cobalt Strike 对其许多后渗透(post-ex)功能(包括截屏命令)使用了一种被称为 fork & run 的技术。虽然这种行为提供了稳定性,但现在它已广为人知并受到严密监控。此 BOF 旨在提供一个在 OPSEC(行动安全)方面更安全的截屏功能版本。
## 致谢
- 保存 BMP 到文件来自 https://stackoverflow.com/a/60667564
- 内存下载来自 https://github.com/anthemtotheego/CredBandit
- @BinaryFaultline 提供了(已弃用的)aggressorscript 中的 BMP 渲染以及截屏回调函数
- 位图转 JPEG 来自 https://github.com/WKL-Sec/HiddenDesktop
## 免责声明
常规免责声明,对于您可能使用这段编写拙劣的代码犯下的任何反人类罪行或引发的核战争,我不承担任何责任。
标签:BOF, C/C++, Cobalt Strike, Raspberry Pi, SCP, WinAPI, 事务性I/O, 免杀技术, 内存执行, 客户端加密, 屏幕监控, 截图, 攻击诱捕, 数据展示, 数据窃取, 暴力破解检测, 欺骗防御, 端点可见性, 红队, 规避检测, 远程控制