freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

IIS6堆喷射及内存破坏漏洞利用图示详解 金币
2015-09-22 15:00:24

*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

0x00 概述

事实证明,利用COM ActiveX中的漏洞是一个好点子,这方面的例子非常多,下面我们就以活动服务器页面(Active Server Page,ASP)为例详细说明此类漏洞的利用方法。

0x01 Redim Preserve语句

我发现,redim preserve语句可以用来分配大量内存,例如,下图所示的代码,在IIS 6.0中就可以很好地达到这个目的:

实际上,我们可以把有效载荷放到Block中,你看,这是不是简单到了令人发指的地步了。

0x02 SQLNS.SQLNamespace

SQLNS.SQLNamespace广泛存在于安装了SERVER SQL的机器上面,这个ActiveX发布的某些方法必须定义为private型的。如果这些方法引起内存破坏,就可以执行任意代码。

下面我们来考察Refresh()方法,该方法只有一个参数。

现在,让我们利用cscript.exe来执行poc.vbs,当然,这需要在Immunity Debuger中执行,并且还得在oleaut32.dll#DispCallFunc处设置一个断点,如下图所示。

现在,请连续按F9,并通过F8步进到代码CALL EAX处,如下图所示。

这里就是sqlns#Refresh的入口点,在此建立一个断点,继续按F9键。

很好,它终于崩溃了!

429DF9FE 8B02 MOV EAX,DWORD PTR DS:[EDX]
429DFA00 FF50 6C CALL DWORD PTR DS:[EAX+6C]

目前,EAX = 0x41414141,ECX = 0x41414141,EDX = 0x41414141。

那么,0x41414141来自哪里呢? 0x41414141 = 1094795585,它是Refresh()方法的参数。

0x03 IIS怎么了?

将vbs代码保存为asp文件,并将其复制到IIS 6.0的web目录下面。

打开网站,并连接w3wp进程。按F9继续运行w3wp进程,然后在浏览器中打开poc.asp,你会看到下图所示的内容:

0x04 Unicode&Ansi

由于asp是按照unicode编码来存储数据的,所以我要用到某些函数来分配内存。然后,我们向内存传输Hex数据,即填充内存。

0x05 堆喷射!

下面,我们将通过redim preserve语句来实现堆喷射:

每个block的大小为512 * 2048 = 0x1000000,我们可以查看内存映射情况,如下图所示。

对于每个block来说,都有36个字节长的一个管理struct。

0x06 准备拿下EIP

由于这里每个payload的长度为2048字节,因此,514个payload副本的长度为0x1010000,它正好是一个内存页的大小。因此,我们精心设计的payload完全可以用来控制EIP。 

需要注意的是,这次在按F9继续w3wp进程之前,需要先建立一个断点。

429DF9FE 8B02 MOV EAX,DWORD PTR DS:[EDX]

按F8,以步越(step over)方式调试。

如上图所示,现在来到CALL DWORD PTR DS:[EAX + 6C]处,其中EAX + 6C = 0x0c0c0c78。

0x07 绕过DEP

我们能够将类似0x0c0c0c10这样的堆地址放到地址为0x0c0c0c78的内存中吗?

下面是在w3core模块中发现的代码,具体如图所示。

我们把这个地址放入到地址为0x0c0c0c78的存储空间中,然后单步调试。

这里,esp已经变为0x0c0c0c0c了,也就是说,我们能够利用ROP来绕过dep保护机制。


接下来的事情,就是堆栈溢出利用了。如果你想具体了解这个漏洞的利用详情,请参考https://www.exploit-db.com/exploits/38005/

0x07 结束语

感谢您阅读本文,希望能够对您有所帮助。

*参考来源:exploit-db,I12016编译,转载须注明来自FreeBuf黑客与极客(FreeBuf.COM)

本文作者:, 转载请注明来自FreeBuf.COM

# 漏洞利用 # IIS6 # 内存破坏 # 堆喷射
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦
收入专辑