首页
社区
课程
招聘
[原创]Exploit新手提高系列一:MS06-055 on XPSP2
发表于: 2008-12-29 14:05 8669

[原创]Exploit新手提高系列一:MS06-055 on XPSP2

2008-12-29 14:05
8669
书中第14章的例子是MS06-055,测试平台为Win2000和XPSP1,这是因为XPSP2有保护机制,导致无法简单利用,在Vista正逐渐流行的今天,XPSP2以下的平台已经有点古董了,所以我给新手们推荐一个公开的POC:
http://www.milw0rm.com/exploits/2425,它可以在XPSP2平台实现稳定的利用,其中的Exploit思路就很好地验证了书中的说的S.E.H,异常处理机制,大家动手调试一遍就会知道。有耐心的话再结合NT4源码,看看KiUserExceptionDispatcher的实现,就会对异常处理机制有更进一步的提高。

我先简单说下这个POC的原理:
    结合HeapSpary技术,构造超长数据(05050505...)一直覆盖了整个栈,覆盖到栈底时溢出,栈区间为122000-130000,当写入地址到达130000时,产生CPU写异常。内核接过控制权进行内核态的异常处理,之后将控制权还给Ring3,Ring3中第一个处理
异常的函数是Ntdll.dll中的KiUserExceptionDispatcher,该函数从fs:[0]中读取第一个异常处理结构,由于fs:[0]指向12EAE0,已经被05050505覆盖,所以EIP将跳转到05050505地址继续执行,一直执行90909090操作,最后到达Shellcode处执行。
    虽然XPSP2上有security cookie和Safe S.E.H保护机制,但因为是在复制数据时产生异常直接进入异常处理,还没到函数尾,所以不用理会security cookie,而且因为跳到的05050505是用HeapSpary技术分配出来的堆区,这正好验证了failwest书上所说的“百密一疏的S.E.H验证将会为堆区网开一面”。


好了,最后再强调下,最好自己动手在OD里面动态跟踪一遍异常全过程。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习了。
2009-1-17 18:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习中,有些概念太复杂,不自己亲自动手实验下都搞不明白。
2009-3-13 13:16
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
NT4的源码??
能给我共享么??
2009-3-30 23:06
0
雪    币: 2056
活跃值: (13)
能力值: ( LV13,RANK:250 )
在线值:
发帖
回帖
粉丝
5
NT4的源码在网上能找到,或者直接下看雪的2008大礼包DVD,里面已经带了。
2009-4-1 16:35
0
雪    币: 52
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
xp3下书上的例子都通过了,好像GS没起作用
2009-5-8 20:19
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
最新的PFD 0DAY ADOBE.COLLAB.getIcon()漏洞的弹CALC.EXE的EXPLOIT上也是利用这个HEAP SPRAY的
2009-5-11 20:11
0
雪    币: 216
活跃值: (65)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
具体该怎么构造使用这个漏洞的PDF,请高手指教?
2009-5-13 15:27
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我当时调这个也纯属偶然 打开时卡了下 我就直接调OD调 当然它里面的EXPLOIT代码在PDF里怎么解析的我还没搞懂 简单跟踪了下 发现了它在里面创建了一个堆块 里面有就有一段JAVASCRIPT的HEAP SPRAY代码 估计是PDF解析后放进去的 然后漏洞出在STRNCPY这个上,估计是这个GETICON函数调用的 最后复制一堆数据2C0A0A0A等等 最后溢出 到00130000导致异常 触发了漏洞!
不过现在晕的是 我直接打开这个PDF时直接就弹出了计算器 实在是郁闷不知道怎么跳进去调了。。 不知道漏洞函数的地址 下不了断。。。正在迷茫 前面能调下那纯属偶然 如果有兴趣 加QQ讨论讨论啊 俺的QQ是:63339182
2009-5-14 00:05
0
雪    币: 216
活跃值: (65)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我试着下了函数断点CreateFile,ReadFile,但都断不下来,好象打开PDF文件时都没用这些函数似的!
不知应该怎么下断点,大概断到什么位置?你是怎么断的?
想Q上讨论下,你那不让加呀!这是我的Q:1176087742!

也期待高手能分析下!
另外问一句:Adobe Reader是否加壳了?为什么用OD下消息断点时报错:“无法读取调试进程的内存。位于xxxxxxx的断点已被删除”
2009-5-14 15:45
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
估计他没用CreateFile,ReadFile函数吧 对于那个下断不能下可能跟这个节的属性有关 不能写 这个我再看看
这个我一定要把它搞懂!
我现在天天在分析这个 呵呵 一定要啃下来
2009-5-14 20:33
0
雪    币: 216
活跃值: (65)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
估计他没用CreateFile,ReadFile函数吧 对于那个下断不能下可能跟这个节的属性有关 不能写 这个我再看看
这个我一定要把它搞懂!
我现在天天在分析这个 呵呵 一定要啃下来


那他打开、读取PDF用的什么函数呀?
真不知该怎么下断!!
2009-5-14 21:06
0
游客
登录 | 注册 方可回帖
返回
//