CVE-2023-21752 Windows 备份服务漏洞分析
2023-3-22 18:1:27 Author: M01N Team(查看原文) 阅读量:28 收藏

简介

Windows备份服务为计算机提供备份和还原的功能。它依赖于Microsoft Windows备份引擎,提供了备份和还原的基本功能,例如备份系统镜像、文件、文件夹和应用程序数据等。CVE-2023-21752微软在2023年1月份修复的一个位于Windows备份服务中的任意文件删除漏洞。由于Windows备份引擎在文件夹权限验证时处理不当,攻击者可构造恶意代码实现任意文件删除,进而导致特权提升。

01:漏洞分析

sdengin2.dll是Microsoft Windows备份引擎的一个动态链接库文件,用于提供备份和还原功能的底层支持,漏洞出现在IsWritable函数中 :

函数功能比较简单,该函数功能为判断文件或者文件夹是否可写,如果openFlag=7,说明该路径是文件夹,则调用GetTempFileNameW创建一个临时文件,并且删除该文件,如果删除成功则说明该文件夹可写。其次如果是文件,则尝试打开文件后调用DeviceIoControl函数向文件发送一个请求,判断文件是否可写。如果返回成功,则说明该文件可写。  


这里我们可以可以去查看GetTempFileNameW的实现 

可以看到在最终的CreateFileW中,dwFlagsAndAttributes为0x80,也就是FILE_ATTRIBUTE_NORMAL,微软对其的解释是,该文件没有设置其他属性。此属性仅在单独使用时有效。也就是说,该临时文件并未被被锁住,我们可以在创建临时文件后,删除文件前的时间窗口内在其他线程内用机会锁锁住该临时文件,并且将其文件路径指到任意文件漏洞后释放机会锁,触发SxDeleteFile实现任意文件删除。所以这是一个由条件竞争引起的任意文件删除漏洞。 

02:漏洞验证

对IsWritable函数进行交叉引用,可以找到一个比较方便的触发路径,也就是CSdCommonImpl::QueryStorageDevice,

可以看出QueryStorageDevice是一个名为SdEngine2的com接口,而由于sdengin2.dll的特殊性,这个接口无法为我们直接使用,由于其本身是服务于SDRSVC备份服务,最终在sdrsvc.dll里面的CSdController::QueryDeviceProperties找到调用操作,函数中调用了ISdCommon2 COM接口中的方法,用于查询设备属性。

 而查看该函数的虚表,可知该函数为SdController中的ISdScheduledBackup com接口。

那么我们可以通过调用ISdScheduledBackup com接口,从而触发漏洞函数。  

这里我们通过ReadDirectoryChanges函数监控目标函数创建文件行为后创建机会锁锁住该文件,然后设置文件路径指向目标文件后释放机会锁,从而实现任意文件删除。  

03:漏洞修复

对sdengin2.dll进行diff,如下图所示。   

可以看到,在补丁更新后,原本的创建临时文件然后删除的流程被更改成了由CheckDevicePathIsWritable判断。  

而在CheckDevicePathIsWritable中。  

可以看到创建文件依然存在,但只是dwFlagsAndAttributes属性变为0x4000080,查询文档后得知加入了FILE_FLAG_DELETE_ON_CLOSE属性,即:该文件将在其所有句柄关闭后立即删除,其中包括指定的句柄和任何其他打开或重复的句柄。

这就意味着,该补丁将创建和删除文件操作合并为一步,从而消除了条件竞争的问题。

参考文献

[1] https://github.com/Wh04m1001/CVE-2023-21752 

[2] https://paper.seebug.org/2045/

绿盟科技天元实验室专注于新型实战化攻防对抗技术研究。

研究目标包括:漏洞利用技术、防御绕过技术、攻击隐匿技术、攻击持久化技术等蓝军技术,以及攻击技战术、攻击框架的研究。涵盖Web安全、终端安全、AD安全、云安全等多个技术领域的攻击技术研究,以及工业互联网、车联网等业务场景的攻击技术研究。通过研究攻击对抗技术,从攻击视角提供识别风险的方法和手段,为威胁对抗提供决策支撑。

M01N Team公众号

聚焦高级攻防对抗热点技术

绿盟科技蓝军技术研究战队

官方攻防交流群

网络安全一手资讯

攻防技术答疑解惑

扫码加好友即可拉群


文章来源: http://mp.weixin.qq.com/s?__biz=MzkyMTI0NjA3OA==&mid=2247491091&idx=1&sn=2e92be66d078b12bd4accecc94a1c267&chksm=c187de02f6f05714718695b4ba38c4d8a2b3a2f38cff218afdf39da87f489fe21aef06f5b8d6#rd
如有侵权请联系:admin#unsafe.sh