文章总结: 本文详细介绍了CobaltStrike官方维护的bof_template项目,该项目为安全研究人员提供标准化BOF开发框架,支持在Beacon进程内直接执行轻量级后渗透模块。文档重点解析了项目结构、核心API分类、示例实现及构建测试方法,强调BOF技术可降低开发门槛、实现深度集成并具备良好隐蔽性。同时包含公众号推广内容及会员站广告信息。 综合评分: 72 文章分类: 红队,安全工具,安全开发,实战经验,产品介绍
震惊!这款开源工具让Cobalt Strike后渗透能力瞬间提升百倍
棉花糖糖糖 棉花糖糖糖
棉花糖网络安全工具箱
2026年6月28日 10:45 四川
在小说阅读器读本章
去阅读
免责声明:本文仅做技术研究交流之用,相关工具的使用应遵守法律法规及授权协议,请勿用于非法用途。
重点导读概述
bof_template是由Cobalt Strike官方维护的Beacon Object File项目模板仓库,专门为安全研究人员和红队操作人员提供标准化开发框架。该模板项目实现了在Beacon进程内直接执行轻量级后渗透模块的核心功能,支持通过inline-execute命令快速加载和运行自定义BOF代码。
项目核心价值在于大幅降低了BOF开发门槛。传统后渗透工具开发通常需要完整的PE加载和进程注入流程,而BOF技术允许开发者直接调用Beacon内部API,在Beacon进程空间内执行原生C代码,从而实现与Cobalt Strike深度集成的后渗透能力扩展。
重点导读项目结构
PART 01目录布局
bof_template/
├── beacon.h # Beacon内部API定义头文件
├── examples/ # 示例BOF实现
│ ├── hello/ # 基础Hello World示例
│ ├── helloWorld/ # inline-execute示例
│ ├── demo/ # 4.7版本特性演示
│ ├── cs_beacon_info/ # BeaconInformation API示例
│ ├── cs_format_example/# 格式化输出示例
│ ├── cs_key_value/ # 键值存储API示例
│ ├── cs_beacon_syscalls/# 系统调用API示例
│ └── cs_read_virtual_memory/ # 内存读取示例
├── tests/ # 测试套件
└── .gitignore # Git忽略配置
PART 02核心文件
beacon.h作为项目核心头文件,定义了所有可用的Beacon内部API接口。该文件随着Cobalt Strike版本迭代持续更新,截至目前已支持至4.12版本的相关API定义。文件采用C语言风格导出接口,确保跨编译器兼容性。
重点导读核心技术架构
PART 03API分类
beacon.h中定义的API可划分为以下主要类别:
数据解析API:负责处理BOF执行时的参数解析和提取操作,包括BeaconDataParse、BeaconDataInt、BeaconDataShort、BeaconDataExtract等函数,用于从Beacon传递的参数中提取各种数据类型。
格式化输出API:提供格式化的控制台输出能力,包含BeaconFormatAlloc、BeaconFormatPrintf、BeaconFormatToString等函数,支持类似printf风格的格式化字符串输出。
输出回调API:定义多种输出类型常量,如CALLBACK_OUTPUT、CALLBACK_ERROR、CALLBACK_CUSTOM等,用于区分不同的输出场景和格式。
令牌管理API:实现令牌操作相关功能,包括BeaconUseToken切换令牌、BeaconRevertToken恢复令牌、BeaconIsAdmin检查管理员权限等。
进程注入API:提供进程和线程级别的注入操作能力,包括BeaconInjectProcess、BeaconInjectTemporaryProcess、BeaconSpawnTemporaryProcess等核心函数。
Beacon信息API:4.9版本引入的BeaconInformation API允许BOF获取当前Beacon运行环境的详细信息,包括版本号、Sleep Mask状态、堆内存记录等关键数据。
键值存储API:4.9版本引入的BeaconAddValue、BeaconGetValue、BeaconRemoveValue三个函数实现了Beacon进程内的键值对存储功能,支持在同一Beacon会话的不同BOF执行之间共享数据。
系统调用API:4.10及后续版本逐步完善的系统调用相关API,包括BeaconGetSyscallInformation获取系统调用信息、BeaconVirtualAlloc系列内存操作函数、以及大量直接封装NtQueryVirtualMemory、NtReadVirtualMemory等底层系统调用的包装函数。
PART 04入口点设计
BOF的入口点函数为go,而非传统C程序的main函数。该函数接受两个参数:args表示传入的命令行参数字符串,alen表示参数长度。开发者通过BeaconDataParse函数解析参数,并使用相应的BeaconDataExtract系列函数提取不同类型的数据。
重点导读示例项目分析
PART 05hello示例
hello示例展示了BOF开发的基础模式。代码首先通过BeaconDataParse初始化解析器,然后使用BeaconDataExtract提取字符串参数,使用BeaconDataInt提取整数参数。核心逻辑通过BeaconFormatAlloc分配输出缓冲区,使用BeaconFormatPrintf格式化输出内容,最后通过BeaconPrintf将结果发送至Beacon控制台。
该示例同时演示了全局变量和局部变量的使用方式,以及如何通过自定义函数封装重复逻辑。
PART 06cs_beacon_info示例
cs_beacon_info是4.9版本引入的BeaconInformation API的完整使用示例。该示例调用BeaconInformation获取BEACON_INFO结构体数据,该结构体包含Beacon版本信息、Sleep Mask指针和大小、Beacon基址、堆内存记录列表以及内存分配信息等核心运行数据。
PART 07cs_beacon_syscalls示例
cs_beacon_syscalls示例展示了如何在BOF中调用系统调用。该示例首先通过BeaconGetSyscallInformation获取SYSCALL_API结构体信息,然后直接使用结构体中封装的系统调用函数指针进行低层级Windows API调用。
PART 08cs_key_value示例
cs_key_value演示了4.9版本引入的键值存储功能。开发者可以通过BeaconAddValue将内存地址与键名关联存储,后续BOF执行时通过BeaconGetValue根据键名检索之前存储的内存地址,实现跨BOF执行的数据共享。
重点导读构建系统
PART 09构建环境
项目支持两种主流Windows C编译器:Microsoft Visual Studio编译器(通过build.bat)和MinGW编译器(通过build.sh)。对于Linux或macOS环境,可使用mingw-w64交叉编译工具链生成Windows目标文件。
PART 10构建脚本
每个示例目录均包含针对不同编译器的构建脚本。以hello示例为例,build.sh脚本调用x86_64-w64-mingw32-gcc或i686-w64-mingw32-gcc进行编译,生成符合COFF格式的.x64.o或.x86.o目标文件。生成的目标文件可通过Cobalt Strike的inline-execute命令直接加载执行。
重点导读测试框架
PART 11测试架构
tests目录提供了完整的BOF功能测试框架。测试套件包含多个针对不同API功能的测试源文件,包括testBeaconDataShorts、testBeaconDataIntegers、testBeaconDataStrings、testBeaconFormat、testBeaconOutput、testBeaconPrintf等,覆盖了数据解析、格式化输出、错误处理等核心功能模块。
PART 12测试执行
测试执行需要首先在目标系统启动Beacon会话,然后加载bof_test_runner.cna脚本,最后在Beacon控制台执行run_boff_tests命令并传入测试参数。测试框架会自动验证各API函数的行为是否符合预期。
重点导读技术特点
PART 13轻量化设计
BOF无需独立的进程空间或PE加载流程,直接在Beacon进程内执行。这种设计使得BOF后渗透模块具有极低的资源占用和极快的执行速度,同时避免了传统进程注入技术面临的检测挑战。
PART 14深度集成
通过调用Beacon内部API,BOF可以获取Beacon运行环境的详细信息、访问Beacon管理的令牌和会话数据、调用Beacon实现的系统调用包装函数。这种深度集成能力使得BOF可以实现与Cobalt Strike原生功能无缝衔接的后渗透扩展。
PART 15跨版本兼容
beacon.h头文件记录了完整的版本变更历史,API定义会根据Cobalt Strike版本演进进行相应更新。开发者可以基于版本宏定义实现条件编译,确保BOF在不同版本的Cobalt Strike环境下都能正确运行。
重点导读应用场景
BOF技术的典型应用场景包括:定制化的系统信息收集、敏感数据读取、横向移动辅助、持久化技术扩展、以及各类后渗透阶段的定制化操作。由于BOF执行在Beacon进程内,其行为特征与Beacon本身高度相似,具有良好的隐蔽性。
重点导读项目地址
本文介绍的项目开源地址如下:
本公众号非项目作者,仅做技术分享。
https://github.com/Cobalt-Strike/bof_template
广告时间
低价考证包括但不限于CISP系列、PMP等等国内网安证书、网络安全交流群请关注公众号后点菜单栏的找棉花糖。
糖心会员站,网络安全必备网站,包括在线内网靶场、web靶场、src靶场、应急响应靶场,以及各种网安资料、教程、方案模版、以及超级多在线工具,99元包年!详细介绍:棉花糖会员站介绍(26年4月26日版本) :在线内网靶场、网安资料方案、在线工具全能资源站,看完介绍百分百心动!
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:棉花糖网络安全工具箱 棉花糖糖糖 棉花糖糖糖《震惊!这款开源工具让Cobalt Strike后渗透能力瞬间提升百倍》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论