zl程序教程

您现在的位置是:首页 >  其它

当前栏目

域渗透之AS-REP Roasting

渗透 as rep
2023-09-14 09:16:27 时间

目录

AS-REP Roasting

利用 Rubeus.exe

利用 Powerview.ps1


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 <哈希值> <字典密码>

 如下图所示,爆破成功,得到明文密码:

 相关文章:内网渗透测试:Kerberos协议相关安全问题分析与利用 - FreeBuf网络安全行业门户