引子:
2003年的“抗击非典”,17年后的2020年“抗击新冠”。
2017年的“永恒之蓝”,3年后的2020年“永恒之黑”。
历史:
2017年5月13日,在“胖哥技术堂”中发布了《截杀“WannaCrypt”,终结“永恒之蓝”》。三年后的今天再次为“永恒之黑”发文。
https://blog.51cto.com/liulike/1925357
预警:
微软在2020年3月12日发布了最新的SMBv3(3.1.1)远程代码执行漏洞(CVE-2020-0796),利用该漏洞无须权限即可实现远程代码执行,一旦被成功利用,其危害不亚于永恒之蓝。同时,CVE-2020-0796漏洞与“永恒之蓝”系列漏洞极为相似,都是利用Windows SMB漏洞远程攻击获取系统最高权限。
CVE-2020-0796 | Windows SMBv3 Client/Server Remote Code Execution Vulnerability
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796
受该漏洞影响的系统为Windows 10 Version 1903及之后的所有Windows 10操作系统,以及Windows Server Version 1903及之后的所有Windows Server操作系统。具体为:
Windows 10 Version 1903 for 32-bit Systems
Windows 10 Version 1903 for ARM64-based Systems
Windows 10 Version 1903 for x64-based Systems
Windows 10 Version 1909 for 32-bit Systems
Windows 10 Version 1909 for ARM64-based Systems
Windows 10 Version 1909 for x64-based Systems
Windows Server, version 1903 (Server Core installation)
Windows Server, version 1909 (Server Core installation)
非常幸运的是Windows 10 Version 1903和Windows Server Version 1903之前的Windows系统幸免,微软公布其未受影响,因为该漏洞只存在于使用SMB v3.1.1的系统,早期的系统中的不是该版本的SMB。因此让刚刚被移出微软支持列表的Windows 7“逃过一劫”。
绝杀:
为解决该漏洞,微软在2020年3月12日发布了KB4551762系列补丁,其包含了修复该漏洞的方案。用户只需要通过Windows Update进行自动或手动更新即可。
March 12, 2020—KB4551762 (OS Builds 18362.720 and 18363.720)
https://support.microsoft.com/zh-cn/help/4551762/windows-10-update-kb4551762
如果需要判断当前系统存在受影响的列表中,可以通过以下步骤判断是否已经进行的KB4551762补丁的更新。
以Windows 10 Version 1909操作系统为例,按Windows键+R键,打开“运行”对话框,输入“cmd”,点击“确定”,打开命令提示行窗口。
运行命令systeminfo,在“修补程序”字段中查看是否存在“KB4551762”的补丁,如果存在则表明已经修补了该漏洞,如果不存在,则应该及时修补该补丁。
如果不能联网在线执行Windows Update的计算机,或者无法连接Microsoft Update更新服务器的计算机。可以通过联网的计算机直接从Microsoft Update Catalog下载离线补丁更新包,然后在上述计算机上运行补丁更新。
Microsoft Update Catalog
https://www.catalog.update.microsoft.com/Search.aspx?q=KB4551762
假如为了某些应用的兼容性考虑,无法运行KB4551762修复程序的受影响Windows系统计算机,可以通过修改注册表项禁用SMBv3的压缩功能来暂时回避该风险。其操作方法如下:
点击“开始”按钮,在“应用程序”菜单中找到“Windows PowerShell”文件夹并展开。然后,右击“Windows PowerShell”应用程序,在上下文菜单中点击“以管理员身份运行”。
如果有“用户账户控制”对话框弹出,则点击“是”允许后续操作。
在打开的PowerShell命令行窗口中运行:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 -Force
并且通过:
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
确认操作设置是否成功。
但需要注意,这个并非为永久解决的办法,强烈建议通过KB4551762彻底修补该漏洞。再者,该禁用SMBv3压缩功能的方法,将对SMB的效率和性能带来极大影响。如果需要重新启用通过上述修改注册表操作禁用的SMBv3压缩功能,可以通过以下方法来实现。
在打开的PowerShell命令行窗口中运行:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 0 -Force
并且通过:
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
确认操作设置是否成功。
此外,如果为企业网络,强烈建议使用防火墙阻断TCP445端口的纵向通讯,并且针对不需要使用TCP445或SMB的设备或网络也阻止相关通过,以免遭到通过SMB的横向流量的攻击和入侵。