查看原文
其他

干货!CVE-2020-0796漏洞技术分析


长按二维码关注

御见威胁情报中心

一、漏洞分析

【漏洞描述】
最新的Windows 10中,在处理SMB 3.1.1协议的压缩消息时,对头部数据没有做任何安全检查,直接使用,从而引发内存破坏漏洞。黑客无须任何权限,即可利用该漏洞实现远程内核代码执行。受黑客攻击的目标系统只需开机在线,即有可能被入侵。

腾讯安全团队研究发现,
除了直接攻击SMB服务端造成任意代码执行外,该漏洞还存在于SMB客户端。这使得黑客可以构造恶意的SMB服务器,并通过网页、压缩包、共享目录、OFFICE文档等多种方式传递给目标用户,触发漏洞进行攻击,即使目标机器已经禁用SMB压缩功能,甚至关闭了445端口,仍然会受到威胁,仍然会触发漏洞。


【漏洞成因】
Windows 10 v1903/Windows Server v1903开始,微软在协议SMB 3.1.1中开启了对数据压缩传输的支持,本次漏洞成因是SMB客户端及服务端在准备解压数据时,没有对COMPRESSION_TRANSFORM_HEADE结构进行安全校验,导致后续代码发生一连串整形溢出、越界读写的漏洞。

【漏洞细节】

服务端漏洞位于srv2.sys
客户端漏洞位于mrxsmb.sys


服务端整形溢出:
SrvNetAllocateBuffer会以OriginalCompressedSegmentSize + Offset的大小申请一段SRVNET_BUFFER,由于COMPRESSION_TRANSFORM_HEADER内存可控,所以2个值可以任意控制,同时x64版本下并没有对OriginalCompressedSegmentSize+Offset与最大值0x800134比较:


服务端越界读写:
由于COMPRESSION_TRANSFORM_HEADER内容可控,解压时调用的SmbCompressionDecompress函数又会引用其中数据作为参数,因此可造成如下几种情况:


1. 第二个参数inbuf保存压缩后的数据,计算为compression_transform_header + Offset + 0x10,当Offset过大时,会引发越界读;


2. 第三个参数代表压缩数据大小,计算为OriginalMessageSize - Offset - 0x10,当Offset过大,则会发生负整形溢出;


3. 第四个参数代表保存解压数据的buf,计算为offset + pNetRawBuffer,当Offset过大,则会发生越界写;


缓冲区溢出:

在执行完解压处理,会将压缩数据复制到SRVNET_BUFFER_HDR->pNetRawBuffer处,长度是offset,可控的offset可以对这次memcpy造成溢出,或者说经过一些处理,这里的memcpy其实3个参数都是可控的。


客户端漏洞与服务端漏洞成因相同:


【补丁分析】
微软在解压函数中新调用了两个函数,验证压缩结构的内容是否异常:


补丁在X64系统下在3个位置做了check


1.在申请内存前判断是否发生整形溢出或大于阈值:
If(OriginalCompressedSegmentSize + offset < OriginalCompressedSegmentSize)
整形溢出!!


2.If(OriginalCompressedSegmentSize + offset > MAX_SIZE)
数据异常!!


3.在调用系统解压函数前判断offset是否过大:
If(offset >SMBMessageSize – 0x10)
整形溢出!!如果offset再大点,越界读写!!


二、攻击面研究
腾讯安全团队经过研究发现,除了主动发送攻击SMB数据包外,由于上层应用程序对SMB协议的支持,导致很多主流的应用如
Office文档、IE浏览器、文件夹(Desktop.ini)等都会受到漏洞影响,同时受害者本地无需开启445端口:


利用Office文档钓鱼:


利用浏览器钓鱼:


利用文件夹(Desktop.ini)投递:


三、无损检测
腾讯安全全球率先推出SMB远程代码执行漏洞扫描工具,管理员使用该工具可远程检测终端计算机系统是否存在安全漏洞,是否打过补丁,是否只采用了禁用压缩这种临时缓解方案。


企业用户可以按下文的提示联系腾讯安全团队索取无损检测工具。


四、漏洞解决方案


01

全面检测企业网络资产是否存在安全漏洞


推荐企业采用腾讯T-Sec 网络资产风险检测系统(腾讯御知)全面检测企业网络资产是否受安全漏洞影响。

腾讯T-Sec 网络资产风险检测系统(腾讯御知)是一款自动探测企业网络资产并识别其风险的产品。可全方位监控企业网站、云主机、小程序等资产存在的风险,包含弱口令检测、Web 漏洞扫描、违规敏感内容检测、网站篡改检测、挂马挖矿检测等多类资产风险。

 
企业用户可扫描以下二维码,免费使用腾讯T-Sec网络资产风险检测系统(
yuzhi.qq.com)。



02

终端安全管理

腾讯T-Sec终端安全管理系统(御点)已率先升级,可拦截利用该漏洞的攻击:


企业网管还可采用
腾讯T-Sec终端安全管理系统(御点)的全网漏洞扫描修复功能,全网统一扫描、安装KB4551762补丁。

部署
腾讯T-Sec终端安全管理系统(御点)拦截病毒木马入侵,更多信息可参考链接:https://s.tencent.com/product/yd/index.html
 

03

对黑客攻击行为进行检测

推荐企业用户部署腾讯T-Sec高级威胁检测系统(腾讯御界)对黑客攻击行为进行检测。

腾讯T-Sec高级威胁检测系统,是基于腾讯安全能力、依托腾讯在云和端的海量数据,研发出的独特威胁情报和恶意检测模型系统,该系统可及时有效检测黑客对企业网络的各种入侵渗透攻击风险。参考链接:https://cloud.tencent.com/product/nta


04

远程无损漏洞扫描

腾讯安全率先推出SMB远程代码执行漏洞扫描工具,管理员使用该工具可远程检测全网终端是否存在安全漏洞。

 

为避免被攻击者滥用,获取SMB远程代码漏洞扫描工具须申请,申请流程参考:
https://pc1.gtimg.com/softmgr/files/20200796.docx


05

Windows安全更新

企业用户也可使用Windows更新安装补丁,操作步骤:设置->更新和安全->Windows更新,点击“检查更新”

06

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


推荐个人用户采用腾讯电脑管家的漏洞扫描修复功能安装补丁,腾讯电脑管家同时为未安装管家的用户单独提供了SMB远程代码漏洞修复工具

SMB远程远程代码执行漏洞修复工具下载地址:http://dlied6.qq.com/invc/QQPatch/QuickFix_SMB0796.exe

【时间线
1.2020年3月11日,国外某厂家发布规则更新,披露疑似SMB严重漏洞;


2. 2020年3月11日,微软发布临时缓解方案:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV200005


3.2020年3月11日,腾讯电脑管家官微发布“CVE-2020-0796:疑似微软SMB协议‘蠕虫级’漏洞初步通告”;


4.2020年3月12日,微软官方发布CVE-2020-0796安全公告;


5.2020年3月12日晚,腾讯安全发布远程无损检测工具。

参考链接

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796



Modified on

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存