新闻中心
新闻中心 > 漏洞预警 | Remote Desktop Protocol任意代码执行漏洞(CVE-2019-07
漏洞预警 | Remote Desktop Protocol任意代码执行漏洞(CVE-2019-07
漏洞信息
漏洞描述
CVE-2019-0708,属于远程代码执行漏洞,当未经身份验证的攻击者使用RDP连接到目标系统并发送特制请求时,即可触发该漏洞。无需用户交互,成功利用此漏洞的攻击者可以安装应用程序,查看、更改、删除数据或创建具有完全用户权限的新账户。此外,恶意攻击者还很有可能利用该漏洞专门编写恶意代码到定制的恶意软件,攻击易受感染的主机并进行病毒传播。
漏洞分析
漏洞原理
Windows Server 2000使用RDP 5.1定义了32个静态虚拟信道(Static Virtual Channel, SVC),由于信道数量的限制,进一步定义了动态虚拟信道(Dynamic Virtual Channel, DVC),这些信道包含在专用SVC中。 SVC在会话开始时创建并保持到会话终止,而DVC将会根据是否需要确定是否创建和抛弃。
此次微软补丁termdd.sys中的_IcaBindVirtualChannels和_IcaRebindVirtualChannels函数用于对这32个SVC进行绑定相关操作。
如下图所示,RDP连接序列在信道安全属性设置之前就进行了连接和设置,这为CVE-2019-0708的创建和传播提供了条件。
漏洞流量分析
下图展示了一个标准GCC Conference初始化序列的信息。
然而,在GCC Conference初始化期间,攻击者可以在31之外的信道上设置另一个名为”MS_T120”的SVC,这种行为将会导致堆内存破坏,最终可以实现远程代码执行。下图展示了GCC Conference初始化序列期间的异常信道请求:
漏洞补丁函数分析
通过对微软更新的CVE-2019-0708补丁的分析,可以发现该补丁修复了RDP驱动程序termdd.sys中的_IcaBindVirtualChannels和_IcaRebindVirtualChannels函数。
下图补丁函数分析所示,Microsoft补丁针对使用了信道名称“MS_T120”的情况下,添加了对客户端连接请求的检查,并确保它在termdd.sys中的_IcaBindVirtualChannels和_IcaRebindVirtualChannels函数中仅绑定到通道31(1Fh)。
影响范围
暴露资产情况
由以上数据统计看来,国内RDP的使用基数很高,用户相当广泛。其中RDP使用量最高的三个省市是北京,浙江以及广东。北京的使用量最高,数量达864982台,浙江省的使用量也达57万以上,广东省的使用量达27万。因此,针对此次RDP的漏洞防范尤为重要。
目前受影响Windows版本
Microsoft Windows Server 2008 R2 for x64-based Systems SP1
Microsoft Windows Server 2008 R2 for Itanium-based Systems SP1
Microsoft Windows Server 2008 for x64-based Systems SP2
Microsoft Windows Server 2008 for Itanium-based Systems SP2
Microsoft Windows Server 2008 for 32-bit Systems SP2
Microsoft Windows Server 2003
Microsoft Windows 7 for x64-based Systems SP1
Microsoft Windows 7 for 32-bit Systems SP1
解决方案
深信服下一代防火墙可轻松防御此漏洞,建议部署深信服下一代防火墙的用户更新至最新的安全防护规则,可轻松抵御此高危风险。修复建议如下:及时安装微软发布的安全更新补丁:
Microsoft官方已经在 2019年5月14日修复了该漏洞,用户可以通过安装微软的安全更新来给系统打上安全补丁,下载地址为:https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0708同时针对已不受微软更新支持的系统Windows Server 2003和Windows XP提供的安全更新,下载地址:https://support.microsoft.com/zh-cn/help/4500705/customer-guidance-for-cve-2019-0708
缓解措施(在无法及时安装微软安全更新的情况下作为临时性解决方案)
若用户不需要用到远程桌面服务,建议禁用该服务。开启网络级别身份验证(NLA),此方案适用于Windows 7, Windows Server 2008, Windows Server 2008 R2。
暂时性修改RDP的连接端口,默认端口为3389。
使用ACL对RDP的访问来源进行限制。
使用RDP网关,网关的功能是安全的将流量从远程客户端传递到本地设备。
使用RDP网关可以防止或最小化远程用户访问,并使组织能够更好的控制用户角色,访问权限和身份验证需求。
以上缓解措施只能暂时性针对该漏洞对系统进行部分缓解,强烈建议在条件允许的情况下及时安装微软安全更新。
参考链接
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0708https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/rdp-stands-for-really-do-patch-understanding-the-wormable-rdp-vulnerability-cve-2019-0708/
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/5073f4ed-1e93-45e1-b039-6e30c385867c