Skip to main content
bin9chn@blog:~/posts/学习笔记

CVE-2026-41089(Windows Netlogon 零点击远程代码执行漏洞)深度分析

微软披露了一个影响Windows域控制器的严重漏洞CVE-2026-41089(CVSS 9.8),该漏洞存在于Netlogon服务的CLDAP协议处理中,攻击者可通过发送特制UDP数据包触发栈缓冲区溢出,无需认证即可在域控制器上执行任意代码。漏洞已在野被利用,影响所有Windows Server版本。建议立即安装补丁,限制域控制器的389端口访问,并监控异常CLDAP请求。该漏洞与2020年的Zerologon类似,都属于域控制器核心服务的高危漏洞,一旦被利用可能导致整个Windows域沦陷。

5 min read
CVE-2026-41089(Windows Netlogon 零点击远程代码执行漏洞)深度分析 封面

0x00 概述

2026年6月2日,微软披露了一个影响Windows域控制器的关键漏洞 CVE-2026-41089,CVSS评分 9.8。该漏洞存在于Windows Netlogon服务中,攻击者无需任何认证,仅通过网络发送特制数据包即可在域控制器上执行任意代码。

关键信息:

项目内容
漏洞编号CVE-2026-41089
CVSS 3.19.8(严重)
漏洞类型栈缓冲区溢出 → 远程代码执行
影响组件Windows Netlogon RPC服务
利用条件无需认证,零点击
在野利用已确认

0x01 漏洞原理

1.1 Netlogon服务简介

Netlogon是Windows域控制器上的核心服务,负责处理域内计算机的认证请求。它监听UDP 389端口(CLDAP协议)和TCP 445端口(SMB协议),是Active Directory域环境的基石。

1.2 漏洞成因

漏洞存在于Netlogon服务处理CLDAP查询的函数 NlGetLocalPingResponse 中。该函数使用了一个528字节的栈缓冲区来 存储 用户名信息,但未对输入长度进行有效校验。

// 漏洞代码示意
VOID NlGetLocalPingResponse(PCLDAP_REQUEST Request) {
    CHAR username[528];  // 栈缓冲区,528字节

    // 未校验长度,直接复制
    strcpy(username, Request->User);  // 溢出点
    // ...
}

1.3 攻击方式

攻击者通过UDP 389端口发送包含超长用户名的CLDAP ping请求:

  1. 触发溢出:发送超过528字节的用户名字段
  2. 覆盖返回地址:溢出数据覆盖栈上的函数返回地址
  3. 控制执行流:劫持程序执行流,跳转到攻击者控制的代码
  4. 远程代码执行:以SYSTEM权限执行任意命令

1.4 利用特点

  • 零点击:无需用户交互,攻击者主动发起
  • 无需认证:未授权用户即可触发
  • 网络可达:只需能访问域控制器的UDP 389端口
  • 影响范围:所有受支持的Windows Server版本

0x02 影响范围

服务器版本修复版本
Windows Server 201610.0.14393.9140
Windows Server 201910.0.17763.8755
Windows Server 202210.0.20348.5074
Windows Server 2022 23H210.0.25398.2330
Windows Server 202510.0.26100.32772
Windows Server 2012/2012 R2ESU补丁

注意: 该漏洞影响所有域控制器(DC),普通成员服务器不受影响。


0x03 在野利用情况

3.1 比利时CERT紧急警告

2026年6月1日,比利时网络安全中心(CCB)发出紧急警告,确认该漏洞已在野被积极利用。攻击者正在大规模扫描暴露在互联网上的域控制器。

3.2 攻击特征

  • 攻击源IP多来自东欧和东亚地区
  • 攻击目标为暴露UDP 389端口的域控制器
  • 攻击成功后LSASS进程崩溃(事件ID 1000)
  • 部分攻击尝试通过CLDAP请求中的超长用户名触发

3.3 CISA响应

美国网络安全和基础设施安全局(CISA)已将CVE-2026-41089加入已知被利用漏洞目录(KEV),要求联邦机构在规定期限内完成修补。


0x04 检测方法

4.1 网络层检测

监控CLDAP请求中User字段长度超过20-30字符的异常请求:

# 使用Wireshark过滤器
udp.port == 389 && ldap.AttrValue contains "User" && ldap.AttrValue.len > 30

4.2 主机层检测

监控LSASS崩溃事件:

# PowerShell查询LSASS崩溃事件
Get-WinEvent -FilterHashtable @{LogName='Application'; ID=1000} |
Where-Object {$_.Message -like "*lsass*"} |
Select-Object TimeCreated, Message

4.3 漏洞扫描

使用Nmap检测目标是否为域控制器:

nmap -p 389 --script ldap-rootdse <目标IP>

0x05 复现步骤

警告: 以下步骤仅用于授权测试环境,未经授权的测试属于违法行为。

5.1 环境准备

git clone https://github.com/0xABCD01/CVE-2026-41089.git
cd CVE-2026-41089
pip install impacket

5.2 检测目标

# 检测目标是否为域控制器
python3 detect_dc.py --target <域控制器IP>

5.3 运行PoC

# 仅触发LSASS崩溃(拒绝服务)
python3 poc.py --target <域控制器IP> --mode dos

# 远程代码执行(需要自定义shellcode)
python3 poc.py --target <域控制器IP> --mode rce --shellcode <shellcode.bin>

0x06 修复建议

6.1 紧急措施

  1. 立即安装补丁:部署微软2026年5月安全更新
  2. 网络隔离:限制域控制器的UDP 389端口访问,仅允许可信网络访问
  3. 监控告警:部署LSASS崩溃告警和异常CLDAP请求告警

6.2 长期措施

  1. 最小权限原则:域控制器不应暴露在公网
  2. 网络分段:将域控制器放置在独立的安全区域
  3. 入侵检测:部署IDS/IPS规则检测异常CLDAP流量
  4. 日志审计:启用Netlogon服务的详细日志记录

6.3 临时缓解

如无法立即修补:

# 限制CLDAP访问(临时缓解)
New-NetFirewallRule -DisplayName "Block External CLDAP" `
  -Direction Inbound -Protocol UDP -LocalPort 389 `
  -RemoteAddress <可信IP范围> -Action Allow

# 阻止其他来源的CLDAP
New-NetFirewallRule -DisplayName "Block CLDAP Default" `
  -Direction Inbound -Protocol UDP -LocalPort 389 `
  -Action Block

0x07 历史对比

CVE-2026-41089让人想起2020年的 CVE-2020-1472(Zerologon),同样是Netlogon服务的严重漏洞:

对比项Zerologon (2020)CVE-2026-41089 (2026)
CVSS10.09.8
攻击方式密码置空缓冲区溢出
利用难度极低低
影响范围域控制器域控制器
在野利用大规模已确认

两者都影响域控制器核心服务,都无需认证即可利用,都可能导致整个Windows域沦陷。


0x08 总结

CVE-2026-41089是一个严重级别的域控制器漏洞,攻击者无需认证即可远程执行代码。鉴于该漏洞已在野被利用,建议所有Windows域环境立即安装补丁。

对于无法立即修补的环境,应采取网络隔离、监控告警等临时缓解措施。域控制器作为Active Directory的核心,一旦被攻破,攻击者可完全控制整个Windows域。


参考资料

相关文章

全部文章 →