Active Directory 攻击面
了解 AD 信任关系和身份验证如何被滥用。
Active Directory 攻击面 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
为什么 AD 是首要目标
活动目录(AD)是大多数企业的身份管理基础。它负责管理用户、计算机和服务的身份验证、授权与策略。由于几乎每项资源都信任 AD,单个域被攻陷通常就等同于整个网络被攻陷。
从红队的角度看,AD 很有吸引力,因为信任具有传递性,而错误配置会在多年间不断累积。蓝队必须了解同一攻击面,才能进行防御。
- 一个森林可以包含多个通过信任关系连接的域。
- 域控制器(DC)保存所有机密信息的权威副本。
- 组策略会将配置推送到每台已加入域的主机。
核心构成
要分析攻击,您必须了解其中涉及的对象。AD 会将所有内容作为带有属性的对象,存储在分层 LDAP 数据库中。
- 用户和计算机是带有 SID 的安全主体。
- 组通过传递式关系授予权限(嵌套成员关系)。
- 组织单位用于组织对象并关联组策略。
- krbtgt账户持有用于签署所有 Kerberos 票据的密钥。
krbtgt账户是最重要的核心资产:其哈希值可以伪造黄金票据。
身份验证协议
AD 支持两种主要的身份验证协议,而且两者都存在可被滥用的路径。
- NTLM是一种基于用户密码哈希值的挑战-响应机制,可用于中继攻击和哈希传递攻击。
- Kerberos基于票据且更受推荐,但会暴露服务票据离线破解、AS-REP 离线破解和票据伪造等风险。
防御人员应禁用 NTLMv1、监控 NTLM 的使用情况,并强制启用 SMB 签名,以降低中继攻击的影响。
使用 LDAP 进行枚举
通过身份验证的枚举通常是在获得任何域内立足点后的第一步。即使是低权限用户,默认情况下也可以读取目录中的大部分内容。
工具会查询 LDAP,以绘制用户、组、ACL 和信任路径。
# BloodHound SharpHound collector (run as domain user)
SharpHound.exe -c All --zipfilename loot
# PowerView: find users with SPNs (kerberoastable)
Get-DomainUser -SPN | select samaccountname,serviceprincipalnameACL 与权限路径
除了组成员关系之外,AD 对象还带有访问控制列表(ACL)。配置错误的 ACL 会提供传统审计无法发现的攻击路径。
- GenericAll / GenericWrite允许主体重置密码或设置 SPN。
- WriteDacl允许攻击者重写对象 ACL,并为自己授予权限。
- 目录同步权限(复制目录更改)允许您远程提取所有哈希值。
BloodHound 会将这些关系可视化为图中的边,从而暴露通往域管理员的最短路径。
域信任
信任关系会连接不同的域和森林,使一个域中的主体能够访问另一个域中的资源。它们是横向移动的重要途径。
- 父子信任关系在森林内是双向且具有传递性的。
- 外部信任和森林信任会跨越安全边界。
- 滥用 SID 历史记录和跨领域 TGT 可以跨越信任边界。
真正的安全边界是森林,而不是域。信任一个安全性较弱的域,可能使整个森林暴露。
常见错误配置
大多数 AD 失陷利用的是配置偏移,而不是零日漏洞。反复出现的问题包括:
- 密码较弱且带有 SPN 的服务账户(可进行服务票据离线破解)。
- 设置了
DONT_REQ_PREAUTH的账户(可进行 AS-REP 离线破解)。 - 过多的嵌套组成员关系授予隐藏的管理员权限。
- 密码存储在 GPP
cpassword中,或存储在 SYSVOL 脚本里。 - 非 DC 服务器上启用了非约束委派。
委派风险
Kerberos 委派允许服务代表用户执行操作。滥用委派会使其成为提权手段。
- 非约束委派会在服务器上缓存用户的 TGT;攻陷该服务器后,攻击者可以冒充任何进行身份验证的用户,包括管理员。
- 约束委派会限制目标,但可以通过服务自请求和服务代理请求机制加以滥用。
- 基于资源的约束委派(RBCD)可以由任何对计算机对象拥有写入权限的人进行配置。
防御可见性
防御人员可以通过分层和监控来缩小攻击面。
- 实施分层管理员模型:第 0 层(DC、身份系统)的凭据绝不能接触较低层级。
- 使用受保护用户组,并为敏感账户禁用 NTLM。
- 监控事件 ID
4768/4769(TGT/TGS 请求)、4662(目录同步)以及4624登录类型。 - 部署 LAPS,使本地管理员密码保持唯一并定期轮换。
AD 中的攻击生命周期
典型的 AD 评估会遵循可重复的生命周期。了解这一点有助于进行攻击模拟和检测工程。
- 建立立足点:网络钓鱼或暴露的服务带来一个低权限账户。
- 枚举:BloodHound 绘制攻击路径。
- 提权:进行服务票据离线破解、滥用 ACL 或利用委派。
- 取得控制权:先进行目录同步,再使用黄金票据或钻石票据实现持久化。
安全映射攻击面
在获得授权测试 AD 时,范围和日志记录都很重要。请先采集基线、取得书面授权,并避免执行生产账户密码重置等破坏性操作。
请在约定的时间窗口运行收集器,并对获取的数据加密存储。在测试期间创建的任何临时对象(实验室用户、RBCD 条目)都必须还原。
# Enumerate trusts and forest topology (PowerView)
Get-DomainTrust
Get-ForestDomain
# Find unconstrained delegation hosts
Get-DomainComputer -Unconstrained | select dnshostname快速检查
请测试您对 AD 攻击面的理解。
回顾
您已经了解了 AD 为什么是高价值目标,以及使其容易被滥用的攻击面。
- AD 信任具有传递性;真正的安全边界是森林。
- NTLM 和 Kerberos 各自暴露出不同的滥用路径。
- ACL、委派和过时的服务账户会产生隐藏的权限路径。
- BloodHound 可以绘制这些路径;分层、LAPS 和事件监控可以进行防御。
接下来,我们将深入学习 Kerberos 和服务票据离线破解。
常见问题解答
「Active Directory 攻击面」课时是免费的吗?
是的 — 「Active Directory 攻击面」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「Active Directory 攻击面」这节课中我会学到什么?
了解 AD 信任关系和身份验证如何被滥用。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「Active Directory 攻击面」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Active Directory 攻击面
- Kerberos 与 Kerberoasting
- 哈希传递与票据传递
- 权限提升与域控制