CVE-2022-3699
Lenovo Diagnostics Driver 的不正确访问控制允许低权限用户发布设备 IOCTL 以任意物理/虚拟内存读取/写入。
感谢 ch3rn0byl 提供的帮助(我完全 100% 撕掉了他的两个函数)。
解释
IOCTL 0x222000:
-
rdmsr
IOCTL 0x222008/0x22200C:
-
HalGet/SetBusData
IOCTL 0x222010:
-
通过 MmMapIoSpace 读取
IOCTL 0x222014:
-
通过 MmMapIoSpace 写入
-
IOC 将输入此披露中提供的指针中的值复制到映射的物理内存中
这个怎么准:
为了解决 MmPteBase 和其他先决条件,通过在物理内存范围0x1000 - 0x10000
中找到 8 个零字节来物理“交换”空间。
该空间,虚拟内存将通过 IOCTL 0x222014 复制到该交换空间,并使用 IOC 0x22200 读回。
就像现在一样,所有虚拟读取都使用这个“交换”空间完成的。
这是进行虚拟学习的最佳方式吗?可能不是。
它有效吗?是的。
哦,注意你的偏移量——这是在禁止 HVCI 的 Windows 11 21H2 上测试的。
点击阅读原文-跳转至项目地址
https://github.com/alfarom256/CVE-2022-3699/
原文始发于微信公众号(Ots安全):Lenovo 诊断驱动程序 EoP - 任意 R/W
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论