Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-41089 — CVE-2026-41089 PoC — Netlogon CLDAP 栈缓冲区溢出 (CVSS 9.8 严重) | Kitploit
工具/GitHubGitHub/0xabcd01/cve-2026-41089
漏洞分析漏洞利用渗透测试学习与教育二进制利用
GitHub0xabcd01/cve-2026-41089

CVE-2026-41089

CVE-2026-41089 PoC — Netlogon CLDAP 栈缓冲区溢出 (CVSS 9.8 严重)

查看仓库
2096743个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-41089

root@kitploit:~
 ██████╗██╗   ██╗███████╗    ██╗  ██╗ ██╗ ██████╗  ██████╗
██╔════╝██║   ██║██╔════╝    ██║  ██║███║██╔═████╗██╔═████╗
██║     ██║   ██║█████╗      ███████║╚██║██║██╔██║██║██╔██║
██║     ╚██╗ ██╔╝██╔══╝      ██╔══██║ ██║████╔╝██║████╔╝██║
╚██████╗ ╚████╔╝ ███████╗    ██║  ██║ ██║╚██████╔╝╚██████╔╝
 ╚═════╝  ╚═══╝  ╚══════╝    ╚═╝  ╚═╝ ╚═╝ ╚═════╝  ╚═════╝

Windows Netlogon 通过 CLDAP 栈缓冲区溢出实现远程代码执行

CVSS CWE Python License


一个精心构造的 UDP 数据包发往端口 389,即可溢出任意未打补丁的 Windows 域控制器上 LSASS 内部的 528 字节栈缓冲区。该进程崩溃。域控制器约 60 秒后重启。无需任何身份验证。

攻击向量UDP 389 (CLDAP),预认证,零凭据
影响LSASS 崩溃、DC 重启、潜在 RCE
CWECWE-121(基于栈的缓冲区溢出)
CVSS 向量AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
发布时间2026 年 5 月 12 日 by Microsoft

快速开始

root@kitploit:~
python3 poc.py 10.0.50.21 corp.local

三个阶段:正常 ping 确认 DC 存活,使用 130 字符用户名的溢出 ping,存活检测。整个过程约需 10 秒。

受影响系统

每个作为域控制器运行的 Windows Server 版本:

根本原因

NlGetLocalPingResponse 分配一个 528 字节的栈缓冲区并将其传递给 BuildSamLogonResponse。该函数调用 NetpLogonPutUnicodeString 将服务器名称、域名、GUID 以及攻击者控制的用户名写入缓冲区。

漏洞在于:NetpLogonPutUnicodeString 接收一个以字节为单位的最大长度,但将其视为 WCHAR 计数。通过此路径写入的每个字符串所占空间是预期的两倍。CLDAP 过滤中的 "User" 字段(最多 130 个 wchar,线路上 260 字节)将合并写入推过 528 字节边界。

root@kitploit:~
I_NetLogonLdapLookupEx
  -> NlGetLocalPingResponse           // 528 字节栈缓冲区
    -> LogonRequestHandler
      -> BuildSamLogonResponse
        -> NetpLogonPutUnicodeString   // 字节/WCHAR 大小混淆

使用方法

root@kitploit:~
python3 poc.py <target_ip> <domain_name> [options]
标志描述默认值
-l用户名字符长度130
-tUDP recv 超时(秒)5
root@kitploit:~
# 连通性测试(短用户名,无溢出)
python3 poc.py 10.0.50.21 corp.local

# 默认溢出尝试
python3 poc.py 10.0.50.21 corp.local -l 130

# 更大 payload,针对慢速网络使用更长超时
python3 poc.py 10.0.50.21 corp.local -l 200 -t 10

需要 Python 3.8+。无需第三方包。

工作原理

  1. 阶段 1. 使用用户名 "testuser" 的正常 CLDAP ping 确认目标在 UDP 389 上响应。
  2. 阶段 2. 相同的数据包结构,但用户名改为 130+ 个 "A"。这会将序列化数据推过栈缓冲区边界。如果 LSASS 崩溃,recv 将超时。
  3. 阶段 3. 在可配置的延迟后,第二次正常 ping 检查 DC 是否仍然存活。无响应 = 确认 LSASS 崩溃。

溢出触发拒绝服务(LSASS 崩溃,DC 重启)。通过栈损坏实现 RCE 在理论上可行。此 PoC 不尝试执行代码。

检测

网络. 扫描 CLDAP 流量,查找 "User" 过滤属性超过 20-30 个字符的搜索请求。正常的 DC 定位器 ping 使用服务帐户名称(短字符串)。

主机. 监控与 netlogon.dll 相关的 LSASS 崩溃(事件 ID 1000)。启用 Netlogon 调试日志:

root@kitploit:~
nltest /dbflag:0x2080ffff

缓解措施

  • 安装 Microsoft 2026 年 5 月安全更新
  • 将 UDP 389 入站限制到受信任的管理子网
  • 对于超出 ESU 范围的旧版 Server:0patch 提供微补丁(单指令修复:mov edx, 0x40 将最大用户名长度减半)

参考

  • Microsoft Security Update Guide
  • NVD - CVE-2026-41089
  • 0patch Analysis and Micropatch
  • Aretiq AI Reverse Engineering
  • RFC 4511 - LDAP
  • MS-ADTS - CLDAP DC Locator

法律声明. 此代码仅供授权的安全研究和教育使用。仅对你拥有或已获得明确书面许可的系统进行测试。未经授权访问计算机系统违反了 CFAA 及大多数司法管辖区的等效法律。

MIT 许可证

下载工具
服务器版本修复版本
2012 / 2012 R2仅 ESU 补丁
201610.0.14393.9140
201910.0.17763.8755
202210.0.20348.5074
2022 23H210.0.25398.2330
202510.0.26100.32772
-d
溢出与存活检测之间的延迟(秒)
3