[翻译]Bitmap轶事:Windows 10纪念版后的GDI对象泄露
原文https://labs.mwrinfosecurity.com/blog/a-tale-of-bitmaps/
Bitmap轶事:Windows 10纪念版后的GDI对象泄露
介绍
开始之前,先要吹一波Nicolas Economou, Diego Juarez和KeenLab。是你们全力推动了Windows内核exp技术的发展,又把这些晦涩的知识点慷慨的分享在了众所周知的社区。在Windows 10纪念版(Build 1607)的补丁中,微软打上了一个非常重要的信息泄露的补丁,它此前常用于揭示内核空间中的Bitmap对象的地址。本文讨论了一种应用于纪念版本后的Bitmap对象泄露方法。该方法首次被Nicolas Economou和Diego Juarez在2016年的Ekoparty演讲中提出,标题为 "Abusing GDI for ring0 exploit primitives: Reloaded"。
资源
下面的资源提供了bitmap在内核exp上下文中使用的背景信息。
- Abusing GDI for ring0 exploit primitives (@CoreSecurity)
- Abusing GDI Reloaded (@CoreSecurity)
- This Time Font hunt you down in 4 bytes (@keen_lab)
背景
自2015年以来,Bitmap广泛的被滥用于内核内存污染exp。内核bitmap surface对象头包含了一个成员(pvScan0),它指向了bitmap的首个扫描行。从exp的视角来看,该成员提供了一个强大的ring0本源(primitive),这是因为有着一大堆GDI API调用会在这一指针上进行直接操作,尤其是GetBitmapBits和SetBitmapBits。如果内存污染使得攻击者可以修改该指针,这些API调用本质上就提供了一个内核空间的任意地址读写。这一方法非常通用且可以在大多数的包含多种形式任意写的内核漏洞中使用。
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
