CVE-2020-1472 (ZeroLogon) 检测与缓解演示
本项目演示了严重 Windows 漏洞 CVE-2020-1472(又称 ZeroLogon)的检测与缓解。该漏洞允许攻击者在未经身份验证的情况下获得管理员访问权限。本项目是作为学校网络安全项目的一部分开发的。PoC 代码归功于 Tom Tervoort (Secura),Suricata 规则集归功于 Proofpoint Emerging Threats。
关键组件:
- 使用 PoC 脚本测试域控制器的漏洞
- 通过 Windows 事件日志监控入侵指标
- 使用自定义规则部署 Suricata IDS
- 应用 Windows 更新
演示的检测技术
1. 漏洞测试脚本
- 由 Tom Tervoort (Secura) 编写的 Python 脚本
- 利用
impacket 库,通过 Netlogon 身份验证绕过测试域控制器的漏洞
2. Windows 事件日志分析
关注以下关键事件:
4624:使用域控制器凭据成功登录
4672:向攻击者分配了特殊权限(例如管理员)
5805:Netlogon 错误事件(被利用的指标)
3. 使用 Suricata 进行入侵检测
- 使用 Suricata 分析域控制器上的网络流量
- 实施来自 Proofpoint Emerging Threats 规则集的自定义规则
- 检测 ZeroLogon 漏洞利用中常用的零字节序列
环境要求
要复现此演示,需要以下环境配置:
攻击机
目标机
- VirtualBox(相同的 NATNetwork 配置,并启用混杂模式)
- Windows Server 2019 Essentials(2019 年 9 月更新)
- 创建新域和域控制器(使用目标机服务器作为域控制器)
- Suricata
- Microsoft C++ Redistributable
- Npcap
- Notepad++
- 来自 Proofpoint Emerging Threats Rules 仓库的规则文件
由 Proofpoint 提供的
emerging-all.rules
配置说明:
使用 Notepad++ 修改了 Suricata 配置:
- 将
HOME_NET 设置为目标机的 IP 地址
- 更新了
rule-files 部分,以使用 emerging-all.rules 文件
检测方法演示
步骤 1:查找目标机的计算机名称和 IP 地址
- 打开服务器管理器。
- 导航到本地服务器。记下以太网下找到的计算机名称和 IP 地址。在本演示中,计算机名称为 FTB4-Victim-Win,IP 地址为 10.0.2.4

步骤 2:启动漏洞测试脚本
- 在攻击机上打开终端
- 使用目标机的计算机名称和 IP 执行 Python 测试脚本:
python /home/kali/Desktop/CVE-2020-1472-master/zerologon_tester.py <target computer name> <target IP>
- 脚本将以一条消息结束,表明域控制器可被 ZeroLogon 攻击完全攻破。

步骤 3:分析 Windows 事件日志
- 现在在目标机上,启动事件查看器。图标位于任务栏上。
- 导航到 Windows 日志,然后选择安全。
- 如下所示,有两个与 ZeroLogon 绕过相关的安全事件:事件 4672 和事件 4624。


- 转到同样位于 Windows 日志下的系统。向下滚动,直到看到级别为错误、来源为 NETLOGON 的事件。选择它。这是另一个与 ZeroLogon 绕过相关的事件。

- 可以关闭 Windows 事件查看器。
步骤 4:使用 Suricata 进行入侵检测
- 在目标机上,以管理员身份打开命令提示符。
- 执行以下命令以启动 Suricata:
cd C:\Program Files\Suricata\
- 使用相应的 IP 地址执行以下命令
suricata -c suricata.yaml -i <target IP> -l log

- 从任务栏中的图标打开文件资源管理器。导航到
C:\Program Files\Suricata\log
- 在导航栏中输入
powershell 并按 Enter。Windows PowerShell 将启动。

- 在 Windows PowerShell 中,输入
get-content .\fast.log -wait 并按 Enter。忽略所有之前的日志(它们来自之前的测试),并向下滚动到空白处。

- 在攻击机上,再次启动 Python 测试脚本。
- 现在回到目标机,记下生成的新警报。这些警报表明存在 ZeroLogon 的尝试或利用。

- 可以关闭 Windows PowerShell 和命令提示符窗口。
- 打开
fast.txt。日志保存在此文件中。

缓解方法演示
针对 CVE-2020-1472 (ZeroLogon) 最有效的缓解措施是安装最新的 Windows 安全更新。
步骤:
- 在目标机上,打开设置应用。
- 导航到更新和安全 → Windows 更新
- 点击**“检查更新”**,让系统下载并安装最新更新。
- 如有必要,重新启动机器。

这些更新通过强制使用安全远程协议,应用了 Microsoft 针对 ZeroLogon 漏洞的修复,并在域控制器中默认启用强制模式。
局限性说明
本项目演示的检测和缓解方法专为受控实验室环境中的教育目的而设计。虽然它们能有效说明 CVE-2020-1472 (ZeroLogon) 背后的概念,但仍存在局限性,并不完全适合在真实企业环境中部署。由于这是一个学校项目,重点是学习和理解网络安全技术,而非实施生产级解决方案。
致谢
特别感谢
参考资料
作者
@tdevworks
免责声明
本仓库仅用于教育目的。
所演示的所有工具、脚本和技术均旨在帮助在受控实验室环境中理解网络安全漏洞。请勿尝试在你不拥有或未经明确许可测试的系统或网络上使用所提供的任何材料。
作者对所提供的任何信息的滥用不承担任何责任。