Lenovo 诊断驱动程序 EoP - 任意 R/W
2022-11-11 10:15:50 Author: Ots安全(查看原文) 阅读量:24 收藏

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/


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjYyMzkwOA==&mid=2247495986&idx=3&sn=a6e58d2db42e8ca6362bc241137b26d8&chksm=9badb879acda316f5826976af55904ec748104c289b00b7bebffcda529a73c4a69189c515f88#rd
如有侵权请联系:admin#unsafe.sh