freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

CVE-2023-21752 Windows 备份服务漏洞分析
绿盟科技 2023-03-29 13:56:22 225858
所属地 北京

简介

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

漏洞分析

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

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

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

漏洞验证

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

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

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

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


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

漏洞修复

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

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

而在 CheckDevicePathIsWritable 中。

可以看到创建文件依然存在,但只是 dwFlagsAndAttributes 属性变为 0x4000080 ,查询文档后得知加入了 FILE_FLAG_DELETE_ON_CLOSE 属性,即:该文件将在其所有句柄关闭后立即删除,其中包括指定的句柄和任何其他打开或重复的句柄。这就意味着,该补丁将创建和删除文件操作合并为一步,从而消除了条件竞争的问题。

参考链接

https://github.com/Wh04m1001/CVE-2023-21752
https://paper.seebug.org/2045/

# 漏洞分析 # 蓝军
本文为 绿盟科技 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
M01N Team
绿盟科技 LV.10
绿盟科技官方账号
  • 1639 文章数
  • 336 关注者
《高级威胁研究报告(2025版)》发布
2025-04-03
《网络安全2025:冲刺“十四五”》发布
2025-04-01
《2025网络安全趋势报告》发布
2025-04-01
文章目录