在进行渗透测试时,安博通发现不少主机存在一个叫做SMBGhost的漏洞。

这是一个什么漏洞呢?

SMBv3在处理恶意伪造的压缩数据包时,特定的压缩数据就会引发这个漏洞,从而造成SMB服务器的缓冲区溢出。攻击者可以利用这个漏洞,在目标SMB服务器或客户端上执行代码,操控内网主机,通过被控主机对内网进一步渗透,获取内网关键信息。

SMBGhost漏洞原理如下:

微软在Windows 10 v1903/Windows Server v1903的SMB 3.1.1协议中,开启了对数据压缩传输的支持。SMB客户端和服务端在准备解压数据(身份认证请求)时,没有对COMPRESSION_TRANSFORM_HEADE结构进行安全校验,导致后续分配buffer时整形溢出,这就是漏洞的成因。

漏洞影响版本?

Windows 10版本1903(32位系统)

Windows 10版本1903(基于ARM64系统)

Windows 10版本1903(基于x64系统)

Windows 10版本1909(32位系统)

Windows 10版本1909(基于ARM64系统)

Windows 10版本1909(基于x64系统)

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

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

SMBGhost漏洞影响Windows 10和Windows Server的多个版本,可谓是继MS17-010(永恒之蓝)、CVE-2019-0708后,又一个蠕虫级RCE漏洞,危害严重。

实验室复现过程

靶机:192.168.211.3

攻击机:192.168.203.177

1、使用poc脚本检查是否存在SMBGhost漏洞,检查结果显示靶机存在该漏洞。

2、使用exp脚本进行漏洞利用,反弹shell到指定设备。

指定设备上开启nc监听,设备上线,可以执行windows的cmd命令,靶机已经被控制。

如何防护漏洞?

1、逐步点击:设置-更新和安全-Windows更新-检查更新,或直接对应补丁(KB4551762)进行安装。

2、在注册表HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters中,建立一个名为DisableCompression的DWORD,值为1,禁止SMB的压缩功能。或powershell Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” DisableCompression -Type DWORD -Value 1 -Force 。

3、封堵445端口,或开启windows防火墙。

4、使用安全设备对攻击进行拦截,目前安博通产品已有对应规则,可对该漏洞进行防护。