
安全研究人员正日益聚焦通过两大Windows攻击面实现提权攻击:内核驱动与命名管道。这些攻击载体利用了用户模式与内核模式间基础信任边界的弱点,使攻击者能够从标准用户权限提升至SYSTEM级访问。
内核驱动攻击面
内核驱动由于IOCTL(输入/输出控制)处理例程中的输入验证不足,构成了显著的本地提权(LPE)攻击面。

在使用METHOD_BUFFERED模式的WDM驱动中,I/O管理器会分配内核缓冲区,但未在内核处理前验证用户提供的数据。这一关键缺陷使攻击者能够构造包含指针和长度值的恶意IOCTL请求,内核将在其地址空间内解析这些值。
完整的利用链包含三个关键阶段:
| 阶段 | 描述 |
|---|---|
| 1. 设备发现 | 识别用户模式下可访问的暴露设备名称 |
| 2. IOCTL分析 | 使用IDA Pro等逆向工程工具分析IOCTL分发例程 |
| 3. 漏洞识别 | 定位可被利用的输入验证缺陷 |
通过将用户输入直接映射到MmMapIoSpace等危险内核函数,攻击者可建立任意读写原语。这些原语支持令牌窃取攻击——读取SYSTEM进程令牌并将其写入当前进程的EPROCESS结构,最终实现权限提升。

命名管道攻击面
命名管道作为高权限SYSTEM服务常用的进程间通信机制,同样构成高危攻击载体。与内核驱动不同,命名管道通过基于消息的协议而非直接内存访问运行,但服务应用程序往往对其存在隐式信任。

攻击方法包括:识别ACL(访问控制列表)权限过度开放(允许"Everyone"读写)的SYSTEM所属命名管道,再通过静态分析逆向工程管道协议。研究人员已发现多个服务未实施充分授权检查便处理请求的案例,使得标准用户能触发HKLM注册表修改等管理功能。
典型案例涉及某商业杀毒软件,其安全防护不足的命名管道导致未授权注册表操作。

攻击者可借此配置映像文件执行选项(IFEO),在SYSTEM上下文中执行任意代码。
防御建议
安全团队应当:
- 审计第三方内核驱动的过度IOCTL权限
- 在内核处理前验证所有用户输入
- 命名管道实现必须对敏感操作执行显式权限检查
- 实施严格的协议验证
Hackyboiz研究显示,企业需清点暴露的命名管道并禁用ACL权限过度的实例。

随着Windows环境持续面临复杂攻击,理解这些提权载体对防御企业系统免受本地权限提升攻击至关重要。
参考来源:
Windows LPE Vulnerabilities via Kernel Drivers and Named Pipes Allows Privilege Escalation
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



