CVE-2019-0708追踪记录
漏洞编号:CVE-2019-0708
漏洞类型:Windows远程桌⾯服务(RDS)远程执⾏代码漏洞
漏洞危害:远程⾼危
漏洞简介:
由于漏洞是预⾝份验证,未经⾝份验证的攻击者可以通过RDP连接到存在此漏洞的系统,成功利⽤此漏洞后可以在⽬标系统上执⾏任意代码。该漏洞可能导致蠕⾍病毒在未受保护的系统中爆发。
易受攻击的操作系统:
Windows 2003
Windows XP
Windows 7
cve漏洞库Windows Server 2008
Windows Server 2008 R2
漏洞补丁对⽐分析:
IDA7.0+diaphora
通过补丁分析可以看到,补丁使⽤通道名称“MS_T120”添加了对客户端连接请求的检查,并确保它在termdd.sys中的
_IcaBindVirtualChannels和_IcaRebindVirtualChannels函数中仅绑定到通道31 (1Fh)(IDA插件对函数名称识别不理想,通过对⽐其他资料确定的函数名称)
在IcaBindChannel函数中如果第三个参数可控可以实现越界写,所以在补丁中直接将参数写为固定参
数32。
漏洞原理解析:
远程桌⾯协议(RDP)通过定义虚拟通道中的通信实现⽀持客户端和终端的连接,虚拟通道是双向数据管道,Windows Server 2000使⽤RDP 5.1定义了32个静态虚拟通道(SVC)。
如上图所⽰,RDP连接可以在安全开始之前启动并进⾏通道设置,这样成功利⽤CVE-2019-0708后可以实现在发现3389端⼝开放后通过⽹络实现⾃我传播。漏洞成因是由于“MS_T120”SVC名称在RDP协议的GCC协议初始化序列期间被绑定为数字31的参考信道,这是⼀个微软未公布的内部信道,客户端没有合法请求来使⽤“MS_T120”SVC进⾏连接,
正常没有MS_T120信道的GCC协议初始化序列期间的合法信道请求如下:
但在GCC协议初始化期间,客户端提供服务器未列⼊⽩名单的频道名称,那么攻击者可以在31以外的频道上设置另⼀个名
为“MS_T120”的SVC。这是在31以外的频道中使⽤MS_T120导致堆内存损坏和实现远程代码执⾏。
如图GCC会议初始化序列期间的异常信道请求,信道号为4的“MS_T120”信道。
MS_T120通道管理中涉及的组件.MS_D120引⽤通道在rdpwsx.dll和rdpwp.sys中分配的堆池中创建。当在31以外的通道索引的上下⽂中处理MS_T120引⽤通道时,堆损坏发⽣在termdd.sys中。如下图:
对⼏个poc的使⽤分析收录:
PoC_Hitting_Vulnerable_Path:
此poc可实现xp sp3 x86 攻击蓝屏 但在win7试验时会被拒
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论