欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

微软Windows内核Pool溢出破绽漏洞bug:对象组合的Spray漏洞运用

来源:本站整理 作者:佚名 时间:2017-09-11 TAG: 我要投稿

这篇文章我将首先简单介绍一种根基与的Windows内核pool的溢出漏洞bug破绽,并怎样运用混杂内核对象放射内核pool后,经由过程笼罩TypeIndex从而实现破绽应用。
0x01先容
在加入完BlackHat的AWE课程以后,我想要进修发明并应用一些内核破绽。只管我想到了HackSys Extreme Vulnerable Driver (HEVD) 是一个异常好的进修对象,然则对付我来讲,它不合适。我不停都乐于在现实应用程序中发明并实现破绽应用。
自加入谁人课程后,我开端慢慢地开辟了一个Windows内核设备驱动的fuzzer。应用这个私人的fuzzer,我发明了本文中将要先容的破绽。这类破绽应用的技巧不是新的,然则轻微转变下使得攻击者险些能够应用随意率性巨细的pool。本文重要是我本身的进修参考,盼望能赞助其他人测验考试pool破绽应用。
0x02破绽先容
在测试了一些SCADA产物后,我遇到了一个第三方组件(名为WinDriver)。简略查询拜访后,我发明这是Jungo的DriverWizard WinDriver。这个产物捆绑在多个SCADA产物中,并且平日是老版本的。
在装置后,它在尺度windows驱动目次中装置了一个名为wndrvr1240.sys的设备驱动。简略的逆向以后,我发明了几个IOCTL码,我将这些IOCTL值拔出到我的fuzzer的配置文件中。

而后,我应用命令行verifier /volatile /flags 0x1 /adddriver windrvr1240.sys启用了special pool,并运转我的fuzzer。终极,我发明了几个可应用的破绽,尤其是上面这个:

用户可节制的数据存储在[esi+ecx]中,它正在越界写一个内核pool。异常完善!进一步反省,我留意到这确切是个pool溢出,它是经由过程loc_4199D8中的内联复制操纵触发的。

这个拷贝轮回每次轮回拷贝8个字节(一个QWORD), 且溢出了一个巨细0x460(0x458+0x8字节的头)的缓冲区。拷贝的巨细间接由攻击者的输出缓冲区节制。不必要整数溢出,数据没有存储在隐藏的处所。咱们能够在0x004199E8间接瞥见,巨细是由攻击者节制的,来自于供给的缓冲区的+0x18偏移。太轻易了!
0x03破绽应用
如今,到了风趣的处所。通用的技巧是对象TypeIndex笼罩,这类技巧曾经在许多场所被先容过,它至多是6年前了,是以我不想深刻太多细节。基本上便是应用任何内核对象,使你能笼罩存储在_OBJECT_HEADER中的TypeIndex。
过去应用的罕见的对象是Event对象(巨细是0x40)和IoCompletionReserve对象(巨细是0x60)。典型的破绽应用以下:
1.应用巨细为X的对象放射pool,添补内存页
2.经由过程开释附近的对象在内存页中“打洞”,触发归并(coalescing)来满意目的块的巨细(咱们的例子中是0x460)。
3.分派并溢出缓冲区,盼望射中一个“洞”,破环下一个对象的_OBJECT_HEADER,终极破环TypeIndex。
举个例子,假如你溢出的缓冲区的巨细是0x200,你应当分派一堆Event对象,并开释他们中0x8个对象(0x40*0x8==0x200)。如许你就有了“洞”,在其中你能分派并溢出。是以,咱们必要的内核对象的巨细是咱们的pool巨细的模数(取模余数为0)。
成绩是某些巨细不克不及满意。举个例子,假定咱们的pool巨细是0x460,那末:

咱们总是有余数。这意味着咱们不克不及结构一个得当咱们块的“洞”,咱们能实现吗?有一些办法能够办理这个成绩。一种办法是搜刮一个内核对象,它能是咱们目的缓冲区巨细的模数。我花了一点光阴来实现这个,并找到了2个其他的内核对象:

但是,这些巨细是无用的,由于它们不是0x460的模数。又花了一点光阴测试改动,我肯定以下的模数能够满意:

太好了!0xa0能够均分0x460,然则咱们若何能力获得巨细为0xa0的内核对象呢?假如咱们将Event和IoCompletionReserve对象组合起来(0x40+0x60=0xa0)就可以实现。
放射

上述函数放射了50000个对象。25000个Event对象和25000个IoCompletionReserve对象。在windbg中看起来异常完善:

“打洞”
‘IoCo’标志表现一个IoCompletionReserve对象,同时“Even”标志表现一个Event对象。留意咱们首个块偏移是0x60,这是咱们将要开释的肇端偏移。是以咱们开释几组对象,盘算以下:

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载