在刚刚结束的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. vmware虚拟机的克隆

    开发中需要用到多个虚拟机进行实验.重新安装过程又太繁琐,通过vmware虚拟机自带软件能够很好的快速克隆出完全相同的系统.下面会为大家讲解关于vmware虚拟机怎么克隆,我所用的VMware版本是11 ...

  2. Spring 学习一

    Spring工作机制及为什么要用? 1.springmvc将所有的请求都提交给DispacherServlet,他会委托应用系统的其他模块负责对请求进行真正的处理工作. 2.DispacherServ ...

  3. 使用CodeDOM动态编译一个字符串表达式

    由于程序需要,计算的表达式使用字符串传输,这样对运算造成了影响.在程序中直接执行这段表达式可以得到值, 但是使用字符串就没有办法运算了, 所以想到用CodeDOM将这段字符串拼接在代码中编译 类似st ...

  4. mybatis和spring整合

    参考文档: http://www.cnblogs.com/jyh317/p/3834142.html http://www.cnblogs.com/xdp-gacl/p/4271627.html ht ...

  5. webpack1 新手入门教程

    本文github仓库地址: https://github.com/Rynxiao/webpack-tutorial ,里面包括了本教程的所有代码. [如果你觉得这篇文章写得不错,麻烦给本仓库一颗星:- ...

  6. JavaScript创建对象的方法

    显示在浏览器中的控制台中. <script type="text/javascript"> //这个工厂方法返回一个新的"范围对象" functio ...

  7. 京东JOS API 接入使用笔记

    商户开设了京东店.淘宝店,最近打算使用京东物流,需要使用京东仓库(京东店的订单使用京仓发货,淘宝等其他店使用京东云仓)发货,所以得从自家的ERP与京东沧海(ECLP)API对接,实现收发存. 首先得在 ...

  8. Async(异步)(一)

    在谈到异步的概念时,先要了解几个概念了. 什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源. 而一个进程又是由多个线程所组成的 什么是线程? 线程 ...

  9. 50行代码实现的高性能动画定时器 raf-interval

    写在前面 raf-interval 是基于 window.requestAnimationFrame() 封装的定时器. Github: https://github.com/dntzhang/raf ...

  10. (转)Linux修改SSH登录欢迎语

    场景:感觉这样做挺个性的,做个记录! 1 Linux修改SSH的欢迎语 众所周知,Linux系统并没有像Windows一样自带远程桌面连接,虽然可以通过后期安装VNC之类的软件来弥补这个缺点,但用了L ...