#渗透测试#红蓝攻防#HW#漏洞挖掘#漏洞复现02-永恒之蓝漏洞
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读!!!

目录
永恒之蓝漏洞(EternalBlue)
一、漏洞概述
二、漏洞原理
三、漏洞利用流程
四、漏洞影响范围
五、漏洞修复
六、检测方法
七、防御措施
八、永恒之蓝漏洞影响的行业
九、永恒之蓝漏洞修复的最佳实践
十、漏洞复现
十一、脚本编写验证永恒之蓝
永恒之蓝漏洞(EternalBlue)
一、漏洞概述
永恒之蓝(EternalBlue)是一种严重的安全漏洞,主要影响Windows系统的SMB(Server Message Block)协议。该漏洞最早由美国国家安全局(NSA)发现并利用,后来在2017年4月被黑客组织“影子经纪人”(Shadow Brokers)公开,导致全球范围内的大规模网络攻击。
二、漏洞原理
永恒之蓝漏洞存在于Windows系统的SMBv1协议中,具体来说是在处理SMB2协议的压缩功能时出现的。攻击者可以利用这个漏洞远程执行代码,从而获得对目标系统的完全控制权。漏洞的核心在于SMB协议在处理特定类型的网络数据包时存在缓冲区溢出的问题,这使得攻击者能够在未经身份验证的情况下执行任意代码。
三、漏洞利用流程
- 扫描目标系统:攻击者首先需要扫描目标系统的网络端口,特别是445端口(SMB服务默认端口)。
- 发送恶意数据包:一旦确认目标系统存在漏洞,攻击者会发送特制的恶意数据包,这些数据包设计用来触发SMB协议中的缓冲区溢出。
- 执行恶意代码:触发漏洞后,攻击者可以在目标系统上执行任意恶意代码,例如安装后门程序、窃取敏感信息或传播勒索病毒(如WannaCry)。
- 控制系统:成功利用漏洞后,攻击者可以获得对目标系统的完全控制权,执行任意操作。
四、漏洞影响范围
永恒之蓝漏洞影响了多个版本的Windows系统,包括但不限于:
- Windows 7
- Windows Server 2008
- Windows XP
- Windows 10
此外,使用SMBv1协议的其他设备也可能受到影响,例如某些型号的医疗设备。
五、漏洞修复
为了防止永恒之蓝漏洞被利用,微软已经在2017年3月发布了补丁(MS17-010)。建议采取以下措施:
- 安装补丁:尽快为所有受影响的Windows系统安装MS17-010补丁。
- 禁用SMBv1协议:如果不需要使用SMBv1协议,可以考虑禁用它,以减少潜在的攻击面。
- 启用防火墙:使用防火墙规则限制对445端口的访问,仅允许经过授权的设备连接。
六、检测方法
可以通过以下方法检测目标系统是否存在永恒之蓝漏洞:
- 使用nmap扫描:使用nmap扫描目标系统的445端口,确认是否存在SMB服务。
- 使用Metasploit框架:Metasploit框架提供了专门的模块来检测和利用永恒之蓝漏洞,可以通过执行相关模块来确认漏洞是否存在。
七、防御措施
- 及时更新软件:定期检查并更新系统上的所有软件,确保它们都是最新的稳定版本。
- 限制权限:尽量避免以管理员权限运行服务,降低潜在漏洞带来的风险。
- 监控异常行为:使用入侵检测系统(IDS)和入侵防御系统(IPS)监控异常行为,及时发现并阻止潜在攻击。
八、永恒之蓝漏洞影响的行业
永恒之蓝漏洞的影响范围非常广泛,几乎涵盖了所有依赖Windows系统的行业。以下是一些受影响较大的行业:
金融行业:银行、保险公司和其他金融机构通常依赖Windows系统来运行关键业务应用程序。由于这些系统通常包含大量敏感信息,因此它们成为攻击者的主要目标。
医疗行业:医院和其他医疗机构使用Windows系统来管理患者记录、医疗设备和其他关键数据。永恒之蓝漏洞可能导致医疗设备无法正常工作,甚至可能危及患者的生命。
教育行业:学校和大学使用Windows系统来管理学生记录、教学材料和其他重要数据。永恒之蓝漏洞可能导致这些数据被窃取或破坏。
制造业:制造公司使用Windows系统来管理生产线、库存和其他关键业务流程。永恒之蓝漏洞可能导致生产线停工,造成巨大的经济损失。
政府机构:政府部门使用Windows系统来管理公共记录、敏感信息和其他关键数据。永恒之蓝漏洞可能导致这些数据被窃取或破坏,影响公共安全和社会稳定。
能源行业:电力公司、石油公司和其他能源公司使用Windows系统来管理能源生产、分配和其他关键业务流程。永恒之蓝漏洞可能导致能源供应中断,造成巨大的经济损失和社会影响。
零售行业:零售商使用Windows系统来管理销售点(POS)系统、库存和其他关键业务流程。永恒之蓝漏洞可能导致POS系统无法正常工作,影响销售和客户服务。
科技行业:软件开发公司、硬件制造商和其他科技公司使用Windows系统来开发和测试产品。永恒之蓝漏洞可能导致开发和测试环境被破坏,影响产品发布和公司声誉。
九、永恒之蓝漏洞修复的最佳实践
永恒之蓝(EternalBlue)漏洞的修复涉及多个步骤和最佳实践,以确保系统安全并防止未来的攻击。以下是一些最佳实践:
1. 安装补丁
及时更新系统:微软已经发布了修复永恒之蓝漏洞的补丁(MS17-010)。确保所有Windows系统都安装了最新的安全更新和补丁。
使用自动更新:启用自动更新功能,以便系统能够自动接收和安装最新的安全补丁。
2. 关闭不必要的服务和端口
禁用SMBv1:SMBv1是永恒之蓝漏洞利用的协议版本。可以通过系统设置或组策略禁用SMBv1。
关闭相关端口:关闭与SMB相关的端口(如445、137、138、139),以减少攻击面。
3. 增强网络安全
使用防火墙:配置防火墙规则,限制对内部网络的访问,特别是对关键系统和服务的访问。
实施网络分段:将网络分成多个子网,以限制潜在攻击的传播范围。
4. 提高系统和网络安全意识
培训员工:教育员工关于网络安全威胁和最佳实践,例如不点击不明链接、不下载不明文件等。
制定安全策略:制定并实施网络安全策略,包括密码管理、访问控制和数据保护。
5. 备份重要数据
定期备份:定期备份重要数据,并确保备份存储在安全的位置,最好是离线存储。
验证备份:定期验证备份的完整性和可恢复性,以确保在发生数据丢失时能够快速恢复。
6. 使用安全工具
安装杀毒软件:安装并更新杀毒软件,以检测和清除潜在的恶意软件。
使用漏洞扫描工具:使用漏洞扫描工具定期扫描系统和网络,以发现和修复潜在的安全漏洞。
7. 监控和响应
实时监控:使用安全信息和事件管理(SIEM)系统实时监控网络和系统活动,以便及时发现异常行为。
制定应急响应计划:制定并演练应急响应计划,以便在发生安全事件时能够迅速有效地应对。
8. 审查和审计
定期审计:定期进行安全审计,评估系统的安全状况,并根据审计结果进行改进。
审查第三方软件:确保所有第三方软件也已更新,并且没有已知的安全漏洞。
十、漏洞复现
MS17-010 永恒之蓝
攻击机 和靶机在同一网段中
配置kali
配置靶机
查看kali ip的配置
确认靶机的网络配置
确认靶场的IP 为192.168.10.130
然后查看端口开放情况,发现445端口开放
kali开启msf
搜索永恒之蓝的相关模块
过滤出其中的攻击模块
选择攻击模块
查看当前模块可用的选项
设置攻击目标-设置反弹目标
执行漏洞测试
拿到shell
输入65001解决乱码
通过shell对靶机进行控制
1:创建新用户
2:将用户sss 添加至管理员组
3:开启远程桌面功能
查看3389端口状态:netstat -ano
开启3389端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
4:远程桌面连接
已经登录成功
十一、脚本编写验证永恒之蓝
使用impacket库来与目标系统的SMB端口进行交互,并检测是否存在永恒之蓝漏洞。
脚本说明:SMBConnection: 使用impacket库中的SMBConnection类来与目标系统的SMB端口建立连接。登录尝试: 通过尝试登录(使用空用户名和密码)来检测是否存在漏洞。如果登录成功,则可能存在永恒之蓝漏洞。异常处理: 如果无法连接到目标系统,脚本会捕获异常并输出错误信息。from impacket.smbconnection import SMBConnection def check_eternalblue_vulnerability(target_ip, target_port=445): try: # 尝试与目标系统的SMB端口建立连接 smb_connection = SMBConnection(target_ip, target_ip, sess_port=target_port) # 如果连接成功,尝试发送恶意数据包以检测漏洞 if smb_connection.login('', ''): print(f"[!] 目标系统 {target_ip}:{target_port} 可能存在永恒之蓝漏洞") else: print(f"[*] 目标系统 {target_ip}:{target_port} 未发现永恒之蓝漏洞") except Exception as e: print(f"[*] 无法连接到目标系统 {target_ip}:{target_port} - {e}") if __name__ == "__main__": target_ip = "192.168.1.1" # 替换为目标IP地址 check_eternalblue_vulnerability(target_ip)
未完待续~~~!!!!!
相关文章:
#渗透测试#红蓝攻防#HW#漏洞挖掘#漏洞复现02-永恒之蓝漏洞
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...
gitlab自动打包python项目
现在新版的gitlab可以不用自己配置runner什么的了 直接写.gitlab-ci.yml文件就行,这里给出一个简单的依靠setup把python项目打包成whl文件的方法 首先写.gitlab-ci.yml文件,放到项目根目录里 stages: # List of stages for jobs, and their or…...
残差神经网络
目录 1. 梯度消失问题 2. 残差学习的引入 3. 跳跃连接(Shortcut Connections) 4. 恒等映射与维度匹配 5. 反向传播与梯度流 6. 网络深度与性能 总结 残差神经网络的原理是基于“残差学习”的概念,它旨在解决深度神经网络训练中的梯度消…...
mini-spring源码分析
IOC模块 关键解释 beanFactory:beanFactory是一个hashMap, key为beanName, Value为 beanDefination beanDefination: BeanDefinitionRegistry,BeanDefinition注册表接口,定义注册BeanDefinition的方法 beanReference:增加Bean…...
黑马程序员Java项目实战《苍穹外卖》Day01
苍穹外卖-day01 课程内容 软件开发整体介绍苍穹外卖项目介绍开发环境搭建导入接口文档Swagger 项目整体效果展示: 管理端-外卖商家使用 用户端-点餐用户使用 当我们完成该项目的学习,可以培养以下能力: 1. 软件开发整体介绍 作为一…...
uniapp开发支付宝小程序自定义tabbar样式异常
解决方案: 这个问题应该是支付宝基础库的问题,除了依赖于官方更新之外,开发者可以利用《自定义 tabBar》曲线救国 也就是创建一个空内容的自定义tabBar,这样即使 tabBar 被渲染出来,但从视觉上也不会有问题 1.官方文…...
python+django5.1+docker实现CICD自动化部署springboot 项目前后端分离vue-element
一、开发环境搭建和配置 # channels是一个用于在Django中实现WebSocket、HTTP/2和其他异步协议的库。 pip install channels#channels-redis是一个用于在Django Channels中使用Redis作为后台存储的库。它可以用于处理#WebSocket连接的持久化和消息传递。 pip install channels…...
python代码示例(读取excel文件,自动播放音频)
目录 python 操作excel 表结构 安装第三方库 代码 自动播放音频 介绍 安装第三方库 代码 python 操作excel 表结构 求出100班同学的平均分 安装第三方库 因为这里的表结构是.xlsx文件,需要使用openpyxl库 如果是.xls格式文件,需要使用xlrd库 pip install openpyxl /…...
【第十课】Rust并发编程(一)
目录 前言 Fork和Join 前言 本节会介绍Rust中的并发编程,并发编程在编程中是提升cpu使用率的一大利器,通过多线程技术提升效率,Rust的并发和其他编程语言的并发不同的地方在于,Rust号称无畏并发。更重要的一点是安全。Rust中所有…...
图形渲染性能优化
variable rate shading conditional render 设置可见性等, 不需要重新build command buffer indirect draw glMultiDraw* - 直接支持多次绘制glMultiDrawIndirect - 间接多次绘制multithreading 多线程录制 实例化渲染 lod texture array 小对象剔除 投影到…...
elasticsearch的索引模版使用方法
5 索引模版⭐️⭐️⭐️⭐️⭐️ 索引模板就是创建索引时要遵循的模板规则索引模板仅对新创建的索引有效,已经创建的索引并不受索引模板的影响 5.1 索引模版的基本使用 1.查看所有的索引模板 GET 10.0.0.91:9200/_index_template2.创建自定义索引模板 xixi &…...
论文学习——进化动态约束多目标优化:测试集和算法
论文题目:Evolutionary Dynamic Constrained Multiobjective Optimization: Test Suite and Algorithm 进化动态约束多目标优化:测试集和算法(Guoyu Chen ,YinanGuo , Member, IEEE, Yong Wang , Senior Member, IEEE, Jing Liang , Senior …...
C++中的volatile关键字
作用: 1.它用于修饰变量,告知编译器该变量的值可能会在程序的外部被改变,编译器不能对这个变量的访问进行优化。这是因为编译器通常会对代码进行优化,例如把变量的值缓存到寄存器中,但对于 volatile 变量,…...
linux桌面qt应用程序UI自动化实现之dogtail
1. 前言 Dogtail适用于Linux 系统上进行 GUI 自动化测试,利用 Accessibility 技术与桌面程序通信;Dogtail 包含一个名为 sniff 的组件,这是一个嗅探器,用于 GUI 程序追踪; 源码下载:dogtail PyPI 可通过sudo python setup.py install安装或sudo pip install dogt…...
Hello World C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System; 引入了System命名空间,基本输入输出。一般只用这个,后面的不用 using System.Collections.Generic; 包含了定…...
SAP开发语言ABAP开发入门
1. 了解ABAP开发环境和基础知识 - ABAP简介 - ABAP(Advanced Business Application Programming)是SAP系统中的编程语言,主要用于开发企业级的业务应用程序,如财务、物流、人力资源等模块的定制开发。 - 开发环境搭建 - 首先需…...
应急响应靶机——easy溯源
载入虚拟机,开启虚拟机: (账户密码:zgsfsys/zgsfsys) 解题程序.exe是额外下载解压得到的: 1. 攻击者内网跳板机IP地址 2. 攻击者服务器地址 3. 存在漏洞的服务(提示:7个字符) 4. 攻击者留下的flag(格式…...
【前端】vscode报错: 无法加载文件 D:\nodejs\node_global\yarn.ps1,因为在此系统上禁止运行脚本。
vscode运行前端代码时候,执行yarn install时候报错 问题: 无法加载文件 D:\nodejs\node_global\yarn.ps1,因为在此系统上禁止运行脚本。 解决方式: 首先用管理员身份运行vscode 查看 get-ExecutionPolicy,Restrict…...
Spring Web MVC(详解中)
文章目录 Spring MVC(中)RESTFul风格设计RESTFul风格概述RESTFul风格特点RESTFul风格设计规范RESTFul风格好处RESTFul风格实战需求分析RESTFul风格接口设计后台接口实现 基于RESTFul风格练习(前后端分离模式)案例功能和接口分析功…...
Flutter:encrypt插件 AES加密处理
1、pubspec.yaml导入插件 cupertino_icons: ^1.0.8 # 密码加密 encrypt: 5.0.3encrypt封装 import package:encrypt/encrypt.dart; /// 加密类 class EncryptUtil {static final EncryptUtil _instance EncryptUtil._internal();factory EncryptUtil() > _instance;Encrypt…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
raid存储技术
1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...





















