zoukankan      html  css  js  c++  java
  • Detours信息泄漏漏洞

    Detours信息泄漏漏洞

     

    受影响的软件及系统

    Detours3.0和之前版本号

     

    简单介绍

    与该漏洞相关的最早描写叙述可见于tk教主发现的“微软EMET破坏系统ASLR安全机制漏洞”(參考[1]),事实上原理是一样的。都是由于使用了Detours库的原因。

     

    漏洞危害

    非常多安全软件出于安全考虑,会把非常多模块注入到IEOffice等软件里面。而非常多注入模块里面使用Detours库对系统API进行Hook操作,Detours库里面存放系统API原始地址的内存有信息泄漏漏洞,这样就会破坏这些软件的ASLR安全机制,继而进行漏洞利用。

     

    漏洞原理

    Detours进行Inline Hook操作时。在一些固定的地址(譬如0x6FFF00000x80010000不同的Detours版本号有差异)处分配了(除非已经被占用而不能分配)一块固定大小的具有可运行属性的内存。在这个内存上面存放着规则的结构体数组。里面有非常多被Hook函数的真实地址。

    能够通过Review Detours的源代码来一窥端倪。


    同一时候,我们能够自己写代码调试一下,看看是否在0x6FFF0000固定地址能够看到这个结构呢。例如以下图。

     


     

    眼下可下载的Detours个人最高版本号是3.0。该版本号还没有解决问题,可是从源代码实现上面来看,做了一些小修改,把分配部分封装成了两个函数来处理。可是依旧使用了固定地址,假设使用了Detours3.0,也须要堵上这个问题。


     

    漏洞修复

    这边的工程师zeno已经提了一种简单有用的方法。通过直接修改Detours的源代码,在使用VirtualAlloc分配内存时,对指定的基址,增加一个随机值。这样就把这块内存的地址一定程度上的随机化了。能够抵抗通过硬编码这块地址来进行ROP,继而减少漏洞利用的难度。

     

    參考文档

    [1] 微软EMET破坏系统ASLR安全机制漏洞http://www.nsfocus.net/index.php?act=advisory&do=view&adv_id=55

    [2] Detours http://research.microsoft.com/en-us/projects/detours/

     

  • 相关阅读:
    未能加载包“Microsoft SQL Server Data Tools”
    SharePoint 客户端对象模型共用ClientContext的坑
    安装VisualStudio 2015 x64 中文企业版失败
    Could not load file or assembly 'Microsoft.SqlServer.Management.Sdk.Sfc, Version=11.0.0.0 系统找不到指定的文件。
    为Sharepoint 2010 批量创建SharePoint测试用户
    User Profile Service Application 配置同步连接时,报 MOSS MA not found
    SharePoint 2010 系统账户没完全控制权限了
    百度编辑器 UEditor 报错汇总
    更改SharePoint 2007/2010/2013 Web 应用程序端口号
    SharePoint 2013 报:网站在改进过程中处于只读状态,对此给您带来的不便,我们深表歉意
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5055117.html
Copyright © 2011-2022 走看看