研究人员在微软office中发现一个0 day安全漏洞——Follina,漏洞CVE编号为CVE-2022-30190。漏洞存在于微软支持诊断工具(Microsoft Support Diagnostic Tool,MSDT)中,当MSDT使用word等应用从URL协议调用时会触发漏洞。攻击者利用该漏洞可以以调用应用的权限运行任意代码,然后安装应用程序、查看、修改和删除数据,创建新的用户账户等。
0 day漏洞
图1 恶意word文档
5月27日,安全研究人员nao_sec意外发现一个位于Belarus的IP地址向Virus Total提交的恶意word文档,该文件滥用了微软的MSDT(ms-msdt)方案。该恶意文档使用word的外部链接来加载HTML,然后使用ms-msdt方案来执行PowerShell代码。
图2 Follina漏洞利用中混淆的payload代码
安全研究人员Kevin Beaumont解码了混淆的代码,发现这是一个微软Word使用MSDT执行的命令行字符串,即使在宏脚本被禁用的情况下也可以执行。
图3 Follina payload
以上PowerShell脚本会从压缩的RAR文件中提出一个base64编码的文件,然后执行。目前该文件已经无法访问,所以不清楚攻击活动中执行了哪些恶意活动。
Beaumont 称恶意Word文档使用了远程模板特征从远程服务器取回HTML文件。然后HTML代码使用微软的MS-MSDT URI协议方案来加载额外代码,并执行PowerShell代码。
微软Office保护视图特征旨在对来自潜在不安全位置的文件进行告警,通过激活来警告用户是恶意文档的可能性。但通过将文件修改为RTF格式就可以进行绕过。因此,混淆的代码可以在不打开文档的情况下运行,比如通过IE的预览窗口。
0 day漏洞复现
目前有多个安全研究人员已经在多个微软office版本中复现了该漏洞利用。Huntress研究人员发现HTML文档设置的域名xmlformats[.]com已经无法加载,同时确认RTF文档可以在无需用户交互的情况下实现payload的传递。
图4 Office Follina 0点击漏洞利用
根据payload的类型,攻击者可以利用漏洞利用来访问受害者网络的远程位置。攻击者可以收集受害者Windows机器的密码哈希用于之后的攻击活动。
图5 Follina漏洞利用帮助收集Windows密码哈希值
难以检测
Beaumont称恶意代码是从Word文档的远程模板加载的,因为本身不包含恶意代码,只是引用了恶意代码,因此不会被标记为威胁。要检测该攻击,需要对系统进程进行监控,因为Follina payload会创建一个msdt.exe的子进程。
漏洞影响和漏洞时间轴
研究人员已经确认,截止目前该漏洞影响Office 2013、2016、Office Pro Plus和Office 2021版本。
研究人员早在4月就将该漏洞报告给了微软,但微软称这并非是一个安全相关的问题。
图6 微软称Follina并非一个安全相关的问题
4月12日,微软关闭了该漏洞报告,并称没有远程代码执行的安全影响。
直到5月30日,微软才对该漏洞分配了CVE编号,但目前没有关于该漏洞的补丁发布情况。
更多关键0 day漏洞复现的技术细节参见:https://www.huntress.com/blog/microsoft-office-remote-code-execution-follina-msdt-bug
本文翻译自:https://www.horizon3.ai/vmware-authentication-bypass-vulnerability-cve-2022-22972-technical-deep-dive/如若转载,请注明原文地址