ADScanPro/CVE-2026-41089-LongLogon

GitHub: ADScanPro/CVE-2026-41089-LongLogon

ADScanPro/CVE-2026-41089-LongLogon 是一款用于检测 CVE-2026-41089 漏洞的检测工具。

Stars: 7 | Forks: 0

# LongLogon · CVE-2026-41089 [![CVE-2026-41089 · NVD](https://img.shields.io/badge/CVE--2026--41089-NVD-1f6feb?style=flat-square&labelColor=24292f)](https://nvd.nist.gov/vuln/detail/CVE-2026-41089) [![MSRC advisory](https://img.shields.io/badge/MSRC-advisory-005a9e?style=flat-square&labelColor=24292f)](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-41089) ![CVSS 3.1 9.8](https://img.shields.io/badge/CVSS_3.1-9.8-d11a2a?style=flat-square&labelColor=24292f) ![CWE-121 stack buffer overflow](https://img.shields.io/badge/CWE--121-stack_buffer_overflow-f08c00?style=flat-square&labelColor=24292f)
![checker · non-destructive](https://img.shields.io/badge/checker-non--destructive-2ea043?style=flat-square&labelColor=24292f) ![unauthenticated · pre-auth](https://img.shields.io/badge/vector-unauthenticated-1AA0AE?style=flat-square&labelColor=24292f) [![run with uv](https://img.shields.io/badge/run-uv-261230?style=flat-square&labelColor=24292f)](https://docs.astral.sh/uv/) ![MIT license](https://img.shields.io/badge/license-MIT-3fb950?style=flat-square&labelColor=24292f) ![LongLogon checking a domain controller](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/5b2daa5c21103255.gif) ## CVE-2026-41089 的公共 PoC 真的能工作吗? 在一个正常命名的域控制器上,不能。这个 CVE 的公共 **exploit** PoC(最受欢迎的一个,以及跟随它的副本)声称通过发送一个长的用户名来使域控制器崩溃。它们不会使一个未打补丁的普通域上的 DC 崩溃,原因如下,通过比较打补丁前后的 `netlogon.dll` 和在实验室中重现崩溃得到证实: 1. **错误的 NtVer.** 它们使用设置了 V5EX 位(`0x16`)的 ping,这路由到 bounds-safe 的 `BuildSamLogonResponseEx`。有漏洞的旧版 `BuildSamLogonResponse` 只有在该位清除时才能到达。LongLogon 使用 `0x02`。 2. **长的用户名本身不能溢出。** 攻击者控制的 `User` 字段被二进制限制在 130 个宽字符,远远短于 528 字节的缓冲区。将写入堆栈 cookie 的字节是服务器自己的长 DNS 名称,这些名称的负载长度不会改变。 因此,流行的漏洞利用在普通域上失败,并且一个 `recv` 超时(一个健康的 DC 上单个丢弃的 UDP 数据包引起的)被误读为崩溃。LongLogon 不是那种漏洞利用:它是经过修正、二进制验证的分析,作为非破坏性检查器发货,永远不会发送溢出。实验室确认的崩溃阈值和完整机制如下。 ## CVE-2026-41089 是什么 Netlogon DC 定位路径中的基于堆的缓冲区溢出(CWE-121,CVSS 9.8)`NlGetLocalPingResponse` → `BuildSamLogonResponse` → `NetpLogonPutUnicodeString`。 响应 CLDAP 或 MAILSLOT ping 时,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` 是 **非破坏性的**。它发送良性的 CLDAP ping,具有最小的 `User` 字段,测量旧版构建器的响应,并报告是否满足 **溢出先决条件**:是否这个 DC 的域足够长,以至于一个 **未打补丁的** DC 会崩溃。 它 **不**: - 发送溢出或崩溃任何东西,并且 - 确定 **补丁状态**。打补丁的 DC 采用 *相同的* 代码路径并拒绝过长的写入,因此您无法通过正常命名的 DC 在线路上区分打补丁的和非打补丁的。 了解您的哪些 DC 实际上已经打补丁需要通过凭证(管理员)版本检查整个舰队。这正是 ADscan 在一次活动中自动化的那种类型的事情(见下文)。 ## 几乎每个实际的 DC 为什么都是安全的 唯一到达缓冲区的攻击者控制的字节来自 CLDAP `User` 过滤器,限制在 **130 个宽字符**,远远短于它们自己的 528 字节缓冲区。将光标带到 cookie 的字节是 **服务器自己的名称**,攻击者无法控制。默认命名的 DC(`corp.local`)不能被崩溃。 这就是为什么微软将其评为 **"Exploitation Less Likely."** 在实验室中,崩溃 Windows Server 2016(具有 7 个字符的主机名)所需的最小 DNS 域长度为 **98 个字符**。 ## 使用方法 使用 [uv](https://docs.astral.sh/uv/),零配置。依赖项声明在行内(PEP 723),因此它在临时环境中自动安装 `rich`: ``` uv run longlogon.py ``` 或者使用 pip: ``` pip install rich python3 longlogon.py ``` DNS 域必须与 DC 服务的匹配。这不是秘密:rootDSE、反向 DNS 和 CLDAP 本身都揭示了它。输出是一个先决条件判决以及每个字段的缓冲区填充数学。 **NtVer 路由很重要**。有漏洞的旧版 `BuildSamLogonResponse` 只有在 `(NtVer & 0xc) == 0` 和 `(NtVer & 0x2) != 0` 时才能到达。发送 `NtVer=0x16` 或 `0x06` 设置位 2(`0x4`)的公共漏洞利用尝试击中了有界限安全的 `BuildSamLogonResponseEx`,因此它们永远不会触发该错误。LongLogon 使用 `0x02`。 ## 受影响的构建 未打补丁的 Windows Server 域控制器,2012 R2 到 2025。首次打补丁的构建: | Windows Server | 首次打补丁的构建 | | :--- | :--- | | 2016 | `10.0.14393.9140` | | 2019 | `10.0.17763.8755` | | 2022 | `10.0.20348.5074` | | 2022 23H2 | `10.0.25398.2330` | | 2025 | `10.0.26100.32772` | ## 负责任的使用 仅限于 **授权** 的安全研究和防御验证。此存储库发货的是 **非破坏性先决条件检查器**,而不是武器化的崩溃器,用于积极利用、可蠕动的 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 · 未认证 · 预认证 · 演示
标签:Binary Verification, Buffer Overflow, CLDAP, CVE-2026-41089, CVE Checker, CVSS Score, CWE-121, Domain Controller, Exploit, LongLogon, MIT License, MSRC, Netlogon, Non-Destructive Testing, NVD, PoC Analysis, Security Advisory, Security Research, Security Tool, Security Vulnerability, Unauthenticated Access, UV Runtime, Vulnerability Assessment, 逆向工具