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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2026-29923 — CVE-2026-29923 的概念验证,涉及 pstrip64.sys 内核驱动程序中的本地权限提升。演示了通过 IOCTL 利用物理内存读写原语,在 Windows 上从未授权用户提升至 NT AUTHORITY\SYSTEM。 | Kitploit
工具/GitHubGitHub/mein-0/cve-2026-29923
权限提升漏洞分析漏洞利用渗透测试学习与教育二进制利用
GitHubmein-0/cve-2026-29923

cve-2026-29923

CVE-2026-29923 的概念验证,涉及 pstrip64.sys 内核驱动程序中的本地权限提升。演示了通过 IOCTL 利用物理内存读写原语,在 Windows 上从未授权用户提升至 NT AUTHORITY\SYSTEM。

查看仓库
23个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-29923 — pstrip64.sys 本地权限提升

这是一个针对 CVE-2026-29923 的最小概念验证(PoC)。该漏洞位于 pstrip64.sys 内核驱动(EnTech Taiwan PowerStrip ≤ 3.90.736)中,允许无特权的用户态进程提升至 NT AUTHORITY\SYSTEM。


漏洞

pstrip64.sys 暴露了一个 IOCTL(0x80002008),该 IOCTL 接受用户提供的物理地址,并通过打开 \Device\PhysicalMemory 以及以当前进程句柄调用 ZwMapViewOfSection,将其直接映射到调用进程的虚拟地址空间中。此过程中没有任何权限检查,除了 HalTranslateBusAddress 强制执行的地址验证外也没有任何地址校验,并且符号链接 \\.\PSTRIP64 上不存在访问控制。

最终结果是从无特权进程获得不受限制的物理内存读写原语。


利用

在拥有任意物理内存读/写能力后,该利用按以下四个步骤进行。

1. 扫描 EPROCESS 结构

物理内存以 2 MB 块为单位进行遍历。每个块都会扫描内核池标记 Proc(0x636F7250),该标记标识包含进程 _EPROCESS 结构的池分配。在信任 PID 之前,候选命中会通过以下三种轻量级启发式规则进行验证:

  • PriorityClass == 0x2 — 所有存活进程都以 Normal 优先级运行
  • ProcessLock == 0x0 — 稳定进程的该锁字段应为空
  • ImageFileName[0] 是可打印 ASCII — 垃圾内存很少满足此条件

2. 定位两个令牌指针

需要两个目标:

  • 我们自己进程 _EPROCESS 中 Token 字段的物理地址
  • 系统进程(PID 4)_EPROCESS 中存储的令牌值

3. 覆盖我们的令牌

包含我们 Token 字段的 4 KB 页面被映射,并将该字段覆盖为系统令牌值。从此刻起,Windows 内核会将我们的进程视为 NT AUTHORITY\SYSTEM。

4. 派生一个 Shell

通过 CreateProcessA 启动 cmd.exe。由于子进程继承父进程的令牌,生成的 Shell 将以 SYSTEM 身份运行。


MMIO 注意事项

在 x86 系统上,3 GB – 4 GB 物理地址窗口保留给 MMIO。尝试映射该范围内的页面会导致驱动返回错误 74(HalTranslateBusAddress 失败)。扫描会跳过此窗口,并从 0x100000000 继续,以捕获 Windows 放置在 4 GB 标记之上的内核结构。


32 位要求

该驱动的映射处理程序将返回的虚拟地址写入 DWORD 字段(LowPart),从而将 64 位虚拟地址截断为 32 位。64 位构建会收到损坏的指针并立即崩溃。请按 x86 编译。


受影响软件

软件版本
EnTech Taiwan PowerStrip≤ 3.90.736

驱动哈希(SHA-256):

root@kitploit:~
ab01485bb7c8bc1a9c86096eeea6d31d8fad557bf4d44072b46373d2203faa6e

EPROCESS 偏移量

硬编码偏移针对的是 Windows 10 22H2 x64。其他版本需要更新的值——请使用 WinDbg 中的 dt nt!_EPROCESS 确认。


构建

打开 Visual Studio x86 开发者命令提示符并运行:

root@kitploit:~
cl /EHsc /O2 exploit.c /Fe:poc.exe

或者在 Visual Studio 中将平台目标设置为 x86,并以 Release 模式构建。除 Windows SDK 外,该二进制无需任何外部依赖。


使用方法

首先加载 pstrip64.sys(加载驱动需要管理员权限,但加载后运行利用程序本身不需要),然后:

root@kitploit:~
poc.exe

将打开一个新的 cmd.exe 窗口,并以 NT AUTHORITY\SYSTEM 身份运行。


缓解措施

阻止驱动加载(首选)

  • 将上述驱动哈希添加到组织的阻止列表中
  • 通过 WDAC 启用 Microsoft 易受攻击驱动程序阻止列表
  • 启用虚拟机监控程序保护的代码完整性 (HVCI)

检测正在进行的利用行为

  • 对未知驱动二进制文件的新内核模式服务安装发出警报
  • 监视低/中完整性级别的进程派生 SYSTEM 级子进程
  • 标记任何在合法身份验证事件之外令牌更改为 NT AUTHORITY\SYSTEM 的进程

免责声明

此代码仅用于教育和防御性研究目的。请仅在您拥有或已获得明确书面许可进行测试的系统上使用。作者不对任何滥用行为负责。


参考

  • Microsoft 易受攻击驱动程序阻止列表
  • WDAC 概述
  • Windows EPROCESS 内部结构
  • HalTranslateBusAddress — MSDN
  • ZwMapViewOfSection — MSDN
下载工具
字段偏移
PriorityClass0x5B7
ProcessLock0x438
UniqueProcessId0x440
ImageFileName0x5A8
Token0x4B8