Windows RDP服务高危缝隙分析(CVE-2019-0708)
颁布功夫 2019-05-292019年5月14日微软官方颁布垂危安全补丁,建复了Windows远程桌面服务的远程代码执行高危缝隙CVE-2019-0708(CNVD-2019-14264、CNNVD-201905-434),该缝隙影响了某些旧版本的Windows系统。由于该缝隙无需身份验证且无需用户交互,所以这个缝隙能够通过网络蠕虫的方式被利用,利用此缝隙的恶意软件能够从被习染的推算机传布到网络中其他易受攻击的推算机,传布方式与2017年WannaCry恶意软件的传布方式类似。
缝隙影响版本
Windows 7
Windows XP
Windows 2003
Windows Server 2008
Windows Server 2008 R2
RDP和谈简介
RDP是微软终端服务利用的和谈,服务端基于Windows操作系统,Windows从NT起头提供终端服务。RDP和谈基于T.128(T.120和谈族)提供多通路通讯,并进行了拓展。
RDP和谈的衔接流程能够分为10个分歧的阶段。这里我们关注通路衔接有关的几个阶段。
(1)ConnectionInitiation(衔接初始化)
客户端通过向服务器发送Class 0 X.224 ConnectionRequest PDU启动衔接要求。服务器使用Class 0 X.224 Connection Confirm PDU进行响应。之后,客户端和服务器之间发送的所有后续数据都被包裹在X.224数据和谈数据单元(PDU)中。
(2) BasicSettings Exchange(互换根基设置)
通过使用MCS Connect Initial PDU和MCS Connect Response PDU在客户端和服务器之间互换根基设置。GCC的全称是 Generic Conference Control,GCC 作为 T.124 的尺度和谈,用于陆续传输大量数据时,将数据整顿分块传输。
(3)Channel Connection (虚构通路衔接)
补丁分析
通过补丁包分析,我们发现补丁前后差距在于termdd.sys文件的IcaBindVirtualChannels及IcaReBindVirtualChannels,增长了对MS_T120和谈通路的判定。若是是通路和谈名为MS_T120,则设定IcaBindChannel的第三个参数为31。
服务端在初始化阶段,会创建MS_T120, Index为31的通路。在收到MCS Connect Initial数据封包后进行通路创建和绑定操作。
缝隙道理分析
我们在客户端MCS Connect Initial数据封包中,增长一个名为MS_T120的通路。
接下来,我们开释这个Channel。我们向MS_T120通路发送机关的数据,但由于这个通路已经被绑定到内置的MS_T120通路,所以数据最终会派发到相应的处置函数rdpwsx!MCSProtData中,而后挪用MCSChannelClose函数关关通路。
尔后,我们向系统的MS_T120通路发送数据,再次引用被关关的通路,从而导致UAF缝隙。
解决规划
目前宝运莱官方网站已经颁布了对应的产等第解决规划,有关链接为:/article/1/9148.html 。
对于Windows 7及Windows Server 2008的用户,实时装置Windows颁布的安全更新。
对于Windows 2003及Windows XP的用户,实时更新系统版本。


京公网安备11010802024551号