zl程序教程

您现在的位置是:首页 >  其他

当前栏目

新洞速递|CVE-2021-34484|POC

2023-03-15 22:05:19 时间

前言

说了两位编辑不给力,还得让我点个名儿:说了还是不给力,得再通报一下,大家可以在后台好好催催。作为脚本小子的我的,每天按照

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