zoukankan      html  css  js  c++  java
  • CVE-2019-0708 微软远程桌面服务远程代码执行漏洞分析之补丁分析

    首发于我的新博客

    https://www.giantbranch.cn/2019/05/15/CVE-2019-0708%20%E5%BE%AE%E8%BD%AF%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E6%9C%8D%E5%8A%A1%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90%E4%B9%8B%E8%A1%A5%E4%B8%81%E5%88%86%E6%9E%90/

    2019.09.30——更新:本分析最后对于漏洞的判断有误,漏洞是UAF漏洞,所以更新了一篇文章,具体请看:

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

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

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

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

    上神器对比,可以看到改了两处——IcaRebindVirtualChannels和IcaBindVirtualChannels

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

    看伪代码好看点

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

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

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

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

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

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

    声明

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

  • 相关阅读:
    jdbc连接数据库
    UUID
    Oracle 查询
    JAVA开发工具eclipse中@author怎么改
    JAVA实现多线程入门
    JAVA编程中的类和对象
    为ubuntu操作系统增加root用户
    搭建Java环境JDK,和运行环境JRE
    安装Ubuntu14.04版本的操作系统
    Eclipse连接到My sql数据库之前操作
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286470.html
Copyright © 2011-2022 走看看