首页
社区
课程
招聘
[求助] Win10/11 环境下“任意地址写负数”原语的提权利用思路探讨
发表于: 22小时前 337

[求助] Win10/11 环境下“任意地址写负数”原语的提权利用思路探讨

22小时前
337

假设我们拥有一个漏洞原语:可以向内核任意地址写入一个负数 DWORD(例如固定写入 -1 或 -2)。

从利用角度来看,这是一个受限的任意地址写原语(Limited Arbitrary Write Primitive)——它既不能写入完全可控的值,也不具备任意地址读的能力,仅能写入固定的负值。在现代 Windows 10/11 的纵深防御体系(SMEP、SMAP、KASLR、kCFG 等)下,如何将这个受限原语转化为完整的提权利用链,是我目前主要的研究困惑。

已尝试的方向及遇到的问题

I/O Ring 读写原语扩展(Win11 22H2+)

我参考了近年的公开思路,尝试通过修改 _IORING_OBJECT 中的 RegBuffers 等字段来获得更强大的读写能力。但实践中遇到了两个棘手问题:

在 Windows x64 下,地址 0x80000000 及以上似乎会被强制进行符号扩展(导致 Windbg 无法正常查看,VirtualAlloc 也无法申请此类地址),这使得我无法精确构造所需的缓冲区指针。

由于我只能写入固定的 4 字节负值,修改 RegBuffersCount 的低字节时,总会不可避免地破坏相邻的 CompletionUserEvent 字段,最终触发蓝屏。

寻找其他内核对象 / 结构体字段

我也考虑过寻找其他内核对象,通过篡改其“用于限制读写范围”的字段(例如长度、大小、指针偏移等)来扩大原语能力,从而实现任意地址读写。但目前尚未找到合适的目标。

求助方向

希望各位大佬能指点一下:

在仅具备“任意地址写固定负数”的前提下,是否有其他更稳定的利用路径(不依赖 I/O Ring)?

或者,我是否忽略了 I/O Ring 利用中的某些细节(比如如何规避符号扩展和字段破坏问题)?

有没有其他内核全局变量或对象字段,将其修改为 -1 就能产生可利用的副作用(如引用计数溢出、长度校验绕过等)?

先行谢过!任何思路或提示都对我很有帮助。


[招生]科锐逆向工程师培训(2026年7月3日实地,远程教学同时开班, 第56期)!

收藏
免费 0
打赏
分享
最新回复 (1)
雪    币: 187
活跃值: (3701)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
你把漏洞驱动发出来,过几周看看github有没有大佬开源利用代码
22小时前
0
游客
登录 | 注册 方可回帖
返回