Milan0day 2026 演示详解
在 Windows 内核安全攻防 领域,BYOVD(Bring Your Own Vulnerable Driver) 技术近年来已成为攻击者绕过内核保护、实现本地权限提升的重要手段。2026 年 Milan0day 大会上,安全研究员 Rossario Matteo Grammatico(zer0matt)展示了如何利用一款合法签名的驱动程序 ThrottleStop.sys(CVE-2025-7771),从用户模式(Ring 3)直接获得内核模式(Ring 0)执行权限。
漏洞核心:未验证的 MmMapIoSpace 调用
ThrottleStop.sys 是 TechPowerUp 公司开发的 ThrottleStop 工具附带的合法驱动程序,主要用于监控和解决 CPU 节流问题。该驱动被签名且被 Windows 信任,但存在严重安全缺陷:驱动程序通过两个 IOCTL 接口暴露了物理内存的任意读写能力,核心问题是它直接调用 MmMapIoSpace 函数时没有对传入的物理地址进行有效验证。这使得任何用户模式进程都能将内核物理内存映射到自身地址空间,从而实现对内核内存的直接读写。
CVE-2025-7771 的 CVSS 分数高达 8.7,被评为高危漏洞。该漏洞影响 ThrottleStop.sys 3.0.0.0 及可能的其他版本。
PoC 攻击流程详解
zer0matt 的演示 PoC 展示了完整的利用链,步骤清晰且高效:
1. 定位内核函数地址
通过用户模式下可直接访问的 ntdll.dll,获取 NtAddAtom 函数的内核虚拟地址。这是一个巧妙的选择,因为 NtAddAtom 在用户态和内核态的地址关系相对容易处理。
2. 虚拟地址转物理地址
将内核虚拟地址转换为对应的物理地址,为后续映射做准备。
3. 通过 IOCTL 覆写内核代码
使用 IOCTL 码 0x8000649C(写操作),将 NtAddAtom 函数开头的指令替换为精心构造的 shellcode。
通过这种方式,攻击者可以在不加载任何未签名驱动的情况下,临时获得 Ring 0 执行能力。演示中进一步利用该能力调用内核函数(如 PsLookupProcessByProcessId 获取 EPROCESS 指针、PsTerminateProcess 终止 AV/EDR 进程),实现“AV Killer”效果,并在操作后恢复原始字节以规避 PatchGuard 检测。

|