Smarttfoxx/CVE-2026-29923
GitHub: Smarttfoxx/CVE-2026-29923
CVE-2026-29923是Windows系统pstrip64.sys内核驱动的本地权限提升漏洞,允许低权限用户通过映射任意物理内存修改内核结构获取SYSTEM权限。
Stars: 2 | Forks: 1
# CVE-2026-29923 - 通过任意物理内存映射的本地权限提升
pstrip64.sys 内核驱动程序暴露了一个 IOCTL,允许低权限用户将任意范围的物理内存映射到自己的虚拟地址空间中。此漏洞允许对系统物理 RAM 进行完全读写访问,使攻击者能够修改关键内核结构并将权限提升至 `NT AUTHORITY\SYSTEM`。
该驱动程序创建了设备对象 `\Device\PSTRIP64` 和可供用户访问的符号链接 `\DosDevices\PSTRIP64`。
漏洞存在于 `DispatchDeviceControl` 例程中,具体位于 IOCTL `0x80002008` 的处理程序。函数 `sub_11000` 打开一个指向 `\Device\PhysicalMemory` 的句柄,并通过 `ZwMapViewOfSection` 将其直接映射到调用进程的地址空间。它从输入缓冲区接受物理地址和长度,通过 HalTranslateBusAddress 进行转换,并使用 ZwCurrentProcess() 进行映射。攻击者可以扫描物理内存以找到其自身进程的 `_EPROCESS` 结构,并覆盖安全令牌为 System,或者直接修补内核代码。
类似漏洞首次出现在早期版本应用的 `pstrip.sys` 文件的 `CVE-2008-5725` 中,其中 PowerStrip 驱动程序使用 IOCTL `0x80002008` 允许攻击者传递目标地址(如 HalDispatchTable)和要写入该地址的数据。这次在最新版本中发现的漏洞明确允许用户将任何物理内存映射到自己的进程中。攻击者映射物理 RAM,扫描自己的进程结构,并手动编辑其令牌以获取管理员权限。直接操作内存。
## 漏洞代码逻辑
```
RtlInitUnicodeString(&DestinationString, L"\\Device\\PhysicalMemory");
// ...
result = ZwOpenSection(&SectionHandle, 0xF001Fu, &ObjectAttributes);
// ...
v8 = ZwMapViewOfSection(..., (HANDLE)0xFFFFFFFFFFFFFFFFLL, ...);
```
## 漏洞利用
已开发了一个 PoC 来演示权限提升,但不会公开提供任何代码以避免滥用。
1. PoC 以 2MB 块为单位遍历物理内存。
2. 它通过验证 PID、ImageFileName 和 Token 指针有效性来扫描 _EPROCESS 结构。
3. 找到 "System" 进程和攻击者进程的 _EPROCESS 后,该工具将 System Token 值复制到攻击者的 Token 字段。
4. 攻击者的进程获得 SYSTEM 权限。

## 漏洞利用
已开发了一个 PoC 来演示权限提升,但不会公开提供任何代码以避免滥用。
1. PoC 以 2MB 块为单位遍历物理内存。
2. 它通过验证 PID、ImageFileName 和 Token 指针有效性来扫描 _EPROCESS 结构。
3. 找到 "System" 进程和攻击者进程的 _EPROCESS 后,该工具将 System Token 值复制到攻击者的 Token 字段。
4. 攻击者的进程获得 SYSTEM 权限。

标签:Arbitrary Memory Read/Write, Bro, Conpot, CVE-2026-29923, EPROCESS结构, HalTranslateBusAddress, IOCTL漏洞, Kernel Driver, NSM, NT AUTHORITY\SYSTEM, PhysicalMemory, Privilege Escalation, pstrip64.sys, Ring0, Token窃取, Web报告查看器, Windows内核驱动, Windows安全, ZwMapViewOfSection, 内核模式, 内核漏洞, 本地权限提升, 物理内存映射, 驱动程序漏洞