CVE-2021-40444分析报告

admin 2021年11月17日20:31:12CVE-2021-40444分析报告已关闭评论120 views字数 3856阅读12分51秒阅读模式

1 漏洞概述

2021 年 8 月 21 日,MSTIC 观察到一名 Mandiant 员工在社交媒体上发布的帖子,该员工具有跟踪 Cobalt Strike Beacon 基础设施的经验。所写文章重点介绍了一个于 2021 年 8 月 19 日上传到 VirusTotal的 Microsoft Word 文档(SHA-256:3bddb2e1a85a9e06b9f9021ad301fdcde33e197225ae1676b8c6d0b416193ecf)。

MSTIC 对样本进行了分析,确定了文档中的异常对象,认为可能是未公开的漏洞。MSTIC 立即与 Microsoft 安全响应中心联系,并开始进行补丁工作。在此过程中,MSTIC 与 Mandiant 的原始发现者合作,减少对该问题的公开讨论,并避免在可用补丁之前引起威胁发起者对此问题的关注。Mandiant 与 MSTIC 合作并进行了逆向评估,并将他们的发现提交给 MSRC(Microsoft Security Response Center)

2021 年 9 月 7 日,Microsoft 发布了针对 CVE-2021-40444 的安全公告,其中包含部分解决方法。与此同时,第三方研究人员向微软报告了来自 Mandiant 最初共享的同一活动的样本。该样本于 9 月 8 日公开披露,并且观察到在 24 小时内的漏洞攻击有所增加。

CVE-2021-40444分析报告

CVE-2021-40444的利用链如下:首先请求目标链接下载一个cab临时文件,通过目录遍历漏洞保存inf文件在固定路径,然后通过url scheme(通过 url 可以启动某一个本地的应用程序)执行cpl文件的方式执行恶意inf文件。

2 漏洞复现

2.1 漏洞原理

CVE-2021-40444分析报告

  1. urlmon!DeleteExtractedFiles函数会删除下载的inf文件,如何规避?
  2. urlmon!RemoveDirectoryA函数会删除缓存inf文件的文件夹,如何规避?

mshtml下载cab临时文件后,Urlmon!GetSupportedInstallScopesFromFile函数中对cab包进行处理。在GetSupportedInstallScopesFromFile中先是通过Urlmon!GetExtnAndBaseFileName判断传入文件的后缀名,如果是“.cab”则返回2。之后通过urlmon!CreateUniqueCabTempDir为cab创建临时目录。

CVE-2021-40444分析报告

CVE-2021-40444分析报告

临时目录创建成功后,通过urlmon!ExtractInfFile来解压cab文件,提取其中的inf文件。在urlmon!ExtractInfFile函数中,urlmon!GetExtnAndBaseFileName函数判断提取是否为inf文件,再通过 urlmon!ExtractOneFile函数解压文件。

CVE-2021-40444分析报告

CVE-2021-40444分析报告

在urlmon!ExtractOneFile函数中,通过urlmon!Extract解压cab文件,其中传递给urlmon!Extract函数的参数为“../championship.inf”,也是cab文件中inf的构造的文件名称。其中urlmon!Extract函数会调用cabinet.dll对cab文件进行解压写入内存。

CVE-2021-40444分析报告

CVE-2021-40444分析报告

在调用cabinet.dll将inf文件写入内存时,攻击者伪造inf文件尺寸为0x415c00,远远大于真实inf文件尺寸,这就导致在调用cabinet!FDIGetFile函数时触发异常,不清理针对该文件在内存中的各种信息。

CVE-2021-40444分析报告

CVE-2021-40444分析报告

CVE-2021-40444分析报告

CVE-2021-40444分析报告

处理inf文件后,cabinet模块回调urlmon!fdiNotifyExtract函数,通过urlmon!catDirAndFile函数为inf文件生成路径,通过urlmon!Win32Open函数创建文件。

CVE-2021-40444分析报告

~~在urlmon!catDirAndFile函数生成文件路径时,没有对文件名进行验证,导致目录遍历,实际生成的为C:UserADMIN1AppDataLocalTempCabFB8D../championship.inf。这就导致最后创建的文件驻留为C:UserADMIN1AppDataLocalTempchampionship.inf。因此规避了urlmon!RemoveDirectoryA函数删除临时目录的风险。

CVE-2021-40444分析报告

urlmon在处理cab文件后,会将缓存目录与文件进行删除。首先通过urlmon!DeleteExtractedFiles函数删除缓存文件,但是由于在调用cabinet模块时异常,内存中针对inf文件的信息没有清理,导致没有执行DeleteFileA函数,因此保留了inf文件,实现了文件驻留

CVE-2021-40444分析报告

恶意的javascript通过url scheme机制侧加载恶意inf文件。其中,在mshtml!ShellExecURL函数中,可以直接通过shell32!ShellExecuteW执行inf文件。

CVE-2021-40444分析报告

2.2 Urlmon!catDirAndFile补丁

2021年9月15日微软发布了月度补丁,修补了该漏洞。主要是修补了urlmon.dll中catDirAndFile函数目录遍历漏洞,增加了字符替换,将“/”替换成“”,同时利用PathIsPrefixA判断下载的文件路径是否和生成的缓存路径一致,不一致则无法创建inf文件。

CVE-2021-40444分析报告

CVE-2021-40444分析报告

CVE-2021-40444分析报告

2.3 mshtml!ShellExecURL 补丁

在mshtml!ShellExecURL函数中,ShellExecuteW函数执行前增加了一些的检查,利用mshtml!IsValidSchemeName函数对执行的路径进行检查,保证只有字母开头,十进制和ascii字符文件路径才能执行,使“.cpl”这类路径无法执行了。

CVE-2021-40444分析报告

CVE-2021-40444分析报告

3 其他

3.1 变种

目前的变种趋向于利用十六进制和字符串进行防检测。

CVE-2021-40444分析报告

3.2 最新事件

2021年9月中旬,卡巴斯基观察到攻击者试图利用 CVE-2021-40444 漏洞攻击研发部门、能源部门和大型工业部门、银行和医疗技术开发部门以及电信和 IT 部门的公司。

CVE-2021-40444分析报告

2021年9月22日,Malwarebytes安全研究员发现黑客利用CVE-0-40444漏洞攻击俄罗斯政府,包括内政部和国家火箭中心。研究人员指出,针对俄罗斯实体发起网络犯罪的证据很少见。考虑到攻击者的目标是该国的太空/火箭开发商,有可能是国家支持的APT组织实施了这些网络攻击,其中恶意文档访问http://trendparlye[.]com/wiki0509[.]html加载恶意js代码,并下载http://trendparlye[.]com/task[.]cab,最后加载小型载荷task.inf(658efec066088e3f4558b9f2b3a57604),最后载荷为topbar.png (0cf9f934bfa992a48e21bf96852f174a),其中最后载荷c2为https://ilivesuite[.]com/wp-includes/kjiusg.php、https://dubbingking[.]com/wp-content/plugins/elementor/kjiusg.php、https://ricardodelahoz[.]com/wp-content/plugins/LayerSlider/z98unxk.php。

CVE-2021-40444分析报告

3.4 已发现的相关恶意文档

84674acffba5101c8ac518019a9afe2a78a675ef3525a44dceddeed8a0092c69

2e068beb40f8901b698d4fc2f5766564c8324d5ba95fb0a0ffa841f5da5c7e72

199b9e9a7533431731fbb08ff19d437de1de6533f3ebbffc1e13eeffaa4fd455
34ec4f2defd549b7c9a026b5498d09f5595ffe1396fe56509743820f20c610be
3bddb2e1a85a9e06b9f9021ad301fdcde33e197225ae1676b8c6d0b416193ecf
5b85dbe49b8bc1e65e01414a0508329dc41dc13c92c08a4f14c71e3044b06185
5e6e8883173603a0b3811302ee14a14c4f5708f1b756f2906a0749dd2fd1cfa0
938545f7bbe40738908a95da8cdeabb2a11ce2ca36b0f6a74deda9378d380a52
a5f55361eff96ff070818640d417d2c822f9ae1cdd7e8fa0db943f37f6494db9
cb85def3a47325722d0f87adb1975f6536de09095c1af6229bdb12b7fc32423b
d0e1f97dbe2d0af9342e64d460527b088d85f96d38b1d1d4aa610c0987dca745
e48f134c321fdc31a646e747993b1592f576519d7ebbc0ae9b0eac7337eaf422

相关推荐: vulnhub-hackeme2

靶机描述 'hackme2' is a medium difficulty level box. This is the second part of the hackme series where more controls are in place do …

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年11月17日20:31:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2021-40444分析报告http://cn-sec.com/archives/632710.html