Active Directory(AD)是企业内部身份认证的核心基础设施,一旦域控被攻陷,攻击者就等同于拿到了整个企业的钥匙。近年来多起重大入侵事件都显示出相同的路径:攻击者先通过钓鱼获取普通员工凭据,再利用AD中的配置缺陷横向移动、提权,最终控制域控。理解AD攻击的常见手法并建立检测与响应机制,是企业安全建设中不可绕过的一环。

一、AD域常见攻击手法与攻击链分析
AD攻击极少是一步完成的,攻击者通常会经历侦察、凭据窃取、横向移动、权限提升和持久化控制几个阶段。在侦察阶段,攻击者会使用BloodHound等工具收集域内的用户、组和ACL关系,绘制攻击路径。BloodHound的图形化能力非常强,它能自动发现诸如"某普通用户对某管理员组拥有WriteDacl权限"这类隐蔽的配置缺陷,这也是它在攻击者中流行的原因。
在凭据窃取阶段,常见手法包括LSASS内存转储、Kerberoasting和AS-REP Roasting。Kerberoasting利用的是Kerberos协议中TGS票据的固有特性:任何域用户都可以请求任意SPN账户的服务票据,而该票据使用SPN账户的密码哈希加密,攻击者拿到票据后可以离线暴力破解。这类攻击完全不需要与管理员权限交互,隐蔽性很高。
在提权和持久化阶段,DCSync、黄金票据(Golden Ticket)、白银票据(Silver Ticket)和ACL滥用是主角。DCSync的本质是滥用目录复制协议(DRSUAPI),具备复制目录更改权限的账户可以直接向域控请求同步任意用户的哈希,包括krbtgt账户。理解这些原理,是后续做检测规则设计的基础——检测规则本质上是在识别这些协议行为中的异常特征。
二、检测体系建设:日志、审计与蜜罐
AD攻击检测的第一步是把审计日志打开。很多企业的默认配置下,关键审计策略是缺失的,导致攻击发生时无日志可查。域控上需要重点开启的审计策略包括:账户登录、账户管理、Kerberos认证服务、Kerberos服务票据操作以及目录服务访问。以Kerberoasting检测为例,事件ID 4769记录了TGS票据的请求,如果某账户在短时间内请求了大量不同SPN的票据,且票据加密类型为RC4,就是典型的Kerberoasting特征。用PowerShell可以快速检索:
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4769} |
Where-Object { $_.Properties[5].Value -match '0x17' } |
Group-Object { $_.Properties[0].Value } |
Where-Object { $_.Count -gt 10 } |
Sort-Object Count -Descending
上面脚本中0x17代表RC4加密,RC4票据在现代环境中出现频率极低,但恰好是Kerberoasting工具的默认选择,因此是高价值的检测信号。类似地,DCSync检测要关注目录服务日志中的4662事件,看是否有复制目录更改相关的GUID(如1131f6aa-9c07-11d1-f79f-00c04fc2dcd2)被非域控账户调用。如果请求来源不是域控的IP,基本可以判定为DCSync攻击。
除了日志分析,蜜罐账户是一种成本低、误报率几乎为零的手段。具体做法是创建一个没有任何权限、从不使用的账户,将其SPN设置为随机字符串,并对其登录行为做重点告警。正常业务不会碰这个账户,任何针对它的认证尝试都极可能是攻击者在做密码喷洒或SPN扫描。此外,部署ADCS攻击检测时,可以监控证书服务日志中异常的证书请求行为,防范ESC系列漏洞被利用。
三、事件响应处置流程与加固方案
检测到攻击信号后,响应速度直接决定损失范围。一个可落地的响应流程应包含确认、遏制、取证、清除和恢复五个步骤。确认阶段要快速验证告警真实性,例如4769告警需确认请求账户是否为服务账户、来源IP是否为已知资产;遏制阶段应立即隔离失陷主机、重置相关账户密码;取证阶段要保留LSASS转储、安全日志、网络流量等证据,用于后续溯源和研判攻击范围。
对于已被DCSync或黄金票据攻击的环境,简单的密码重置是不够的。黄金票据使用krbtgt账户的哈希签名,攻击者伪造的票据有效期默认可达10年,因此必须重置krbtgt密码两次(利用密码历史机制),并配合票据吊销与强制重新认证。必要时可使用微软的Reset-ADServiceAccount或专用脚本批量处理。同时要检查域内是否存在攻击者留下的ACL后门,可借助BloodHound的反向思路,审计高价值对象的写入权限:
# 检查Domain Admins组的写入权限是否被异常账户持有
Get-Acl "AD:\CN=Domain Admins,CN=Users,DC=corp,DC=local" |
Select-Object -ExpandProperty Access |
Where-Object { $_.ActiveDirectoryRights -match 'Write|GenericAll' -and
$_.IdentityReference -notmatch 'SYSTEM|Administrators' }
加固方面,建议从三个层面推进。第一是账户治理:为高权限服务账户启用组托管服务账户(gMSA),确保密码足够长且随机,使Kerberoasting离线破解在计算上不可行;对普通账户启用预认证,堵住AS-REP Roasting的口子。第二是架构收敛:引入分层管理模型(Tier模型),禁止管理员登录普通工作站,减少凭据暴露面。第三是持续监控:将安全日志接入SIEM,针对4624、4648、4662、4768、4769、5136等关键事件建立基线告警,并定期用攻击路径分析工具审视域内的ACL配置。检测与加固是相辅相成的闭环,只有持续运营,AD安全才能真正落到实处。
AD域攻击检测Active Directory安全域控防护修改时间:2026-08-31 21:48:58