域渗透之AS-REP Roasting
目录
AS-REP Roasting
我们在Kerberos协议认证原理中讲过,AS_REQ & AS_REP 认证的过程是 Kerberos 身份认证的第一步,该过程又被称为预身份验证。预身份验证主要是为了防止密码脱机爆破。
而如果域用户设置了选项 "Do not require Kerberos preauthentication"(该选项默认没有开启)关闭了预身份验证的话:
攻击者可以使用指定的用户去请求票据,向域控制器发送AS_REQ
请求,此时域控会不作任何验证便将 TGT 票据和加密的 Session-key 等信息返回。因此攻击者就可以对获取到的加密 Session-key 进行离线破解,如果爆破成功,就能得到该指定用户的明文密码。
这种攻击方式被称作 AS-REP Roasting 攻击。下面演示攻击过程。
利用 Rubeus.exe
项目地址:GitHub - GhostPack/Rubeus: Trying to tame the three-headed dog.
首先我们使用 Rubeus 工具来寻找可以利用的用户并将其哈希值导出
Rubeus.exe asreproast
如上图所示,成功找到了可以利用的用户 bunny 并得到了该用户的哈希,然后我们使用 Hashcat 等工具对获得的 Hash 进行爆破就行了。
将哈希值保存到 hash.txt 中,并且修改为 Hashcat 能识别的格式,即在$krb5asrep
后面添加一个$23
拼接:
然后利用Hashcat爆破就行了:
hashcat.exe -m 18200 hash.txt wordlists.txt --force
#hashcat.exe -m 18200 <哈希值> <字典密码>
如下图所示,爆破成功,得到明文密码:
利用 Powerview.ps1
项目地址:GitHub - EmpireProject/Empire: Empire is a PowerShell and Python post-exploitation agent.
我们也可以利用 Empire 框架下的 powerview.ps1 查找域中设置了 "不需要kerberos预身份验证" 的用户。
Import-Module .\powerview.ps1 #导入模块
Get-DomainUser -PreauthNotRequired #查找在域中设置了"不需要kerberos预身份验证的用户
如上图,我们找到了bunny用户。
使用ASREPRoast.ps1获取AS-REP返回的Hash:
ASREPRoast.ps1 项目地址:GitHub - HarmJ0y/ASREPRoast: Project that retrieves crackable hashes from KRB5 AS-REP responses for users without kerberoast preauthentication enabled.
Import-Module .\ASREPRoast.ps1 #导入模块
Get-ASREPHash -UserName bunny -Domain whoamianony.org
#-UserName <用户名> -Domain <域名>
然后我们使用 Hashcat 等工具对获得的 Hash 进行爆破就行了。
将哈希值保存到 hash.txt 中,并且修改为 Hashcat 能识别的格式,即在$krb5asrep
后面添加一个$23
拼接。
然后利用Hashcat爆破就行了:
hashcat.exe -m 18200 hash.txt wordlists.txt --force
#hashcat.exe -m 18200 <哈希值> <字典密码>
如下图所示,爆破成功,得到明文密码:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效