CVE-2019-0708 微软远程桌面服务远程代码执行漏洞分析之补丁分析

首发于我的新博客

https://www.giantbranch.cn/2019/05/15/CVE-2019-0708 微软远程桌面服务远程代码执行漏洞分析之补丁分析/

声明:分析只是个人观点,可能关注的点并不对,分析的可能有问题 仅供参考

5月14日,微软发了这个漏洞的补丁。

不废话直接补丁对比,看看啥情况,安装完是termdd.sys这个驱动更新了,应该是这个的问题

上神器对比,可以看到改了两处——IcaRebindVirtualChannels和IcaBindVirtualChannels
CVE-2019-0708 微软远程桌面服务远程代码执行漏洞分析之补丁分析

在点开最后一个看看,加了一个strcmp

CVE-2019-0708 微软远程桌面服务远程代码执行漏洞分析之补丁分析

看伪代码好看点

CVE-2019-0708 微软远程桌面服务远程代码执行漏洞分析之补丁分析

可以看到重点应该在MS_T120这个名字的Channel,假如是这个Channel,那么strcmp返回0

最后调用的是_IcaBindChannel(v5, 5, 31, v7);

可以看到这个直接将第3个参数写死了——31

我们跟进函数看看,假如第3的参数可控,那么就能达到越界写的效果,所以微软直接将参数写死为31了

CVE-2019-0708 微软远程桌面服务远程代码执行漏洞分析之补丁分析

由于对rdp不太熟悉,能力也不足,构造poc这事暂时是干不了,也就写到这了。

而且其实另外一个函数IcaBindVirtualChannels也是这么修改的

CVE-2019-0708 微软远程桌面服务远程代码执行漏洞分析之补丁分析

声明

以上分析只是个人观点,可能关注的点并不对,仅供参考