新洞速递|CVE-2021-34484|POC
前言
说了两位编辑不给力,还得让我点个名儿:说了还是不给力,得再通报一下,大家可以在后台好好催催。作为脚本小子的我的,每天按照
1637071754858
概述
新的 Windows 0day 权限提升漏洞,影响所有 Windows 版本。
8 月,微软发布了 CVE-2021-34484 Windows 用户配置服务权限提升漏洞的安全补丁。补丁发布后,安全研究人员 Naceri 发现该补丁并没有完全修复该漏洞,可以使用新的漏洞利进行绕过。
细节
技术上,在先前的报告CVE-2021-34484中。我描述了一个bug,您可以滥用用户配置文件服务来创建第二个连接。 但正如我从ZDI advisory和Microsoft修补程序中看到的,该漏洞被视为任意目录删除漏洞。 微软没有修补报告中提供的内容,而是修补了PoC的影响。由于我以前编写的PoC非常糟糕,它只能复制一个目录删除错误。 根据快速补丁分析,他们没有对代码做任何重大更改
1637076596987他们只删除了删除目录的CDirectoryRemover析构函数。不幸的是,这还不足以修复这个bug。 为什么? 只是因为锁定机制仍然无法正确锁定目录。因此,我们可以滥用服务在任意位置创建第二个目录连接
1637076596987上面的代码片段显示了锁定机制是如何工作的。 首先,服务创建目标目录并调用PathchreMoveFileSpec以获取父目录的字符串,接下来它将调用CreateFileW,并在所需的访问和允许的共享中使用GENERIC_READ和FILE_SHARE_READ。最后,该服务通过调用GetFileInformationByHandleEx确保父目录不是连接。 这通常应该能够修复任何与连接相关的bug,但它不能。 这段代码只期望我们不能控制两个父目录,在我们的情况下,我们可以 在CVE-2021-26426中,我选择了“C:UsersTempDocumentsMy Pictures”连接创建作为目标。Microsoft修补程序在这种情况下是正确的,我们可以清楚地看到,由于用户配置文件服务引入的锁定,用户无法控制C:UsersTemp但不是在“C:UsersTempAppDataLocalHistory”的情况下,这里我们控制他们的父文件夹C:UsersTempAppData,因为它没有被服务锁定。显然,我们可以将AppData文件夹作为其他地方的连接,这样CreateFileW和GetFileInformationByHandleEx检查都会成功。 完成后,我们将再次出现任意连接创建错误! PoC已经在windows 11上进行了测试,并于2021年10月发布了补丁。
复现
POC地址
https://github.com/klinix5/ProfSvcLPE
截图来自网络
img
相关文章
- 【C++11】 让多线程开发变得简单--原子变量
- Mysql - date、datetime、timestamp 的区别
- 【C++11】 让多线程开发变得简单--异步操作
- 欧拉捐赠:基础软件发展跃入产业共建模式
- 【C++11】 C++11中不常用特性
- 蹚入工业AI”深水区“,腾讯如何“对症下药”?
- 【软件造价咨询】信息化项目投标流程及注意事项
- 斐波那契数列(剑指offer 10-I)
- C++14新增特性汇总
- 远程debug调试,小伙伴们都很惊讶!上
- Spring事务传播机制面试题
- 远程debug调试,小伙伴们都很惊讶!下
- C++中 =defaule 和 =delete 使用
- 信息化、数字化、智能化到底有什么区别?
- 【C++11】 改进我们的设计模式---单例
- 清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+ 上
- 【C++11】 改进我们的设计模式---观察者模式
- 清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+ 中
- 碎片粘合:Tasking DD 启发的思考
- 清华学姐熬了一个月肝出这份32W字Linux知识手册,在 Github标星31K+ 下