SMBGhost漏洞技术分析与防御方案

2024-03-03 12:52

本文主要是介绍SMBGhost漏洞技术分析与防御方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

事件分析

最近国内外各安全厂商都发布了SMBGhost(CVE-2020-0796)漏洞的预警报告和分析报告,笔者利用周末休息时间也研究了一下,就算是做一个笔记了,分享给大家一起学习下,目前外面研究的POC大部分是通过SMB压缩数据包长度整数溢出之后导致系统Crash,基本也没啥用,估计现在各大厂商的漏洞研究人员和一些技术成熟的黑客组织都在加紧研究RCE完整利用程序吧,这个漏洞能不能完整利用,会不会像永恒之蓝那样,还需要持续研究跟踪,同时也需要关注后面会不会抓到一些利用这个漏洞的在野攻击样本。

漏洞简介

3月12日晚,微软发布安全公告披露了一个最新的SMB远程代码执行漏洞(CVE-2020-0796),该漏洞主要是因为在最新的Windows 10系统中,处理SMB3.1.1协议的压缩消息时,对头部数据没有做任何安全检查,从而引发内存破坏漏洞,黑客利用此漏洞,可无须任何权限的情况下,即可实现远程内核代码执行。

漏洞成因

从Windows10 v1903/Windows Server v1903开始,微软在协议SMB3.1.1中开启了对数据压缩传输的支持,但是由于SMB没有正确处理压缩的数据包,在客户端/服务端解压数据的时候,没有对COMPRESSIN_TRANSFORM_HEADE结构进行安全校验,导致后续代码发生一连串整形溢出、越界读写等漏洞。

影响版本

Windows10 Version 1903 for 32-bit Systems

Windows10 Version 1903 for x64-based Systems

Windows10 Version 1903 for ARM64-based Systems 

Windows Server, Version 1903 (服务器核心安装)

Windows10 Version 1909 for 32-bit Systems

Windows10 Version 1909 for x64-based Systems

Windows10 Version 1909 for ARM64-based Systems 

Windows Server, Version 1909 (服务器核心安装)

漏洞捕获

从事漏洞分析与研究的朋友都会时刻关注各大厂商公布的漏洞或补丁信息,从公布的这些漏洞信息与补丁,就可以定位到相应的模块进行分析调试,此前微软发布了各个版本操作系统的CVE-2020-0796的补丁包,如下所示:

查看这个漏洞的细节信息,包含漏洞简介,如下所示:

影响范围,以及相应的补丁下载,如下所示:

缓解措施,如下所示:

漏洞分析

1.分析SMB漏洞,需要对SMB漏洞的结构数据比较熟悉,SMB数据结构,可参考微软的官网,里面有SMB的详细数据结构信息,如下所示:

下载文档之后,查看文档目录中关于对SMB传输压缩数据包头的处理,如下所示:

可以找到COMPRESSION_TRANSFORM_HEADE数据结构,如下所示:

里面各个字段的含义,如下所示:

上面这些信息是分析这个漏洞的基础,一定要弄清楚!

2.漏洞的成因在于SMB在处理接收的压缩数据包时出现的错误,先定位到接收压缩数据后处理函数srv2!Srv2ReceiveHandler,通过上面的分析,我们可以利用COMPRESSION_TRANSFORM_HEADE的结构体中的ProtocolId字段定位到相关的代码处,如下所示:

如果传输的数据为压缩数据,则跳转到解压缩数据处理函数Srv2DecompressData,如下所示:

在Srv2DecompressData函数中,使用SrvNetAllocateBuffer进行内存分配时,未对传入的数据进行校验,会导致整数溢出,然后调用SmbCompressionDecompress函数进行数据解压操作,如下所示:

打过补丁之后,微软修改了这个函数,对传入的值进行三次校验,如下所示:

对比补丁前后的文件中对应的函数,如下所示:

漏洞检测

发送SMB数据包,检测返回的流量数据包特征,如下所示:

构造SMB压缩数据包,SMB数据包头数据,如下所示:

附加上数据压缩算法,如下所示:

检测返回的流量数据包中SMB压缩版本,如下所示:

以及数据包最后的数据,如下所示:

这种检测方法很弱,可能会有误报,目前各厂商的检测方案和工具都没有公布,不然可以逆向分析看看。

防御方案

1.windows自动更新

设置->更新和安全->Windows更新,点击“检查更新”,如下所示:

2.手动安装补丁包

查看自己的电脑Win10操作系统版本,可以按Win+R键,然后键入WINVER命令,如下所示:

确定之后会弹出Win10操作系统版本,我的版本为1809,如下所示:

如果操作系统版本为Windows 10 1903之后,可以根据自己操作系统的版本安装微软提供的对应补丁包程序,下载地址:

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

3.可以手动修改注册表,防止被黑客远程攻击:

按Win+R键,然后键入WINVER命令,打开注册表编辑器,如下所示:

HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters建立一个名为DisableCompression的DWORD,值为1,禁止SMB的压缩功能,如下所示:

普通用户只要用方法二去微软官网下载相应的补丁包,安装补丁包就可以了

参考链接:

1. https://github.com/ClarotyICS/CVE2020-0796

2.https://syntricks.com/cve-2020-0796-aka-smbghost-vulnerability/

3.https://www.synacktiv.com/posts/exploit/im-smbghost-daba-dee-daba-da.html

4.https://github.com/eerykitty/CVE-2020-0796-PoC

5.https://github.com/ioncodes/SMBGhost

这篇关于SMBGhost漏洞技术分析与防御方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/769678

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

MOLE 2.5 分析分子通道和孔隙

软件介绍 生物大分子通道和孔隙在生物学中发挥着重要作用,例如在分子识别和酶底物特异性方面。 我们介绍了一种名为 MOLE 2.5 的高级软件工具,该工具旨在分析分子通道和孔隙。 与其他可用软件工具的基准测试表明,MOLE 2.5 相比更快、更强大、功能更丰富。作为一项新功能,MOLE 2.5 可以估算已识别通道的物理化学性质。 软件下载 https://pan.quark.cn/s/57

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud