本帖最后由 腾讯电脑管家 于 2020-12-9 21:37 编辑
2020年12月9日,微软公布了一个SMBv2认证后UAF漏洞CVE-2020-17140,攻击者通过该漏洞可以在身份验证后泄露目标内核内存信息,该漏洞可能配合其他漏洞完成远程代码执行或对目标主机造成拒绝服务攻击。
腾讯安全专家对该漏洞及修复补丁进行简要分析,腾讯御界已支持对该漏洞的攻击利用进行检测。以下分析供同行及网络安全爱好者参考。
概述
服务器信息块协议(SMB协议,ServerMessage Block Protocol)为网络计算机客户程序提供一种从服务程序读写文件并请求服务的方法。SMB协议可在互联网的TCP/IP协议或者互联网数据包交换和NetBEUI等协议之上使用。使用SMB协议,应用程序可访问远程服务器的文件以及打印机、信槽和命名管道等资源。客户程序可以读、写以及更新远程计算机上的文件,它也可以跟接收SMB客户请求的任意服务程序通信。
SMBv2开始支持在机器之间共享文件和打印资源,是基于SMBv1的扩展版本。
漏洞分析漏洞出现在smbv2服务处理SetInfo请求逻辑中,客户端发送SMB2 SET_INFO请求以设置有关文件或基础对象存储的信息:
通过补丁对比srv2.sys,我们可以发现一处明显的UAF Patch:
上图中,Smb2UpdateLeaseFileName函数在解析FILE_RENAME_INFORMATION_TYPE_2中的FileName时,会根据其大小动态更新缓冲区大小,用于存放请求中的FileName字符串。
当把数据从原始的缓存区复制到更大的缓存区之前,代码中有存在一处逻辑可以将原始缓冲区释放掉,造成了后面memcpy复制时,source指针指向已被释放的内存
补丁对比通过补丁对比,微软的修复方式为在memcpy操作后进行内存释放操作:
腾讯T-Sec高级威胁检测系统(御界)规则库日期2020-12-9之后的版本,已支持对SMBv2认证后UAF漏洞利用进行检测。
|