2020年年初,微软发布了一个紧急补丁,以修复SMBv3的漏洞,该漏洞编号为CVE-2020-0796。
CVE-2020-0796的可蠕虫性让人想起永恒之蓝,永恒之蓝是SMBv1中的一个远程代码执行(RCE)漏洞,也就是灾难性恶意软件WannaCry的主要媒介。一旦攻击者成功利用CVE-2020-0796,远程攻击者就可以完全控制存在漏洞的系统,所以被称为“永恒之黑”。
永恒之黑示例
受永恒之黑影响的系统
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版(服务器核心安装)
永恒之黑的漏洞利用机制
srv2.sys中的Srv2DecompressData函数中存在一个整数溢出错误。当SMB服务器收到格式错误的SMB2_Compression_Transform_Header时,可以触发此漏洞。此函数创建一个缓冲区,用于保存解压缩的数据,该函数通过将“ OriginalSize”添加到“ Offset”来计算缓冲区大小,导致ECX寄存器中的整数溢出。一旦计算出缓冲区大小,它将大小传递给SrvNetAllocateBuffer函数来分配缓冲区。
较大的OriginalSize +偏移量可能会触发srv2.sys中的Srv2DecompressData函数中的整数溢出
随后,内核调用了RtlDecompressBufferXpressLz函数来解压缩LZ77数据。上面的屏幕截图显示,内核使用“ rep movs”指令将0x15f8f(89999)字节的数据复制到缓冲区中,该缓冲区的大小先前分配为0x63(99)字节,导致缓冲区溢出,从而导致内存损坏和内核崩溃。
在ntoskrnl.exe的RtlDecompressBufferXpressLz函数中解压缩LZ77数据和缓冲区溢出
永恒之黑属于SMB内存损坏漏洞,其可蠕虫性可能能够利用此漏洞感染并通过网络传播,这与WannaCry勒索软件在2017年利用SMB服务器漏洞的方式十分类似。
攻击者是如何利用永恒之黑的?
攻击者利用永恒之黑的攻击手段主要有三种。
手段一:在某些公司网络上加入域时,会自动打开SMB端口,从而使该计算机暴露于远程攻击形式,利用该漏洞,开发或使用漏洞利用的攻击者可以完全控制该计算机。
手段二:攻击者的另一种情况是创建自己的SMB服务器,然后诱使用户连接到其恶意服务器。这种攻击可能采取垃圾邮件或即时消息的形式,并带有指向托管恶意代码的邪恶SMB服务器的链接。如果攻击者说服用户单击链接,或者只是远程系统上的共享名(或映射的驱动器),那么恶意服务器将发送该链接,并立即获得对其的完全控制。
手段三:攻击者首先通过其他方式破坏计算机,例如,通过成为打开恶意附件的受害者成为受害者。随后,攻击者可以利用永恒之黑来修改内核的关键组件以获得SYSTEM特权,使攻击者几乎可以在计算机上执行任何操作。
永恒之黑应当如何避免?
系统安全防护不足,风险最大的无疑是企业核心数据。为了让企业有效防护永恒之黑的漏洞利用攻击,我们对比了三种可行的防护方案:
防护方案 | 通过PowerShell命令禁用压缩功能,以阻止未经身份验证的攻击者利用SMBv3服务器的漏洞 | 在网络外围防火墙处阻止TCP端口445 | 安芯网盾智能内存保护系统 |
操作细节 | 1、点击“开始”按钮,在“应用程序”菜单中找到“Windows PowerShell”文件夹并展开。然后,右击“Windows PowerShell”应用程序,在上下文菜单中点击“以管理员身份运行”。2、执行命令Set-ItemProperty -Path“ HKLM:\ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters” DisableCompression -Type DWORD -Value 1 -Force | 1、利用防火墙在网络进入和退出的所有点都阻止TCP端口445,以防止SMB流量进出互联网。2、进行内部网络分段,并禁止尝试进行台式机到台式机的SMB连接,以防止横向移动。 | 安装安芯网盾智能内存保护系统,在无声中阻止永恒之蓝漏洞利用。 |
优点 | 能够有效防止通过SMB端口进行的永恒之黑攻击手段。 | 能够在阻塞受影响的端口帮助避免基于Internet的永恒之黑攻击手段。 | 能够多维度地防护永恒之黑漏洞攻击利用,包括永恒之黑的三种攻击手段。 |
缺点 | 1、并非永久解决的办法 2、对SMB的效率和性能带来极大影响。 3、仅能防护上述利用永恒之黑的第一种攻击手段。 | 只能防止来自企业外围的攻击,也就是第一种攻击手段,仍可能容易受到企业范围内的攻击。 | 1、软件比较专业,使用具有学习成本。 2、不是系统自带的功能,需要部署安装。 |
目前全球范围可能存在永恒之黑漏洞的主机总量约10万台,首当其冲成为黑客攻击的目标,若被蠕虫化利用可导致数据丢失、信息泄露、服务器瘫痪等情况。传统安全防护措施在此类高级威胁面前已经失效,核心数据与业务必须得到更进一步的保障。安芯网盾智能内存保护系统通过虚拟化监测内存异常,通过网络过滤仅允许合法的SMB通信,正常的业务通信不受影响,同时阻止了主机之间的其余横向移动,轻松解决永恒之黑和其他关键漏洞。
参考链接:
[1]https://news.sophos.com/en-us/2020/03/12/patch-tuesday-for-march-2020-fixes-the-serious-smb-bug-cve-2020-0796/
[2]https://paper.seebug.org/1168/
[3]https://www.sans.org/blog/microsoft-smbv3-11-vulnerability-and-patch-cve-2020-0796-explained/
[4]https://www.avesnetsec.com/cve20200796
[5]https://medium.com/@knownsec404team/cve-2020-0796-windows-smbv3-lpe-exploit-poc-analysis-c77569124c87
[6]https://www.exploit-db.com/exploits/48267
[7]https://www.fortinet.com/blog/threat-research/cve-2020-0796-memory-corruption-vulnerability-in-windows-10-smb-server
[8]https://blog.51cto.com/liulike/2478684
[9]https://blog.rapid7.com/2020/03/12/cve-2020-0796-microsoft-smbv3-remote-code-execution-vulnerability-analysis/
如若转载,请注明原文地址