CVE-2019-0708漏洞: RDP= Really DO Patch?

作者:   深圳市网安计算机安全检测技术有限公司 2019/05/29 10:06:46 69次阅读 国际
文章来源:https://www.4hou.com/vulnerable/18181.html

        CVE-2019-0708是RDP协议的安全漏洞,具有蠕虫功能,因此危害很大。微软快速发布了该漏洞的补丁。但研究人员认为恶意攻击者可能已经将该漏洞武器化,在不久的将来可能就会看到再野漏洞利用了。

受影响的操作系统有:

· Windows 2003

· Windows XP

· Windows 7

· Windows Server 2008

· Windows Server 2008 R2

        蠕虫是可以在网络上进行传播的病毒。蠕虫可以在没有用户帮助的情况下自动在远程机器上执行。如果病毒的主要攻击向量是通过网络,那么就可以将其分类为蠕虫。

概述

        RDP协议连接了客户端和终端,定义了虚拟信道之间通信的数据。Windows Server 2000使用的RDP协议版本为RDP 5.1,定义了32个静态虚拟信道(Static Virtual Channels,SVC)。SVC在会话开始时创建在会话结束后断开,而DVC(动态虚拟信道)可按需创建和断开。

        如图1所示,RDP Connection Sequence连接的初始化在Security Commencement之前,因此CVE-2019-0708可以在3389端口上进行网络自传播,因此具有蠕虫的相关性质。

CVE-2019-0708漏洞: RDP= Really DO Patch?

                                            图1: RDP协议序列

        该漏洞是由于RDP协议的GCC Conference Initialization过程中,MS_T120 SVC name被绑定为引用信道31。信道名是微软内部使用的,因此对客户端来说没有明显的合法用例在名为MS_T120的SVC上建立连接。

        图2是没有MS_T120信道的GCC Conference Initialization序列的合法信道请求。

CVE-2019-0708漏洞: RDP= Really DO Patch?

                                        图2: 标准GCC Conference Initialization Sequence

        但在GCC Conference Initialization阶段,客户端会提供不在服务器白名单中的信道名,也就是说攻击者可以在除31外的其他信道上建立另一个名为MS_T120的SVC信道。在除31外的其他西岛上使用MS_T120会导致堆内存破坏和远程代码执行。

        图3是信道号为4的GCC Conference Initialization阶段的信道名为MS_T120的异常信道请求。

CVE-2019-0708漏洞: RDP= Really DO Patch?

                                    图3: 异常的GCC Conference Initialization Sequence – 非标准信道上的MS_T120

        MS_T120信道管理中的组件如图4所示。MS_T120引用信道在rdpwsx.dll中创建,堆池分配在rdpwp.sys中。当MS_T120引用引导在除31外的其他信道索引环境中时termdd.sys就会出现堆破坏。

CVE-2019-0708漏洞: RDP= Really DO Patch?

                                                    图4: Windows Kernel和用户组件

        微软补丁如图5所示,在使用信道名为MS_T120的客户端连接请求中添加了一层检查来确保它只与termdd.sys中的_IcaBindVirtualChannels和 _IcaRebindVirtualChannels函数的31信道绑定。

CVE-2019-0708漏洞: RDP= Really DO Patch?

                                    图5: Microsoft补丁中加入了信道绑定检查

        研究人员分析了应用在Windows 2003和XP中的补丁,理解了补丁前后RDP协议分析的过程,然后决定创建POC进行测试。POC可以在受害者机器上远程执行代码来启动计算器应用。

CVE-2019-0708漏洞: RDP= Really DO Patch?

                                                                    图6: PoC执行截图

POC视频参见:

 https://www.youtube.com/embed/syF6rSM0JSM

        研究人员调查后确认该漏洞利用是可以工作的,因此可能在有漏洞的机器上在没有认证的情况下远程执行代码。如果启用的话,网络级认证可以有效阻止该漏洞利用,但如果攻击者有凭证就可以绕过这一步。

建议

        研究人员确认系统补丁可以阻止该漏洞利用,研究人员建议用户尽快更新系统补丁。

        禁用外部使用RDP,内部使用RDP也要有所限制,如果不需要就禁用。如果RDP被禁用,漏洞利用就无法成功使用。

        RDP协议的GCC Conference Initialization序列中含有MS_T120的客户端请求如果信道不是31,就拦截该请求,除非有证据证明是合法请求。

        因为可以在注册表域修改RDP的默认端口,重启后就会与新指定的端口相关联。从检测的角度来看,这是高度相关的。

CVE-2019-0708漏洞: RDP= Really DO Patch?

                                                    图7: 在注册表中修改默认RDP端口

        恶意软件或企业管理员可以以admin权限修改端口并在注册表中写入新端口,如果系统没有打补丁,漏洞仍然可以被利用。

本文翻译自:https://securingtomorrow.mcafee.com/other-blogs/mcafee-labs/rdp-stands-for-really-do-patch-understanding-the-wormable-rdp-vulnerability-cve-2019-0708/如若转载,请注明原文地址: https://www.4hou.com/vulnerable/18181.html


指导单位
广东省公安厅网络警察总队 广东省信息安全等级保护协调小组办公室