当前位置: 首页 > news >正文

#渗透测试#红蓝攻防#HW#漏洞挖掘#漏洞复现02-永恒之蓝漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读!!!

目录

永恒之蓝漏洞(EternalBlue)

一、漏洞概述

二、漏洞原理

三、漏洞利用流程

四、漏洞影响范围

五、漏洞修复

六、检测方法

七、防御措施

八、永恒之蓝漏洞影响的行业

 九、永恒之蓝漏洞修复的最佳实践

 十、漏洞复现

十一、脚本编写验证永恒之蓝


永恒之蓝漏洞(EternalBlue)

一、漏洞概述

永恒之蓝(EternalBlue)是一种严重的安全漏洞,主要影响Windows系统的SMB(Server Message Block)协议。该漏洞最早由美国国家安全局(NSA)发现并利用,后来在2017年4月被黑客组织“影子经纪人”(Shadow Brokers)公开,导致全球范围内的大规模网络攻击。

二、漏洞原理

永恒之蓝漏洞存在于Windows系统的SMBv1协议中,具体来说是在处理SMB2协议的压缩功能时出现的。攻击者可以利用这个漏洞远程执行代码,从而获得对目标系统的完全控制权。漏洞的核心在于SMB协议在处理特定类型的网络数据包时存在缓冲区溢出的问题,这使得攻击者能够在未经身份验证的情况下执行任意代码。

三、漏洞利用流程

  1. 扫描目标系统:攻击者首先需要扫描目标系统的网络端口,特别是445端口(SMB服务默认端口)。
  2. 发送恶意数据包:一旦确认目标系统存在漏洞,攻击者会发送特制的恶意数据包,这些数据包设计用来触发SMB协议中的缓冲区溢出。
  3. 执行恶意代码:触发漏洞后,攻击者可以在目标系统上执行任意恶意代码,例如安装后门程序、窃取敏感信息或传播勒索病毒(如WannaCry)。
  4. 控制系统:成功利用漏洞后,攻击者可以获得对目标系统的完全控制权,执行任意操作。

四、漏洞影响范围

永恒之蓝漏洞影响了多个版本的Windows系统,包括但不限于:

  • Windows 7
  • Windows Server 2008
  • Windows XP
  • Windows 10

此外,使用SMBv1协议的其他设备也可能受到影响,例如某些型号的医疗设备。

五、漏洞修复

为了防止永恒之蓝漏洞被利用,微软已经在2017年3月发布了补丁(MS17-010)。建议采取以下措施:

  1. 安装补丁:尽快为所有受影响的Windows系统安装MS17-010补丁。
  2. 禁用SMBv1协议:如果不需要使用SMBv1协议,可以考虑禁用它,以减少潜在的攻击面。
  3. 启用防火墙:使用防火墙规则限制对445端口的访问,仅允许经过授权的设备连接。

六、检测方法

可以通过以下方法检测目标系统是否存在永恒之蓝漏洞:

  1. 使用nmap扫描:使用nmap扫描目标系统的445端口,确认是否存在SMB服务。
  2. 使用Metasploit框架:Metasploit框架提供了专门的模块来检测和利用永恒之蓝漏洞,可以通过执行相关模块来确认漏洞是否存在。

七、防御措施

  1. 及时更新软件:定期检查并更新系统上的所有软件,确保它们都是最新的稳定版本。
  2. 限制权限:尽量避免以管理员权限运行服务,降低潜在漏洞带来的风险。
  3. 监控异常行为:使用入侵检测系统(IDS)和入侵防御系统(IPS)监控异常行为,及时发现并阻止潜在攻击。

八、永恒之蓝漏洞影响的行业

永恒之蓝漏洞的影响范围非常广泛,几乎涵盖了所有依赖Windows系统的行业。以下是一些受影响较大的行业:

  1. 金融行业:银行、保险公司和其他金融机构通常依赖Windows系统来运行关键业务应用程序。由于这些系统通常包含大量敏感信息,因此它们成为攻击者的主要目标。

  2. 医疗行业:医院和其他医疗机构使用Windows系统来管理患者记录、医疗设备和其他关键数据。永恒之蓝漏洞可能导致医疗设备无法正常工作,甚至可能危及患者的生命。

  3. 教育行业:学校和大学使用Windows系统来管理学生记录、教学材料和其他重要数据。永恒之蓝漏洞可能导致这些数据被窃取或破坏。

  4. 制造业:制造公司使用Windows系统来管理生产线、库存和其他关键业务流程。永恒之蓝漏洞可能导致生产线停工,造成巨大的经济损失。

  5. 政府机构:政府部门使用Windows系统来管理公共记录、敏感信息和其他关键数据。永恒之蓝漏洞可能导致这些数据被窃取或破坏,影响公共安全和社会稳定。

  6. 能源行业:电力公司、石油公司和其他能源公司使用Windows系统来管理能源生产、分配和其他关键业务流程。永恒之蓝漏洞可能导致能源供应中断,造成巨大的经济损失和社会影响。

  7. 零售行业:零售商使用Windows系统来管理销售点(POS)系统、库存和其他关键业务流程。永恒之蓝漏洞可能导致POS系统无法正常工作,影响销售和客户服务。

  8. 科技行业:软件开发公司、硬件制造商和其他科技公司使用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…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...