20145330 《网络对抗》 Eternalblue(MS17-010)漏洞复现与S2-045漏洞的利用及修复

20145330 《网络对抗》 Eternalblue(MS17-010)漏洞利用工具实现Win 7系统入侵与S2-045漏洞的利用及修复

加分项目:

PC平台逆向破解:注入shellcode 和 Return-to-libc攻击实验html

http://www.cnblogs.com/20145330swx/p/6514359.htmlpython

摘要

本次免考项目分为两个模块:Eternalblue(MS17-010)漏洞利用工具实现Win 7系统入侵与S2-045漏洞的利用及修复git

Eternalblue(MS17-010)漏洞研究内容:

研究背景github

代码模块介绍web

漏洞代码分析面试

复现工具说明shell

测试环境准备apache

复现详细步骤windows

  • FuzzBunch环境设置设计模式

  • 用EternalBlue攻击入侵Windows 7

  • 使用Empire生成恶意DLL文件(Payload)/使用msfvenom生成DLL

  • 使用DoublePulsar向目标系统中注入Payload文件

漏洞防范方法

Apache Struts2(S2-045)漏洞研究内容:

漏洞介绍

漏洞范围分布图

影响范围

不受影响的版本

快速检测方式

漏洞危害

漏洞复现

临时修复方案

主动防护方案

MS17-010

研究背景

影子经纪人(Shadow Brokers)最近陆续曝光的NSA网络武器使人震惊,尽管这些工具是否出自国家级别黑客团队之手尚不清楚,但至少存在一个能够说明问题的事实:这些漏洞利用工具都能有效运行,且具备必定程度的威胁杀伤力。在此,我用NSA的两个大杀器演示对Win 7系统进行漏洞利用和入侵控制的过程复现。

MS17-010漏洞是指攻击者利用该漏洞,向用户机的445端口发送精心设计的网络数据包文,实现远程代码执行。

移植MS17-010漏洞利用代码模块介绍

Metasploit集合了大量的系统漏洞利用代码,但并非拥有全部的漏洞代码,因此Metasploit有一个很是强大的功能,它容许使用者开发本身的漏洞模块,MS17-010的漏洞利用模块Metasploit虽然尚未集成,可是网络上已经有相应的渗透模块了,这些模块多是用各类语言编写的,好比perl、python等,Metasploit支持各类不一样语言编写的模块移植到其框架中,经过这种机制能够将各类现存的模块软件移植成为与Metasploit兼容的渗透模块。

MS17-010漏洞代码分析

http://bobao.360.cn/learning/detail/3738.html

复现工具说明、漏洞介绍

实现复现须要用到两个工具:

  • 一个为针对微软才刚刚修复的MS17-010漏洞后门利用程序–EternalBlue该漏洞利用程序影响Windows 7和Windows Server 2008大部分版本系统,无需认证权限就能实现系统入侵控制;
  • 另外一个为能够远程向目标控制系统注入恶意DLL或Payload程序的插件工具DOUBLEPULSAR。

综合利用这两个工具,入侵攻成功以后,咱们能够实现对目标系统执行Empire/Meterpreter反弹链接控制。

在此过程当中,咱们还须要用到NSA使用的相似Metasploit的漏洞利用代码攻击框架FUZZBUNCH。

固然,咱们首先还得把Shadow Brokers泄露的工具下载到系统中来。( https://github.com/misterch0c/shadowbroker

  • 泄露文件说明:

886442-20170529113534383-1911432986.png

Windows文件夹:

其中Windows目录下的黑客工具包含了IIS 6.0远程漏洞的利用;SMB1的重量级利用,能够用来攻击开放了445端口的Windows系统而且提权;RDP服务远程漏洞的利用,能够攻击开放了3389端口的Windows机器等等。开放了135,445等端口的Windows服务器有很大几率受到攻击。

其中ETERNALBLUE是一个0day RCE漏洞利用,利用SMBv1和SMBv2漏洞(MS17-010),影响至最新的Windows 2008 R2 SERVER VIA SMB和NBT。其漏洞产生的缘由是srv.sys文件在处理SrvOs2FeaListSizeToNt函数的时候逻辑不正确致使越界拷贝。

测试环境准备

网络演示拓扑:

886442-20170608132551122-1397509649.png

攻击机1winXP(x86,32bit):须要安装Python 2.6程序和PyWin32 v2.12,调试运行攻击框架FUZZBUNCH;

IP:192.168.124.130

886442-20170608132616981-1857034472.png

攻击机2 kali2.0 64bit:须要用到Empire和Metasploit相关工具,或者msf;

IP:192.168.124.132

886442-20170608132731528-474422189.png

靶机 win7(64bit):不须要作其它额外配置,只须要系统开启。

IP:192.168.124.133

886442-20170608132753450-1497704082.png

FuzzBunch环境设置

首先须要在攻击机1 WIN XP系统中安装:

在Kali Linux上安装EmpireFramework很是简单,只需运行./setup/install.sh脚本便可一键安装

886442-20170608132813747-84588714.png

全部环境安装配置好以后,咱们在FUZZBUNCH目录下以CMD形式执行python fb.py命令,将会提示未找到“Listening post”错误,

886442-20170608132904778-1016821922.png

缘由在于指定运行配置属性为空,因此,咱们能够用编辑器把fb.py源码的第72行“Listening post”相关部分注释掉:

886442-20170608132931934-1019104473.png

另外,在相同目录下找到Fuzzbunch.xml文件,用咱们本地系统相关路径把其中的第19行和第24行路径进行覆盖,以下图所示:

886442-20170608132957184-529028998.png

FUZZBUNCH能够正常运行:

886442-20170608133014262-979169276.png

FUZZBUNCH的初始化过程当中,将会须要输入攻击目标IP和回连控制IP,在这里我分别输入靶机系统的控制系统1(xp)的IP地址,以下图所示:

886442-20170608133044559-880258276.png

点击“enter”继续,会提示输入工程名,在此,咱们用”eternal1″,在该工程名目录下将会生成一些日志记录文件:

886442-20170608133120372-919068877.png

用EternalBlue攻击入侵Windows 7

首先,咱们在FUZZBUNCH终端上用命令“use EternalBlue”选择使用EternalBlue做为漏洞利用工具:

886442-20170608133147622-456668560.png

使用不少默认配置参数,可是要注意目标操做系统是x86仍是x64,以及 Mode ::Delivery mechanism的选择为1) FB。

886442-20170608133211215-2011224389.png

886442-20170608133229075-1651264198.png

886442-20170608133251747-1890939412.png

在一直默认下第一次尝试失败:

886442-20170608133309403-144920590.png

我发现靶机win7的电脑管家没有关,关闭后再次尝试成功:

886442-20170608134357528-1460277551.png

使用Empire生成恶意DLL文件(Payload)/使用msfvenom生成DLL

因为上一步骤中靶机系统已经被EternalBlue成功植入后门,因此在该步骤中,咱们将使用Empire生成恶意DLL文件(Payload),并用DOUBLEPULSAR实现远程注入。

攻击机2 kali须要安装EmpireFramework,
在Kali Linux上,咱们须要安装可从Github获取的Empire框架:
Empire framework:https://github.com/EmpireProject/Empire

在Kali Linux上安装EmpireFramework很是简单,只需运行./setup/install.sh脚本便可一键安装,而后运行./empire就能够启动Empire。

886442-20170608133339575-1881452098.png

886442-20170608133402137-1856519107.png

使用Empire进行Payload建立:

886442-20170608133424606-601086252.png

很心碎,别人的empire就直接建立成功了,而个人连set都不识别?!可能安装了个假empire吧。。。

因此我又选择了第二种方法:使用msfvenom生成DLL(可使用主动链接TCP_Bind或者反弹shell)

攻击机2 kali的msfvenom 生成一下dll 这里使用的是reverse_tcp的paylaod(反弹shell)

886442-20170608133445418-1181651710.png

把生成的s.dll(home/YL路径下)传到攻击机1win xp上去,放在windows目录下

开启msfconsole 下面的payload要和上面msfvenom的payload对应起来

886442-20170608133508606-1920219319.png

使用DoublePulsar向目标系统中注入Payload文件

回到XP系统中,在FUZZBUNCH终端使用“use DoublePulsar”命令运行DoublePulsar

886442-20170608133524215-1706378047.png

接着DoublePulsar会为咱们显示相关的目标参数,若是你的攻击目标为不一样的架构,则须要选择对应的系统架构(本靶机为64bit)。其余变量咱们只需保持默认不变便可,直到功能选项出现。

886442-20170608133542137-1792379647.png

这里输入DLL的文件位置(放在攻击机1的路径):

886442-20170608133603137-278783498.png

以后都默认就行

终于,获得成功执行的消息显示“Doublepulsar Succeded”

886442-20170608133628840-424048363.png

可是kali这边并无回连上...伤心。以上尝试的是反弹链接获取shell

886442-20170608133646622-1448484300.png

可是通过坚持不懈的心塞,终于回连成功!(就能够对靶机进行各类事情了!)

886442-20170608133708372-290623754.png

886442-20170608133726590-284834443.png

下面试试主动链接的:

886442-20170608133745278-950119034.png

将生成的bind.dll文件拷贝到攻击机xp的windows文件夹下

开启msf

886442-20170608133803309-1579130421.png

最后也能够回连。

除了Eternalblue,NSA一块儿发布的工具还有这些,影响操做系统基本

886442-20170608133824559-1499734190.png

886442-20170608133842278-89967578.png

防范方法

此次病毒爆发影响确实很是大,为近年来所罕见。该病毒利用NSA“永恒之蓝”这个严重漏洞传播,几乎全部的Windows系统若是没有打补丁,都会被攻击。

微软在今年 3 月发布了 MS17-010 安全更新,如下系统若是开启了自动更新或安装了对应的更新补丁,能够抵御该病毒——Windows Vista、Windows Server 200八、Windows 七、Windows Server 2008 R二、Windows 8.一、Windows Server 20十二、Windows 十、Windows Server 2012 R二、Windows Server 2016 。

  • 二、关闭端口139/445,同时打开系统防火墙。具体方法可参考:
    http://mp.weixin.qq.com/s/s1_eym5U7-cdMbAh2T9YHA

  • 而且除了Windows系统的电脑外,手机、Pad、Mac等终端不会被攻击,病毒只攻击Windows系统的电脑,手机等终端不会被攻击,包括Unix、Linux、Android等系统都不会受影响。不少时候都是没有根据的谣言和ps啊。

Apache Struts2(S2-045)漏洞

我又作了一个今年三四月份的新漏洞S2-045的利用及修复:

漏洞介绍

Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-045,CVE编号CVE-2017-5638,在使用基于Jakarta插件的文件上传功能时,有可能存在远程命令执行,致使系统被黑客入侵。

恶意用户可在上传文件时经过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令。

绿盟威胁情报中心NTI关于Struts2漏洞范围分布图

全球分布图

886442-20170613161740603-1211966152.png

国内分布图

886442-20170613161859181-1690632150.png

全球排行

886442-20170613161922118-1583798716.png

影响范围

Struts 2.3.5 – Struts 2.3.31

Struts 2.5 – Struts 2.5.10

不受影响的版本

Struts 2.3.32 Struts 2.5.10.1

快速检测方式

使用知道创宇SeeBug照妖镜能够直接检测站点是否存在本漏洞

漏洞危害

在default.properties文件中,struts.multipart.parser的值有两个选择,分别是jakarta和pell。其中的jakarta解析器是Struts 2框架的标准组成部分。默认状况下jakarta是启用的,因此该漏洞的严重性须要获得正视。

攻击者可经过远程命令注入执行,令系统执行恶意命令,致使被黑客入侵,从而威胁服务器安全,影响极大。

实验环境

操做机:Windows XP

目标机:Centos 6.5

Struts版本:2.3.31

ip:172.16.11.2

886442-20170613161941681-1927532726.png

实验文件

poc.exe:本次实验漏洞验证的POC源码

SecurityFilter.class:本次实验漏洞修复脚本

实验目的

了解S2-045 Struts2远程命令执行漏洞危害

掌握检测修复S2-045 Struts2远程命令执行漏洞技术

实验内容

Struts

Struts是Apache基金会的一个开源项目,Struts经过采用JavaServlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

目前,Struts框架普遍应用于政府、公安、交通、金融行业和运营商的网站建设,做为网站开发的底层模板使用,是应用最普遍的Web应用框架之一。

实验步骤

步骤1:验证漏洞

打开目标网站:http://172.16.12.2/

发现跳转连接到http://172.16.12.2/example/HelloWorld.action

886442-20170613162015978-1062120900.png

打开cmd,切到poc.exe的目录下,执行下面命令:

poc.exe http://172.16.12.2/example/HelloWorld.action "ifconfig"

测试该网站是否存在S2-045漏洞,尝试执行系统命令ifconfig,结果以下:

886442-20170613162031634-785247545.png

成功执行,证实漏洞存在,成功后能够尝试利用漏洞执行其余命令。

步骤2:临时修复方案

修改Struts2的Multipart parser

使用搜索工具搜索ssh链接工具xshell5链接目标机172.16.12.2,用户名root,密码123456

886442-20170613162052868-492804330.png

修改配置文件

struts2-core-2.3.31.jar路径:/var/www/apache-tomcat-7.0.14/webapps/ROOT/WEB-INF/lib/下载到本地桌面,修改文件扩展名为struts2-core-2.3.31.zip

886442-20170613162106509-1385876144.png

将其解压到struts2-core-2.3.31文件夹中,打开里面的文件夹org\apache\struts2

右击目录下的default.properties文件,使用notepad++进行编辑。

886442-20170613162135212-366330927.png

找到struts.multipart.parser,该选项就是Struts2的Multipart parser应用配置,默认值为jakarta,即这次出现命令执行漏洞的上传框架。

将其修改成pell,至关于将存在漏洞的jakarta框架禁用了。

修改后值struts.multipart.parser=pell,保存,退出。

886442-20170613162148681-169450075.png

从新打包jar文件

struts2-core-2.3.31文件夹中所有选中,压缩打包为zip格式,文件名:struts2-core-2.3.31.jar

886442-20170613162207696-914735167.png

替换jar文件

使用工具Xftp,将/var/www/apache-tomcat-7.0.14/webapps/ROOT/WEB-INF/lib/路径下的struts2-core-2.3.31.jar移动到根目录/,将咱们修改配置后从新打包的jar文件放到该目录下。

重启tomcat

替换文件后须要重启tomcat服务,切换到/var/www/apache-tomcat-7.0.14/bin/目录下,首先执行./shutdown.sh,而后执行./startup.sh

886442-20170613162220462-683542198.png

验证漏洞 执行下面命令:

poc.exe http://172.16.12.2/example/HelloWorld.action "cat /etc/passwd"

886442-20170613162237900-1432970337.png

poc程序已经没法成功利用了。

步骤3:主动防护方案

如业务系统比较复杂,在临时修复方案不能使用时,且没法轻易的升级struts的版本时,可使用知道创宇的创宇盾来拦截网络的攻击流量。

实验总结与体会

本次免考我作了Eternalblue(MS17-010)漏洞利用工具实现Win 7系统入侵与S2-045漏洞的利用及修复

这次实验我首先移植MS17-010漏洞利用代码模块、上网查资料对MS17-010漏洞代码进行分析、了解复线工具的用途并下载实践相关功能(配置环境很耗时啊。。。),总共开启了三个虚拟机进行实验,其中可使用Empire进行Payload建立、也可使用msfvenom的反弹链接或者主动链接进行Payload建立,其实原本也不清楚会有这么多种方法能够实现,都是由于一次次的失败积累出的经验...

作MS17-010复现对我来讲仍是有些困难的,在网上查看各类原理还有方法慢慢梳理才有了个大方向。耗费时间最久的居然是环境配置,真的是每台电脑有它的脾气,每一个基本都是配了好几回才成功。“永恒之蓝”是指NSA泄露的危险漏洞“EternalBlue”,这次的勒索病毒WannaCry是利用该漏洞进行传播的,固然还可能有其余病毒也经过“永恒之蓝”这个漏洞传播,所以给系统打补丁是必须的,毕竟这种复现咱们本身均可以实现...

s2-045我用过实践掌握了临时解决方案与主动防护方案,因此说学习网络对抗知识仍是很重要的,若是遇到漏洞问题可能还能本身动手解决掉。

参考资料

Eternalblue(MS17-010):

http://www.hackdig.com/05/hack-45428.htm

http://www.freebuf.com/articles/network/133853.html

http://www.hx99.net/Article/Tech/201704/37465.html

https://baijiahao.baidu.com/po/feed/share?

http://bobao.360.cn/learning/detail/3738.html

s2-045:

http://www.myhack58.com/Article/html/3/62/2017/84040.html

https://www.ichunqiu.com/vm/57729/1

转载于:https://www.cnblogs.com/20145330swx/p/6886511.html