深入理解OperatorsKit的SPN模块:靶向Kerberoasting攻击全流程
深入理解OperatorsKit的SPN模块:靶向Kerberoasting攻击全流程
【免费下载链接】OperatorsKitCollection of Beacon Object Files (BOF) for Cobalt Strike项目地址: https://gitcode.com/gh_mirrors/op/OperatorsKit
OperatorsKit是一个专注于Cobalt Strike Beacon Object Files(BOF)的集合,其中的SPN模块提供了强大的服务主体名称(SPN)枚举与Kerberoasting攻击能力。本文将详细解析SPN模块的核心功能、使用方法及攻击流程,帮助安全从业者掌握这一高效渗透测试工具。
🔍 SPN模块核心功能解析
SPN模块通过多协议发现(ldap、ldaps、全局编录)实现SPN枚举,或对特定SPN执行Kerberoasting攻击。其核心价值在于:
- 多协议支持:兼容ldap(389端口)、ldaps(636端口)和全局编录(3268/3269端口)
- 双重操作模式:
enum模式用于发现含SPN的账户,roast模式用于请求Kerberos票据 - 哈希转换工具:配套提供bof_to_hashcat.py脚本,可将Base64编码的票据转换为Hashcat兼容格式
📋 基础使用语法与参数说明
命令格式
spn enum <ldap|ldaps|gc> <target> <dc> spn roast <target>参数详解
- action:
enum执行通配符搜索识别含SPN的账户,roast请求Kerberos票据 - protocol:枚举时指定协议(ldap/ldaps/gc)
- target:枚举时为部分账户名(""表示全部),攻击时为完整SPN字符串
- dc:枚举时指定域控制器的IP或主机名
🚀 实战攻击全流程演示
1. SPN枚举(发现阶段)
通过全局编录枚举所有含SPN的账户:
spn enum gc "" DC01.example.local该命令将通过全局编录(3268端口)查询DC01上所有配置了SPN的账户,输出格式类似:
[*] Found: SQLService -> SPN: MSSQLSvc/sql01.example.local:14332. 精准Kerberoasting(攻击阶段)
针对发现的MSSQL服务SPN发起攻击:
spn roast MSSQLSvc/sql01.example.local:1433成功执行后将返回Base64编码的Kerberos票据,日志信息显示:
[+] Hash acquired for SPN: MSSQLSvc/sql01.example.local:14333. 哈希转换(破解准备)
使用配套脚本转换票据格式:
python3 bof_to_hashcat.py <RAW_BASE64_STRING>脚本会自动检测哈希类型并输出Hashcat兼容格式,便于后续密码破解。
⚙️ 模块编译与加载
- 确保安装支持C/C++的Visual Studio
- 打开
x64 Native Tools Command Prompt for VS <2019/2022>终端 - 运行KIT/SPN/bofcompile.bat编译对象文件
- 在Cobalt Strike中通过脚本管理器加载KIT/SPN/spn.cna
💡 高级使用技巧
- 协议选择策略:优先使用
gc(全局编录)获取森林级信息,ldaps提供加密传输 - 目标过滤:枚举时使用部分账户名(如
sql)缩小范围:spn enum ldaps sql DC01.example.local - 票据处理:获取的Base64票据可直接用于Hashcat破解(模式13100)
📝 注意事项
- 执行枚举操作需要适当的域权限
- 频繁的Kerberoasting可能触发安全监控
- 哈希破解效率取决于密码复杂度和计算资源
通过OperatorsKit的SPN模块,安全测试人员可以高效完成从SPN发现到票据获取的全流程Kerberoasting攻击。合理利用其多协议支持和精准定位能力,能够在渗透测试中快速获取关键凭证,提升测试效率与成功率。
【免费下载链接】OperatorsKitCollection of Beacon Object Files (BOF) for Cobalt Strike项目地址: https://gitcode.com/gh_mirrors/op/OperatorsKit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
