DCSync 是一种攻击,允许对手模拟域控制器(DC)的行为,并通过域复制检索密码数据。DCSync 的经典用途是作为 Golden Ticket 攻击的前置步骤,因为它可用于检索 KRBTGT 哈希。
具体而言,DCSync 是开源 Mimikatz 工具中的一个命令。它使用 Directory Replication Service Remote Protocol (MS-DRSR) 中的命令来模拟域控制器的行为,并请求其他域控制器复制信息——利用 Active Directory 中无法关闭或禁用的有效且必要的功能。
精心挑选的相关内容:
攻击流程
DCSYNC 攻击的工作方式如下:
- 攻击者会找到要请求复制的域控制器。
- 请求用户复制GetNCChanges
- DC 会将复制数据返回给请求者,其中包括密码哈希。
所需权限
执行 DCSync 攻击需要一些非常高权限的权利。由于攻击者通常需要花费一段时间才能获得这些权限,因此该攻击被归类为杀伤链(kill chain)的后期攻击。
通常情况下,Administrators、Domain Admins 和 Enterprise Admins 具备执行 DCSync 攻击所需的权利。具体而言,需要以下权利:
- 复制目录更改
- 复制全部目录更改
在筛选后的集合中复制目录更改
Netwrix 解决方案如何帮助您检测并阻止 DCSync 攻击
检测
Netwrix Threat Manager 会监控所有域复制流量,以发现 DCSync 的迹象。它不依赖事件日志或网络数据包捕获。其主要检测方法是查找与 DCSync 匹配的行为模式,包括域控制器与非域控制器的机器之间的复制活动。
该解决方案提供对可疑活动的清晰概述,并通过可视化展示:是哪位用户实施了攻击、被针对的域和用户,以及支持该攻击的证据。如果同一用户执行了多次 DCSync 攻击,这些关键信息也将一并包含在内。
响应
要执行 DCSync,攻击者需要更高的权限,因此阻止攻击的关键在于立即阻止 privilege escalation。禁用用户账户这种标准剧本(playbook)响应可能并不足够,因为当你发现攻击正在进行时,攻击者很可能已经拥有一系列其他资源和可用选项。
Netwrix Threat Prevention 提供阻止策略,可防止账户或工作站执行进一步的复制,从而减缓攻击,并为响应人员争取更多时间以彻底消除威胁。
Netwrix Threat Manager 通过提供有关 DCSync 攻击肇事者、来源、目标以及被查询对象的详细信息,支持这些响应步骤。
查看 Netwrix Threat Manager 的实际运作
什么是DCSync攻击?
攻击者更常通过这种残留的委派访问,而不是通过被攻破的管理员账户,因为复制权限在迁移和集成过程中被授予服务账户,之后却从未被撤销。
然而,DCSync 本身没有补丁,因为它使用的是域控制器用来保持同步的相同复制接口,阻止它会破坏 Active Directory。生成的流量对于快速查看日志的人来说,看起来与普通复制完全相同。
DCSync攻击的工作原理
根据Netwrix 2026 Data and Identity Security Report,只有26%的组织完全相信他们的Active Directory不存在允许权限提升的配置错误。Netwrix 2026 Data and Identity Security Report 这种不确定性是有根据的,因为DCSync只需要对一个被遗忘的服务账户拥有一个委派权限,就能交出域中所有的密码哈希。
该序列在几秒内完成,无需在域控制器上执行代码。
1. 攻击者针对域中的任何domain controller
DCSync攻击是一种入侵技术,攻击者模拟域控制器(DC),通过域复制获取密码数据。通常在Golden Ticket attack之前发生。
3. 目标域控制器返回密码哈希
不需要在该特定机器上有先前的立足点,因为请求像其他复制流量一样通过网络传输。任何域控制器都会响应它。
2. 攻击者冒充域控制器请求复制
DCSync也是开源Mimikatz工具中的一个命令名称。该命令使用Directory Replication Service Remote Protocol(MS-DRSR)来冒充域控制器,并请求真实的域控制器复制目录信息,滥用AD复制,其工作方式完全符合设计。MITRE将其归类为T1003.006,属于操作系统凭据转储,没有需要修复的根本漏洞。
攻击者调用MS-DRSR复制接口中的IDL_DRSGetNCChanges,也称为DRSUAPI,并在冒充域控制器时请求用户复制数据。该调用是合法的复制API使用,而非格式错误或异常请求,因此不会触发协议级别的防御。
域控制器会响应复制数据,包括密码哈希,因为接口无法区分合法的域控制器和具有正确权限的帐户。
4. 现有工具执行请求
Netwrix Threat Prevention实时阻止Active Directory上的DCSync和Pass-the-Hash尝试,并标记Kerberoasting暴露以进行修复。请求演示。
DCSync攻击所需的权限
Administrators、Domain Admins 和 Enterprise Admins 默认拥有必要的权限。由于获取这些特权需要时间,DCSync 通常出现在攻击链的后期。具体权限如下:
- 复制 Directory 更改 (
DS-Replication-Get-Changes)
DSInternals PowerShell 模块通过 Get-ADReplAccount 暴露它。使用 Mimikatz DCSync 提取用户密码数据涵盖了完整的命令序列。
Mimikatz的lsadump::dcsync模块仍然是最著名的实现,其他工具执行相同的复制请求。Impacket的secretsdump.py通过网络运行,DSInternals PowerShell模块通过Get-ADReplAccount暴露它。
- 复制 Directory Changes All (
DS-Replication-Get-Changes-All) - 在筛选集中过滤Directory更改(仅在某些环境中需要)
另外两个权限打开同一扇门,在特权组成员审查中很少被发现。拥有域级GenericAll(完全控制)或AllExtendedRights权限的账户,即使不属于任何特权组,也可以运行DCSync。
攻击者对哈希值的操作
在域命名上下文中被委派这些权限的任何帐户都可以进行复制。通常以 MSOL_ 前缀命名的 Entra Connect 服务帐户合法拥有这些权限,继承自迁移或早已遗忘的集成的帐户也是如此。
使DCSync成为可能的复制权限是权限;它返回的哈希不是。哈希是凭证材料,是密码的加密表示,持有哈希可以让攻击者在不知道该人的实际密码的情况下冒充该人。攻击者接下来做什么取决于他们获取了哪个账户的哈希。
KRBTGT 哈希:伪造域内任何账户的票证
列举当前谁拥有权限是最便宜的暴露检查,因为委托存在于目录评估工具直接读取的访问控制列表(ACL)中,且攻击路径分析展示了这些权限是如何串联起来的。
攻击者通过 privilege escalation 获得这些权限,因此任何拥有这些权限的账户都需要与Domain Admin相同的 privileged account management 纪律,而不是无人复查的常驻访问权限。
常规账户哈希:无需破解即可横向移动
达到KRBTGT账户的DCSync运行将凭据盗窃转变为域妥协。KRBTGT哈希为域中的每个Kerberos票据签名。持有它的攻击者可以伪造任何账户的Ticket Granting Tickets(TGT),而无需触及该账户自身的凭据,并且该伪造访问在被冒充账户的正常密码重置后依然有效。只有重置KRBTGT才能使伪造的票据失效。
较弱的凭证材料:离线破解明文密码
如何检测DCSync攻击
常规和特权账户的NT LAN Manager(NTLM)哈希直接用于Pass-the-Hash 攻击。攻击者通过重放哈希本身以该账户身份进行身份验证,因此无需破解即可在域内其他地方使用该凭证。
有三个地方可以捕获 DCSync 请求,每个地方捕获的内容不同:域控制器的事件日志、网络本身,以及发起请求的身份的行为。
在同一复制响应中恢复的Kerberos密钥和存储的密码历史记录,如果哈希类型足够弱,便会被离线破解。只有配置为可逆加密的账户,其明文密码才会直接暴露,正因如此,这种设置值得进行审计。
启用 Directory Service 审计并对复制 GUID 发出警报
1131f6aa-9c07-11d1-f79f-00c04fc2dcd2 用于 DS-Replication-Get-Changes1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 用于 DS-Replication-Get-Changes-All
监控来自非DC主机的复制流量
基础的identity行为,用于捕捉单个事件无法发现的情况
首先启用 Directory Service Access 的 Advanced Audit Policy,因为 Windows 默认关闭此项,且没有它事件 ID 4662 不会触发。启用后,特别关注这些通过全局唯一标识符(GUID)而非友好名称识别的复制属性 GUID:
当这些GUID出现在非域控制器或非已知复制服务账户的账户上时发出警报,并在警报前进行过滤,因为在繁忙的域控制器上未过滤的4662事件会产生无人阅读的噪音。将此信号视为后备措施,而非主要控制,因为攻击者一旦达到域控制器,也可能清除或阻止4662策略依赖的日志。
如何防止DCSync攻击
在配置时管理新的复制权限,而不仅仅是在下一次审查时
协议级别没有阻止DCSync的控制,因此预防措施依赖于控制谁可以调用复制并缩短通向这些权限的路径。
监控来自非域控制器主机的携带IDL_DRSGetNCChanges的DRSUAPI绑定,因为合法的复制仅在域控制器之间进行,且不存在可供过滤的良性流量版本。优先考虑此信号而非事件日志检测,因为网络监控无论域控制器是否记录了请求都能捕获该请求,即使攻击者篡改了端点日志,信号仍然可用。
将复制事件输入到构建每个账户正常行为基线的Identity Threat Detection平台中,因为单个4662事件或DRSUAPI绑定单独看可能合法,但与该账户的历史记录相比则异常。此层旨在捕捉从未发出过复制请求的账户首次发出请求的模式,而静态允许列表或一次性规则可能完全遗漏此类情况。
迁移或集成期间授予的权限往往在项目结束后仍然存在,因为删除没人记得授予的访问权限比最初授予它更难。
审查并移除无人能合理解释的复制权限
将复制RPC限制为已知的域控制器地址
检查在域命名上下文中拥有三种复制权限以及GenericAll和AllExtendedRights的每个帐户,删除任何无法证明合理性的权限。按计划重复审查,因为新的集成会重新引入这些权限。
关闭攻击者用来获取复制权限的路径
在拓扑允许的情况下,仅允许远程过程调用(RPC)复制在已知的域控制器地址之间进行。这不会阻止已经拥有有效复制权限的攻击者,但会阻止任何无正当理由的主机发出的请求。
如何应对疑似DCSync攻击
确定攻击者实际查询的范围
Enterprise Key Admins 是反复出现的例子,因为 Windows Server 2016 上的 adprep /domainprep 授予该组对 Domain Naming Context 及其子对象的完全控制权。微软将其称为错误而非漏洞,并从 1709 更新开始关闭了新的域准备,但在该修复之前准备的域需要单独的修复脚本;整个域的架构更新本身无法解决该问题。
假设哈希已经消失,因为数据在警报触发前已离开域。接下来您的操作决定了该访问权限对攻击者有多长时间的价值。
在任何新的集成或迁移获得 DS-Replication-Get-Changes、DS-Replication-Get-Changes-All、GenericAll 或 AllExtendedRights 权限之前,要求有书面理由和指定负责人,而不是先授予权限再在下一次审计周期中重新审查。
审查事件ID 4662、Directory Service 和 Sysmon 日志,以确定攻击者查询了哪些对象,然后决定隔离和修复的范围。这里的结果决定了响应是停留在一个账户,还是扩展到整个域的凭据重置。
确认 Zerologon (CVE-2020-1472) 已得到修复,因为授予域权限的漏洞会直接跳过整个攻击链。将凭据收集路径如 Kerberoasting 视为攻击者最初获得复制权限的方式,而不是以后要解决的单独问题。这两项修复都是更广泛的 Active Directory 安全最佳实践的一部分,旨在控制域中其他特权路径。
如果它在哈希中,则重置KRBTGT两次
遏制源头,而不仅仅是涉事账户
禁用涉事账户是本能反应,但单靠这点效果有限,因为攻击者现在持有独立于该账户的凭据。应撤销复制权限和privileged group memberships,并隔离源主机。
Netwrix如何帮助您检测并阻止DCSync攻击
查找所有拥有复制权限的账户
评估、检测和预防通过这里的不同产品进行,并且它们协同工作。
如果其中有KRBTGT,请将KRBTGT密码重置两次,两次重置之间的间隔应长于最大票据有效期(默认10小时)和完整复制周期。单次重置会使之前的密钥仍然有效,因此伪造的票据仍然有效。日志无法确定范围时,默认执行域范围的凭据重置,而不是猜测。
检测来自非DC主机的复制请求
在复制请求完成之前阻止它
Netwrix PingCastle 根据其MITRE ATT&CK映射的检查对Active Directory进行评分,包括拥有默认组外复制权限的账户,将上述委派审查转变为可重复的检查。
其警报显示请求背后的账户、目标域和账户以及查询的对象,这是分析师在界定运行范围时所需的详细信息,而不仅仅是确认事件发生。
其DCSync检测来源于Netwrix Threat Prevention AD Replication Monitoring策略,因此这两个产品配合使用。
Netwrix Threat Manager 检测针对 Active Directory 的凭证盗窃技术,包括由非域控制器的机器发出的复制请求,并发出警报。
Netwrix Threat Prevention 应用阻止策略,阻止特定账户或工作站执行进一步复制。两者均属于identity threat detection and response,Threat Manager 将检测扩展到 Entra ID,Threat Prevention 则在本地 Active Directory 层执行强制。
DCSync暴露的起点
[图片占位符:产品,请求PMM。需要Netwrix Threat Manager产品截图(任何当前视图显示检测到的DCSync事件,包括源主机、目标账户和查询对象)]
复制权限在这里承担了大部分防御责任,而自上次迁移以来无人审查的委派列表是现实的攻击路径。枚举它需要一个下午的时间。
请求演示,了解 Netwrix 如何查找复制权限,检测实时 DCSync 尝试,并在您自己的 Active Directory 环境中阻止下一次尝试。
对非域控制器主机的复制进行警报可以捕捉到尝试本身,无论是否启用了Directory Service审计,该信号都有效。随后,文档化的KRBTGT重置程序决定成功运行持续多长时间会继续惠及攻击者。
关于DCSync攻击的常见问题
分享到
了解更多
关于作者
Kevin Joyce
产品管理总监
Netwrix 产品管理总监。Kevin 对网络安全充满热情,尤其致力于理解攻击者为利用组织环境所采用的策略与技术。凭借八年的产品管理经验,并专注于 Active Directory 和 Windows 安全,他将这种热情投入到帮助构建解决方案中,助力组织保护其身份、基础设施和数据。