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
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论