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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-41089-LongLogon — CVE-2026-41089 检查器:针对 Netlogon CLDAP 栈缓冲区溢出(CVSS 9.8)的未认证、非破坏性检测。用于报告域控制器的域名是否足够长而可能触发崩溃,且不会发送溢出载荷。这是对公开 PoC 判断错误的二进制验证分析。 | Kitploit
工具/GitHubGitHub/adscanpro/cve-2026-41089-longlogon
侦察漏洞扫描器漏洞分析漏洞利用网络安全渗透测试
GitHubadscanpro/cve-2026-41089-longlogon

CVE-2026-41089-LongLogon

CVE-2026-41089 检查器:针对 Netlogon CLDAP 栈缓冲区溢出(CVSS 9.8)的未认证、非破坏性检测。用于报告域控制器的域名是否足够长而可能触发崩溃,且不会发送溢出载荷。这是对公开 PoC 判断错误的二进制验证分析。

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库网站
13213个月前尚未审核

LongLogon · CVE-2026-41089

CVE-2026-41089 · NVD MSRC advisory CVSS 3.1 9.8 CWE-121 栈缓冲区溢出
检查器 · 非破坏性 未经身份验证 · 预认证 使用 uv 运行 MIT 许可证

LongLogon 是一个未经身份验证、非破坏性的前提条件检查器,用于 CVE-2026-41089,一个在 Windows Netlogon 服务中预认证的栈缓冲区溢出漏洞。 无需凭据,也不发送溢出数据,它能报告域控制器的 DNS 域名是否足够长,足以使该漏洞导致其崩溃。

LongLogon 检查域控制器

CVE-2026-41089 的公开 PoC 真的有效吗?

在一个普通命名的域控制器上,无效。该 CVE 的公开 exploit PoC(星标最多的那个及其后续副本)声称通过发送一个长用户名来使域控制器崩溃。它们无法使普通域上未打补丁的 DC 崩溃,原因有两个,已通过对比修补前后的 netlogon.dll 并在实验室中复现崩溃得到确认:

  1. 错误的 NtVer。 它们设置了 V5EX 位(0x16)进行探测,这会使流量路由到边界安全的 BuildSamLogonResponseEx。只有在清除该位时才会进入有漏洞的旧版 BuildSamLogonResponse。LongLogon 使用 0x02。
  2. 长用户名本身无法导致溢出。 攻击者控制的 User 字段在二进制层面最多为 130 个宽字符,远低于 528 字节的缓冲区。导致写入越过栈 cookie 的字节是服务器自身的长 DNS 名称,任何负载长度都无法改变这一点。

因此,流行的漏洞利用在普通域上失效,而 recv 超时(健康 DC 上单个 UDP 数据包丢失就会导致)会被误读为崩溃。LongLogon 不属于那些漏洞利用:它是经过修正、经二进制验证的分析,作为一个永远不会发送溢出数据的非破坏性检查器发布。经实验室确认的崩溃阈值和完整机制如下。

CVE-2026-41089 是什么

Netlogon DC 定位路径 NlGetLocalPingResponse → BuildSamLogonResponse → NetpLogonPutUnicodeString 中存在一个基于栈的缓冲区溢出(CWE-121,CVSS 9.8)。在响应 CLDAP 或 MAILSLOT 探测时,DC 会将自己的林、域和主机名以及一个较小的攻击者控制的字符串序列化到一个固定的 528 字节栈缓冲区(ushort local_258[264])中,栈 cookie 紧跟在后面。当服务器自身的 DNS 名称足够长时,累积的写入会到达缓冲区末尾,尾部的 L'\0' 终止符会溢出 cookie,触发 __report_gsfailure,导致 lsass.exe 因 STATUS_STACK_BUFFER_OVERRUN(0xc0000409)而终止。域控制器重启。无需身份验证,仅需一个 UDP 数据包。

如果说 Zerologon(CVE-2020-1472)滥用的是全零挑战,那么 LongLogon 滥用的则是病态地长的域名。

此工具检查什么,以及不检查什么

longlogon.py 是非破坏性的。它发送带有最小 User 字段的良性 CLDAP 探测,测量旧版构建器的响应,并报告溢出的前提条件是否成立:即该 DC 的域是否足够长,以至于未修补的 DC 会崩溃。

它不会:

  • 发送溢出数据或导致任何东西崩溃,并且
  • 确定补丁状态。已修补的 DC 会走完全相同的代码路径并拒绝超长写入,因此在普通命名的 DC 上无法通过网络区分已修补和未修补。

要知道哪些 DC 实际上已打补丁,需要跨整个环境进行有凭据(管理员)的版本检查。这正是 ADscan 在参与中自动完成的工作(见下文)。

为什么几乎每个真实 DC 都是安全的

唯一能到达缓冲区的攻击者控制的字节来自 CLDAP User 过滤器,其上限为 130 个宽字符,本身远低于 528 字节的缓冲区。将光标推到 cookie 上的字节是服务器自身的名称,攻击者无法控制。默认命名的 DC(corp.local)无法被崩溃。这就是为什么微软将其评级为 “利用不太可能”。在实验室中,能够使 Windows Server 2016(主机名 7 个字符)崩溃的最小 DNS 域长度是 98 个字符。

使用方法

使用 uv,无需设置。依赖项声明在行内(PEP 723),因此会在临时环境中自动安装 rich:

root@kitploit:~
uv run longlogon.py <dc-ip> <dc-dns-domain>

或者使用 pip:

root@kitploit:~
pip install rich
python3 longlogon.py <dc-ip> <dc-dns-domain>

DNS 域名必须与 DC 提供的一致。这不是秘密:rootDSE、反向 DNS 以及 CLDAP 本身都会揭示它。输出是一个前提条件判决,以及每个字段的缓冲区填充计算。

NtVer 路由至关重要。 只有当 (NtVer & 0xc) == 0 且 (NtVer & 0x2) != 0 时,才会进入有漏洞的旧版 BuildSamLogonResponse。发送 NtVer=0x16 或 0x06 的公开漏洞尝试设置了第 2 位(0x4),命中了边界安全的 BuildSamLogonResponseEx,因此永远不会触发该漏洞。LongLogon 使用 0x02。

受影响的版本

未打补丁的 Windows Server 域控制器,2012 R2 至 2025。首次修补的版本:

负责任的使用

仅用于授权的安全研究和防御性验证。此仓库发布的是非破坏性前提条件检查器,而非武器化的崩溃器,针对的是一个已被积极利用、可蠕虫化的 CVE。请修补您的域控制器。

进一步了解

  • 完整研究文章: 如何通过补丁差异分析定位漏洞,精确的缓冲区机制,以及为什么公开 PoC 无法触发。 https://adscanpro.com/blog/patch-diffing-cve-2026-41089-netlogon
  • ADscan LITE(免费,开源):从单个终端进行 Active Directory 渗透测试。枚举、BloodHound 收集、Kerberoasting、ADCS、攻击路径、证据。 https://github.com/ADScanPro/adscan
  • ADscan PRO: 为进行 AD 参与工作的团队提供相同的杀伤链自动化。 https://adscanpro.com/pro

研究作者:Yeray Martín Domínguez · ADscan · CVE-2026-41089 · Netlogon · Active Directory · 域控制器 · 栈缓冲区溢出 · CLDAP · 未经身份验证 · 预认证 · 概念验证

下载工具
Windows Server首次修补版本
201610.0.14393.9140
201910.0.17763.8755
202210.0.20348.5074
2022 23H210.0.25398.2330
202510.0.26100.32772