新闻中心

    新闻中心  >  POC已公开!RDP远程代码执行漏洞被利用引发蓝屏
    POC已公开!RDP远程代码执行漏洞被利用引发蓝屏
    背景图 2019-06-04 00:00:00

    2019年5月31日,深信服安全团队发现公开的CVE-2019-0708的POC已在github上流传,并第一时间进行复现以及分析。经测试,该POC可导致目标主机蓝屏崩溃,特此再次发出预警。

    漏洞信息

    漏洞名称:Remote Desktop Protocol
    威胁等级:严重
    影响范围:Windows XP、Windows 7 、Windows Server 2003、Windows Server 2008、Windows Server 2008 R2
    漏洞类型:任意代码执行
    漏洞利用难度:容易
    目前漏洞攻击方式已经公开,后续极有可能发生利用漏洞的攻击事件。深信服提醒广大用户,务必及时更新安全补丁!

    漏洞复现

    根据该POC的发布者称,该POC针对Windows Server 2008 R2 x64。深信服安全团队第一时间进行了复现,证实该POC确实可导致目标主机的蓝屏崩溃并重启。

    测试结果表明,除此版本系统外,该POC还会影响Windows 7 sp1 x64,Windows 7 sp1 x86,Windows Server 2008 x86。(其余尚未进行验证)

    攻击者只需以受害主机IP地址为参数执行一个python文件,即可成功实施攻击,最终目标系统处于蓝屏崩溃状态。

    漏洞分析

    成功利用漏洞的前提是将名称为“MS_T120”的静态信道成功绑定到正常信道以外。由于微软官方在内部会使用一个名为MS_T120的信道,因此此信道理论上不应该接收任意消息。

    然而,RDP的内部组件有很多,包括svchost.exe中的几个用户模式的dll,以及几个内核模式的驱动程序。攻击者在MS_T120信道上发送消息,这将导致termdd.sys驱动程序中触发一个双重释放漏洞(free-after-free)。具体分析如下:

    客户端在完成RDP协议的握手过程后,将开始向已经绑定的各个信道中发送消息。MS_T120信道的消息是由用户模式组件——rdpwsx.dll进行管理,该dll创建一个线程,该线程则将在函数rdpwsx!IoThreadFunc中进行循环,通过I/O端口读取消息。

    数据通过I/O数据包传入后,将进入rdpwsx!MCSPortData 函数进行处理:
    从函数中可以看到,在rdpwsx!MCSPortData 函数中,有两个opcode:0x0和0x2。如果opcode为0x2,则调用rdpwsx!HandleDisconnectProviderIndication函数执行清理动作,然后使用rdpwsx!

    MCSChannelClose关闭通道。
    从理论上来说,发送的数据包大小都在合法范围的MS_T120消息,将会正常关闭MS_T120信道,并断开连接程序(此时opcode为0x2),并且进行清理操作,此时将不会产生远程代码执行和蓝屏崩溃的风险。但如果发送的数据包大小无效,就会导致远程代码执行和拒绝服务。

    影响范围

    目前受影响的Windows版本:
    Microsoft Windows XP
    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

    解决方案

    漏洞检测

    深信服云眼在漏洞爆发之初,已完成检测更新,对所有用户网站探测,保障用户安全。不清楚自身业务是否存在漏洞的用户,可注册信服云眼账号,获取30天免费体验。注册地址为:https://saas.sangfor.com.cn

    深信服云镜同样在漏洞爆发的第一时间就完成从云端下发本地检测更新,部署云镜的用户只需选择紧急漏洞检测,即可轻松、快速检测此高危风险。

    深信服EDR,已完成漏洞规则库的紧急更新,支持该漏洞的检测和补丁分发。更新EDR版本到3.2.10及以上版本,更新漏洞规则库版本到20190515185804及以上即可检测漏洞并分发补丁。联网用户可直接在线更新, 离线版本及漏洞规则库已上传至深信服社区,有需要的用户请到深信服社区下载。

    修复建议

    及时安装微软发布的安全更新补丁:
    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。

    以上缓解措施只能暂时性针对该漏洞对系统进行部分缓解,强烈建议在条件允许的情况下及时安装微软安全更新。

    参考链接

    https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/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/
    https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/5073f4ed-1e93-45e1-b039-6e30c385867c
    https://zerosum0x0.blogspot.com/2019/05/avoiding-dos-how-bluekeep-scanners-work.html