-
-
[原创]SMB v1远程代码执行漏洞(CVE-2020-1301)分析及风险通告
-
发表于: 2020-6-10 11:16 4216
-
2020年6月10日,微软发布补丁修复了一个标注为远程代码执行的SMB v1漏洞:CVE-2020-1301,漏洞影响win7-Win10的所有版本。经腾讯安全团队分析,该漏洞发生在srv驱动模块解析SMB相关协议MS-FSCC 中的FSCTL_SIS_COPYFILE请求时,没有完全验证请求中的SI_COPYFILE结构,后续引用造成了整形溢出。与之前的SMBGhost(SMBv3漏洞)相比,该漏洞出现在老版本的SMB v1中,触发需要先通过身份认证,危害等级低于CVE-2020-0796。
一、漏洞分析
参考微软[MS-FSCC].pdf,补丁代码位于FSCTL_SIS_COPYFILE请求的处理逻辑中:
FSCTL_SIS_COPYFILE请求使服务器使用单实例存储(SIS)筛选器复制文件。 该请求包含一个SI_COPYFILE结构:
SrvSmbNtIoctl在处理SI_COPYFILE结构时,仅验证了SourceFileNameLength和DestinationFileNameLength是否有效及它们的最大值,没有验证最小值:
后续代码引用时会对两个文件名长度-2,当SourceFileNameLength或DestinationFileNameLength过小时会引发整形溢出,触发漏洞:
二、补丁对比
通过补丁对比,微软的修复方式为验证SourceFileNameLength和DestinationFileNameLength长度不能小于4:
三、漏洞检测与解决方案
该漏洞触发需要先建立SMB会话,即通过身份验证,为避免受到漏洞影响,设置密码时避免使用弱口令。
同时建议关闭SMB v1,由于SMB v1存在很多安全问题,如之前的永恒之蓝就是利用SMB v1漏洞。从2007年开始,SMB v2 和更高版本的协议取代了SMB v1。 Microsoft 在2014年公开弃用了 SMB v1 协议。Windows 10已默认关闭SMB v1,禁用SMB v1不会对系统造成影响。
各系统版本关闭SMB v1的方法可参考微软官方推荐的方案:
配置如下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Registry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)
企业网管可以通过域强制安全策略来完成配置,也可使用腾讯安全提供的以下解决方案消除风险。
1.腾讯云防火墙已支持针对SMB V1远程代码执行漏洞的攻击防护。
腾讯云防火墙(Cloud Firewall,CFW)是一款基于公有云环境的SaaS化防火墙,为用户提供互联网边界、VPC 边界的网络访问控制,可实现访问管控与安全防御的集成化与自动化。
扫描以下二维码,了解更多关于腾讯云防火墙的相关信息:
2. 腾讯T-Sec高级威胁检测系统已支持对SMB V1漏洞的利用检测,推荐企业用户部署腾讯T-Sec高级威胁检测系统(腾讯御界)对黑客的攻击行为进行检测。
腾讯T-Sec高级威胁检测系统,是基于腾讯安全能力、依托腾讯在云和端的海量数据,研发出的独特威胁情报和恶意检测模型系统,该系统可及时有效检测黑客对企业网络的各种入侵渗透攻击风险。参考链接:https://cloud.tencent.com/product/nta
3.个人用户推荐使用腾讯电脑管家、企业用户推荐使用腾讯T-Sec终端安全管理系统扫描修复漏洞,也可通过Windows Update修复。亦可通过以下链接手动下载安装补丁:
https://portal.msrc.microsoft.com/zh-cn/security-guidance/advisory/CVE-2020-1301
参考资料
微软6月安全公告:
https://portal.msrc.microsoft.com/zh-cn/security-guidance/releasenotedetail/2020-Jun
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)