一. AS-REP Roasting攻击原理
AS-REP Roasting是一种对用户账号进行离线爆破的攻击方式,他是因为管理员的错误配置导致的,该攻击是AS-REP数据包导致的,因为管理员在域控上勾选了【不要求Kerberos】预身份验证
AS-REP(AS-Response):当KDC收到AS-REQ之后解密PA-DATA pA-ENC-TIMESTAMP 如果成功就返回AS- REP
第一个enc-part: TGT中由KRBTGT哈希值加密部分
第二个enc-part:TGT中由用户哈希值加密部分
接下来分析一下勾选和没勾选情况的流量
没有勾选
使用kekeo工具抓包分析,在正常的请求,我们输入正确的账号密码才有AS-REP数据包,并且其中包含了两部分
AS-REQ
AS-REP
勾选
打钩之后看一下数据包,我们不需要提供密码,只需要提供账号,AS就会返回TGT还有加密的session key,因此我们破解该字段内容就可以得到用户的密码
AS-REQ
AS-REP
二. 获取勾选预定认证用户列表
想要使用此方法破解域用户的密码,首先这个用户必须勾选的(不要求Kerberos预身份验证)才可以,所以我们第一步就是获取域内哪些用户勾选个这个选项。
获取勾选预认证用户与密码喷洒一样,工作组和域内主机都可以。
1. 域内主机
方法一
在域控上执行此命令(必须是域控):
Get-ADUser -Filter 'useraccountcontrol -band 4194304' -Properties useraccountcontrol | Format-Table name
方法二
在域内主机上使用PowerView.ps1脚本:
Import-Module .\PowerView.ps1
Get-DomainUser -PreauthNotRequired –Verbose(列出详细信息)
Get-DomainUser -PreauthNotRequired -Properties distinguishedname -Verbose
2. 工作组
方法一
此方法只能是在你知道域用户和密码时才能使用LDAP进行查询,使用Adind工具
adind -h 192.168.41.10:389 -u abc\test1 -up LYp010822 –f "useraccountcontrol:1.2.840.113556.1.4.803:=4" -dn
方法二
自己魔改的工具,之前的工具都是通过查询用户属性,根据之前的喷洒工具,我们修改里面的规则,根据协议找出来用户(改过后的工具可以查询不需要提供域用户的密码就可以啦直接使用kerberos协议即可)
三. 获取AS-REQ的ENC-PART
对于域内的主机,我们如果想要知道,该用户的part的值可以使用相关的工具,基本上都是使用LDAP协议查询用户,然后列出相关的part值
1.域内
Rubesu
Rubesu 是由国外安全研究院harmj0y用C#编写的针对Kerberos协议进行攻击的工具,可以发起Kerberos请求,并将请求票据导入内存中,Rebeus提供了大量的用于Kerberos攻击的功能,比如TGT请求/ST请求/AS-REP Roasting攻击/Kerberoasting攻击/委派攻击/黄金票据/白银票据等
Rubesu工具需要 3.5支持,否则会运行不了有如下的提示
运行命令:
Rubeus.exe asreproast /format:john /outfile:用户字典
ASREPRoast脚本
Import-Module .\ASREPRoast.ps1
Invoke-ASREPRoast | select -ExpandProperty Hash
2. 非域用户
方法一
使用用户字典一个一个去试试
枚举的方式:
impacket-GetNPUsers -dc-ip 192.168.41.10 -usersfile 1.txt -format john hack.com/
方法二
特定字典-指定用户的方式:
GetNPUsers.exe -dc-ip 192.168.41.10 hack.com/test1 -no-pass
四. 暴力破解用户Hash密码
拿到part值之后因为该值使用NTLM-HASH值进行加密的,所以可以进行暴力破解
这里介绍2个工具
1、john
将密码字典和获取的part值文件导入工具目录下
命令:
john --wordlist=密码字典 part值
2、hashcat
命令
hashcat -m 18200 hash.txt 密码字典 --force
Hashcat命令格式:
https://hashcat.net/wiki/doku.php?id=example_hashes
我们直接生成的part值中和手册中的值不符合因为少了$23,需要自己手动改一下
出现该种情况可以参考这篇文章
https://blog.csdn.net/maxiluo/article/details/132689828