今天,我们就来讲一下另外一种Roasting攻击 AS-REP Roasting
1.AS-REP Roasting原理
其实和kerberoasting一样,这种攻击也是一种暴力破解的攻击,完全取决于攻击者的字典。
但是不同于Kerberoasting,他不需要用户进行注册SPN,他其实就是对AS-REP过程中返回的那张TGT中用了用户的NTLM哈希加密的CT_Sessionkey的字段进行暴力破解,从而得到用户的NTLM哈希,然后进行下一步横向!!
其实通过WireShark我们就能够很清楚的看见了!!
2.AS-REP Roasting的前提
有人这时候就会好奇了,AS-REP的发生,前提不是发生了AS-REQ吗??? 确实呢,默认情况下我们只有在AS-REQ通过(身份,密码等认证通过),KDC才会给我们发一张TGT!!! 但是我们又不知道别的用户的账号密码!!!
::这我咋玩????
当然了,和Kerberoasting一样,也是有对应得前提得的,那就是勾选 不要求Kerberos身份预认证
这个选项是默认没有勾上的,所以AS-REP Roasting的利用难度还是很大的
我们去勾选一下然后抓包,看看对应得流量(这里我用Rubeus这个工具)
shell Rubeus.exe asreproast /format:john /outfile:hash.txt
然后我们看流量能发现到,即使我们是SEC用户,但是域内勾选了不要求Kerberos预认证的用户WIN7(我们伪造WIN7请求)也返回了用WIN7加密的CT_Sessionkey
3.定位域内不要求kerberos预认证的用户
1.PowerView无文件落地
这个只适用于你在域环境内
powershell-import PowerView.ps1
powershell Get-DomainUser -PreauthNotRequired -Verbose
可以查出来
2.ADfind
这个工具就老强大啦,假设我们在域内
shell Adfind.exe -h 192.168.111.138:389 -f "useraccountcontrol:1.2.840.113556.1.4.803:=4194304" -dn
或者在工作组获取了一个域用户的密码
shell Adfind.exe -h 192.168.111.138:389 -u rce\sec -up admin@123 -f "useraccountcontrol:1.2.840.113556.1.4.803:=4194304" -dn
3.Python脚本
当然了,如果我们在工作组中没有用户的密码也是可以的!!!
这不正是(任意用户枚举,和密码喷洒的原理吗)都是利用的AS-REQ返回的对应值进行判断
但是脚本我没得,你要自己写
4.获取用户hash加密的CT_Sessionkey
1.Rubeus
这个其实就在上面演示过了,他会自动生成所有勾选了不要求身份认证的用户去进行伪造请求,并且输出到一个文档
2.GetNPUsers
因为有些电脑可能用不了Rubeus这个工具,所以我们用这个
shell GetNPUsers.exe 域名/用户名 -no-pass -dc-ip 域控 >hashes.txt
5.破解用户的TGT
这里破解的方法就有很多了
比如说john
john --wordlist="密码字典" 用户哈希
或者你用hashcat也不是不可以,我这个配置不支持,你们可以去你们电脑上去试一试
然后通过拿到了对应得hash,如果是高权限得话就可以去PTH了!!! 反正方法很多,能完成认证,一切都好说!