CVE-2020-1472 通常被称为 Zerologon,它是分配给 Microsoft 的 Netlogon Remote Protocol (MS-NRPC) 中某个漏洞的 Common Vulnerabilities and Exposures (CVE) 标识符。MS-NRPC 对 Active Directory 中用户账户和计算机账户的身份验证至关重要。
Zerologon 漏洞是 Netlogon 使用的加密认证方案中的缺陷,可能使攻击者绕过认证并获得计算机(包括域控制器(DC))的管理员级权限。基本上,未经过认证的攻击者可以使用 Netlogon Remote Protocol 连接到 DC,并将其密码更改为攻击者选择的值(包括空值)。由于该攻击不需要认证,仅需网络访问,因此其 CVSS 评分为 10.0(严重)。这是可获得的最高分。
应对 Zerologon 攻击漏洞的时间线
2020 年 8 月,Microsoft 发布了用于修复该漏洞的补丁,并配套提供了用于帮助监控与缓解攻击的控制措施。2020 年 9 月 11 日,Secura 在公开公告中披露了该漏洞,并将其命名为 Zerologon,在其博客中 并发布了一些最初的 概念验证(proof of concept) 代码至 GitHub。
除了针对 CVE-2020-1472 发布补丁之外,Microsoft 还制定了包含两个阶段的推送策略:部署(deployment)和强制执行(enforcement)。目前这两个阶段都已完成。
第 1 阶段:部署阶段
Microsoft 于 2020 年 8 月发布的补丁启动了部署阶段,该阶段还包括以下内容:
· 在 Windows 基于设备上的计算机账户、信任账户以及 Windows 和非 Windows DC 上强制使用安全 RPC
· 新的 Group Policy: 域控制器:允许存在漏洞的 Netlogon 安全通道连接
· 新的注册表项:FullSecureChannelProtection
· Netlogon 连接的新事件
有关新的 Group Policy、注册表项和事件的详细信息如下所示。
部署策略如下:
- 修补林中的所有 DC。
- 监控新的事件,然后确保尽可能更新发起易受攻击连接的应用程序和计算机;如果无法更新,请在 Group Policy setting 中为无法更新的应用程序或计算机设置例外。
- 如果完成上述步骤,请在下面描述的强制执行阶段之前启用 enforcement mode 注册表项。
组策略(Group Policy)的详细信息
新的组策略“Domain controller: Allow vulnerable Netlogon secure channel connections”旨在在部署更新期间,为第三方设备提供临时措施。它有以下两个值:
· 允许 — 域控制器将允许指定的组或帐户使用 Netlogon secure channel,但不使用安全 RPC。
· 拒绝 — 此设置与默认行为相同:域控制器将要求指定的组或帐户使用带有安全 RPC 的 Netlogon secure channel。
注册表设置的详细信息
注册表设置的路径如下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
设置 FullSecureChannelProtection 有两个可能的取值:
· 0(本阶段的默认值)— 允许来自非 Windows 设备的、易受攻击的 Netlogon 安全通道连接
· 1(强制模式)— 除非在上面所述的新组策略中指定了该帐户,否则域控制器将拒绝所有易受攻击的连接。
关于新 Windows 事件的详细信息
Microsoft 在强制阶段发布了以下事件,以帮助支持团队:
· 事件 5827 和 5828 — 当连接涉及运行不受支持的 Windows 版本的设备时,会记录这些事件;非 Windows 设备也可能触发这些事件。
· 事件 5830 和 5831 — 当连接被允许时会记录这些事件,但仅仅是因为组策略(Group Policy)配置的缘故。
· 事件 5829 — 仅当连接被允许、但执行(enforcement)模式未生效时,会记录此事件。
第 2 阶段:执行阶段(Enforcement Phase)
该阶段于 2021 年 2 月开始。除非在新的组策略(Group Policy)中被明确配置,否则它会对基于非 Windows 的设备上的计算机帐户强制使用安全 RPC。此后,无需再使用 FullSecureChannelProtection 注册表项,并且事件 5829 已被停用。
Zerologon 攻击是如何实施的?
Zerologon 漏洞允许网络中的恶意行为者接管域控制器,甚至接管整个域。下面介绍攻击者如何使用 Mimikatz 来执行 Zerologon 攻击:
- 首先,攻击者会运行以下命令来判断目标域控制器是否容易受到 Zerologon 利用程序的攻击:
lsadump::Zerologon /target:sbpmlab-dc3 /account:sbpmlab-dc3$ /null /ntlm
- 当攻击者发现存在漏洞的 DC 后,他们会运行相同的命令,但会添加 /exploit 以利用该漏洞并将 DC 的密码更改为空字符串:
- 一旦密码被重置,攻击者就可以使用 Mimikatz 运行 DCSync attack 来获取域管理员账户或 KRBTGT 账户之一的哈希值:
lsadump::dcsync /domain:sbpmlab.net /dc:sbpmlab-dc3 /user:krbtgt /authuser:sbpmlab-dc3$ /authdomain:sbpmlab /authpassword:”” /authntlm
Netwrix 如何提供帮助
如您所见,攻击者一旦在您的网络中站稳脚跟,就能轻松找到未打补丁的域控制器并执行 Zerologon 攻击。Netwrix 提供两种解决方案,帮助您降低风险。
使用 Netwrix StealthAUDIT 分析并降低 Zerologon 风险
Netrix StealthAUDIT 可帮助您确保已采取必要措施,以加强 IT 生态系统以抵御 Zerologon 攻击。特别是,它提供两份报告,提供有关域控制器状态以及这些域控制器上的事件和流量的可操作信息。
查看域控制器状态
以下信息可帮助你确定每台域控制器是否已接收到 2020 年 8 月补丁,以及它是否处于强制(enforcement)模式:
· FullSecureChannelProtection 注册表项的值
- 上次重启时间
- 该计算机上次安装补丁的日期
下面是一个示例报告:
检查组策略设置
Netwrix StealthAUDIT 还会报告新组策略“Domain controller: Allow vulnerable Netlogon secure channel connections”的配置,这样你就能查看哪些 域控制器被豁免于该策略。下面展示了示例报告。
发现空的域控制器密码
域控制器上的空密码可能表明已经发生了 Zerologon 攻击。不管原因是什么,空的 DC 密码都极其危险,应当立即纠正。
分析事件日志
Netwrix StealthAUDIT 还会检查与 8 月补丁相关的所有事件 ID,包括事件 5827、5828、5829、5830 和 5831。本报告帮助管理员了解其环境中的流量类型及其频率。最重要的是,它会识别正在创建 5829 事件的账户。这些账户必须要么更新,要么在新的组策略中指定为例外。
使用 Netwrix Threat Manager 发现 Zerologon 攻击
Netwrix Threat Manager 可高精度且快速地检测并响应异常行为和高级威胁(包括 Zerologon)。下方截图展示了检测到的 Zerologon 攻击示例:
结论
Zerologon 漏洞之所以获得最高 CVSS 分数,是有充分理由的——利用它,攻击者就能控制域控制器,而域控制器在您的 IT 生态系统中对身份验证和授权至关重要。因此,即使您认为已完成 Microsoft 提出的两阶段缓解流程,仍然明智地保持警惕。务必检查 DC 的状态,留意正在进行的漏洞利用迹象,并在业务遭受泄露或停机之前具备自动关闭/阻断的能力。
分享到
了解更多
关于作者
Kevin Joyce
产品管理总监
Netwrix 产品管理总监。Kevin 对网络安全充满热情,尤其致力于理解攻击者为利用组织环境所采用的策略与技术。凭借八年的产品管理经验,并专注于 Active Directory 和 Windows 安全,他将这种热情投入到帮助构建解决方案中,助力组织保护其身份、基础设施和数据。