IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    CVE-2015-2546:从补丁比对到Exploit

    神刀发表于 2015-09-27 20:21:10
    love 0
    百度安全攻防实验室2015/09/26 19:18 本月微软安全公告MS15-097修复了Microsoft Graphics组件中多个内核漏洞。其中Win32k内存损坏特权提升漏洞:CVE-2015-2546(https://technet.microsoft.com/zh-CN/library/security/ms15-097.aspx)引起了笔者的注意。该漏洞是FireEye在9月8日发布的一份攻击报告(https://www.fireeye.com/content/dam/fireeye-www/blog/pdfs/twoforonefinal.pdf)中发现的,攻击者利用该漏洞可获得系统SYSTEM权限。 查看微软公告对该漏洞的描述:“如果 Windows 内核模式驱动程序不正确地处理内存中的对象,则 Windows 中存在多个特权提升漏洞。成功利用这些漏洞的攻击者可以在内核模式下运行任意代码。”没有太多有效信息,笔者遂尝试通过补丁比对来还原这个漏洞的细节。 CVE-2015-2546影响从win7 ~win10的众多windows版本。鉴于win7上win32k的符号比较齐全,笔者选择安装win7 sp1 32位系统的补丁进行比对。 PatchDiff2得到的结果: 分析到xxxMNMouseMove函数所做的更改: 补丁代码很直观,在xxxSendMessage调用完成之后多了一处检查。 研究过win32k内部机制可知:对于MenuWindow,tagWND+0xB0处存放的是其pPopupMenu的指针。因此这几句是检查回调之后tagMENUWND-> pPopupMenu是否被修改。 FireEye的报告中明确提到:CVE-2015-2546是一个tagPOPUPMENU对象的UAF。至此,笔者确定该漏洞的缺陷函数就是xxxMNMouseMove。 进一步分析xxxMNHideNextHierarchy函数之后,笔者得出整个漏洞的触发流程:在xxxMNMouseMove函数中,xxxSendMessage(pwnd, 0x1F0,…)发起了一次用户模式回调。在这次回调中,攻击者可以销毁Menu窗口从而释放tagPOPUPMENU对象并占位重用。当回调返回内核之后,补丁前的xxxMNmouseMove并没有对已释放的pPopupMenu进行验证。之后pPopupMenu被传入xxxMNHideNextHierarchy,xxxMNHideNextHierarchy会对tagPOPUPMENU.spwndNextPopup发送消息: .text:BF91C0AA __stdcall xxxMNHideNextHierarchy(x) proc near .text:BF91C0AA ; CODE XREF: xxxMNButtonDown(x,x,x,x)+62p .text:BF91C0AA ; xxxMNMouseMove(x,x,x)+18Ep .text:BF91C0AA .text:BF91C0AA ptl = dword ptr -0Ch .text:BF91C0AA var_8 = dword ptr -8 .text:BF91C0AA pPopupMenu = dword ptr 8 .text:BF91C0AA .text:BF91C0AA […]
    您可能也喜欢:

    VNC拒绝服务漏洞(CVE-2015-5239)分析

    WordPress Vulnerability Analysis (CVE-2015-5714 & CVE-2015-5715)

    Android SecureRandom安全漏洞(CVE-2013-7372)

    KVM虚拟化新型漏洞CVE-2015-6815技术分析

    [CVE-2013-1763]Linux内核3.3-3.8本地提权漏洞 [CVE - 2013-1763] Linux kernel 3.3 3.8 local the right hole
    无觅


沪ICP备19023445号-2号
友情链接