此仓库包含一个使用名为 Aligned Chunk Confusion 的利用技术的 PoC 漏洞利用程序。 有关该技术的详细信息可在论文中找到。
该漏洞利用程序利用 Windows 内核堆中的堆溢出,将权限从 Low 提升到 SYSTEM。
该研究的目标是开发一个针对内核 Pool 中堆溢出漏洞的通用漏洞利用程序。
在利用堆溢出时,易受攻击对象(发生溢出的对象)的大小非常重要,因为它会影响该对象的分配位置和分配方式。此外,其所在池的类型也会因相同原因而同样重要。
因此,为做到通用,该漏洞利用程序必须:
所展示的漏洞利用程序可以同时在 PagedPool 和 NonPagedPool 中运行;它使用类似的技术,但针对不同的对象。
被利用的漏洞并非真实漏洞,而是通过一个暴露了完全可控堆溢出的驱动程序构造而成。
该漏洞利用程序是一个 PoC,并非完全稳定。它主要适用于 0x130 到 0x300 的大小范围,但可以经过调整后适用于任意大小。 通过使用更好的堆布局调整(heap massaging)技术,该漏洞利用程序的稳定性也可以大幅提高。
使用 Driver 目录中的解决方案,可以用 Visual Studio 编译该驱动程序。
整个漏洞利用程序由 C 语言编写,可使用 makefile 编译。
它依赖于 gcc-mingw-w64-x86-64。
make
它还可以在调试模式下编译,该模式会利用驱动程序增加检查,并输出更详细的信息。
make debug
这项工作已在 SSTIC 2020 和 OPCDE 8 上展示。 两次演讲的幻灯片可在此获取。