Wormable RDP漏洞CVE-2019-0708详细分析

isnull   ·   发表于 2019-5-28   ·   漏洞文章

在Microsoft的May Patch Tuesday周报中发布了针对远程桌面协议(RDP)中的漏洞安全公告。在这个补丁报告中,微软为Windows XP和其他几个操作系统提供了修复报告,然而这些操作系统多年里并没有得到非常安全的补丁更新支持。这就是为何微软将此漏洞设定为高危的原因所在。

根据该通报,我们发现此问题非常严重,能够导致远程执行代码并非常容易被攻击者利用,这意味着它可以在未受保护的系统上进行自动传播。该公告使用了网络蠕虫“WannaCry”的通告方法,该漏洞在2017年3月微软发布MS17-010作为相关漏洞的补丁后仅几个月就被大量利用。McAfee Advanced Threat Research一直在分析这个最新的bug以帮助预防类似的情况,我们敦促那些未修补和受影响的系统尽快应用CVE-2019-0708补丁。恶意行为者极有可能部署此漏洞,并且在不久的将来可能会将其发布到网络用于攻击。

易受攻击的操作系统:

  • Windows 2003
  • Windows XP
  • Windows 7
  • Windows Server 2008
  • Windows Server 2008 R2
  • 蠕虫是主要在网络上复制的病毒。蠕虫通常会在远程计算机上自动执行,而无需用户提供任何额外帮助。如果病毒的主要攻击媒介是通过网络,那么它就被归类为蠕虫病毒。

    远程桌面协议(RDP)支持客户端和端点之间的连接,定义虚拟通道之间通信的数据。虚拟通道是双向数据管道,可以扩展RDPWindows Server 2000使用RDP 5.1定义了32个静态虚拟通道(SVC),但由于定动态虚拟通道(DVC)的通道数量存在限制,这些通道包含在专用SVC中。 SVC在会话开始时创建并保持到会话终止,这与需要创建和拆除的DVC不同。

    下图为32个SVC绑定信息,CVE-2019-0708补丁修复了RDP驱动程序termdd.sys中的_IcaBindVirtualChannels_IcaRebindVirtualChannels函数。如图所示,RDP连接序列连接在安全开始之前启动并进行通道设置,这使得CVE-2019-0708可以对其进行设置,因为它可以在发现开放端口3389后通过网络自我传播。



    该漏洞是由于“MS_T120”SVC名称在RDP协议的GCC初始化期间被绑定为数字31的参考信道。 此通道名称在Microsoft内部使用,并且客户端没有合法用例来请求名为“MS_T120”SVC连接。

    图2显示了没有MS_T120信道的GCC初始化序列合法信道请求。



    但是,在GCC初始化期间,客户端所提供的服务器中并未列入白名单的频道名称,这意味着攻击者可以在31以外的频道上设置另一个名为“MS_T120”的SVC。在31以外的频道中使用MS_T120 会导致堆内存损坏和远程代码执行(RCE)。

    图3显示了GCC会议初始化序列期间的异常信道请求,其信道号为4且名称为“MS_T120”。



    图4展现了MS_T120通道管理中涉及的.MS_D120组件是如何在引用通道rdpwsx.dllrdpwp.sys中完成堆分配并创建。 当在31以外的通道索引的上下文中处理MS_T120引用通道时,堆损坏发生在termdd.sys中。



    现在,如图所示的Microsoft补丁使用通道名称“MS_T120”添加了对客户端连接请求的检查,并确保它在termdd.sys中的_IcaBindVirtualChannels_IcaRebindVirtualChannels函数中仅绑定到通道31(1Fh)。


    在我们调查了Windows 2003XP的补丁并了解了如何在补丁之前和之后解析RDP协议后,我们决定创建并测试一个验证脚本(PoC),它将使用该漏洞并远程执行代码在受害者的机器上启动计算器应用程序。


    在我们的设置中,RDP在计算机上运行,我们确认测试版本的操作系统上运行了未修补的版本。

    通过我们的调查,我们可以确认漏洞利用是否正常,并且可以在没有身份验证的情况下在易受攻击的系统上远程执行代码。 如果启用,网络级别身份验证应该有效地阻止此漏洞利用。但是,如果攻击者拥有验证凭证,他们将绕过此步骤。

    由于补丁可用,我们决定不提供有关漏洞的更深入的详细信息或公开发布POC。

  • 我们可以确认修补后的系统会阻止该漏洞,并强烈建议用户尽快修补。

  • 从网络外部禁用RDP并在内部对其进行限制。 禁用RDP时,漏洞利用不成功。

  • 除非有合法使用案例的证据,否则应阻止在RDP协议的GCC会议初始化序列期间在31以外的任何通道上使用“MS_T120”的客户端请求。

  • 需要注意的是,RDP默认端口可以在注册表字段中进行更改,并且重新启动后将绑定新指定的端口。



    公司内部的恶意软件或管理员可以使用管理员权限(或绕过UAC的程序)更改此设置,并在注册表中写入此端口。如果系统未修补,则该漏洞仍可通过唯一端口进行利用。

    本文为翻译文章,来自:[https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/rdp-stands-for-really-do-patch-understanding-the-wormable-rdp-vulnerability-cve-2019-0708/](https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/rdp-stands-for-really-do-patch-understanding-the-wormable-rdp-vulnerability-cve-2019-0708/


    转自先知社区

    打赏我,让我更有动力~

    0 Reply   |  Until 2019-5-28 | 843 View
    LoginCan Publish Content
    返回顶部 投诉反馈

    掌控者 © 2016. All Rights Reserved. 掌控者

    Powered by 掌控者 Version 2.1.3