首页
社区
课程
招聘
[求助]Word漏洞利用遇到的困惑(已解决)
发表于: 2010-10-25 16:20 12916

[求助]Word漏洞利用遇到的困惑(已解决)

2010-10-25 16:20
12916

最近在学习分析ms03-050漏洞(描述:Word在检查嵌入到文档中的宏名称数据长度时缺少正确的边界检查)

根据黑客防线上面《Word溢出漏洞分析与利用》(曹军/dangguai27)的介绍,我知道了漏洞的原理。可是尝试漏洞利用的时候,根据OD,我直接在Word文档的对应返回地址处填写上shellcode的地址,成功了;没想到这个成功仅仅是在调试运行的时候能成功,直接通过双击test.doc的方式,就会提示错误,想要实现的反连失败。。。

带着问题,我去分析作者放在光盘里的样本,谁知这个样本是好用的,但是在用OD调试的时候异常!而且我同时观察作者的利用样本和测试样本,发现作者的填充的返回地址和shellcode地址并不是一个。

由此,我想问两个问题:
1、Word漏洞利用在调试状态下和实际执行时候有哪些不同?
2、一般情况下,调试状态和实际状态有何区别需要注意?

欢迎提供思路!最好能够解决问题!谢谢各位朋友!


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (29)
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
2
你用softice调试器调试漏洞文件,应该可以发现2者的区别之处
或者使用Windbg
  OD我不知道,呵呵
2010-10-25 16:26
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
3
忘了说一点,不管使用哪个调试器,其漏洞触发原理都是一样的,
也就是说,用不用调试器,漏洞触发的过程都是一样的,
着是针对WORD来说,对其他的不敢保证咯
2010-10-25 16:27
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
如果一样的话,在调试器里利用成功,应该不通过调试器也可以成功啊!为什么不是介样滴?
2010-10-25 16:30
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
5
应该某些堆栈上的区别,就是说,调试状态下,堆栈与直接打开的堆栈不一样,
用softice调试应该能发现
具体怎么使用,网上有教程哈
2010-10-25 17:02
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好的,我试试看!以前用过,现在都没装了……
非常感谢!!
2010-10-25 17:15
0
雪    币: 345
活跃值: (127)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
7
推荐用windbg,将漏洞文档以参数的形式打开。
2010-10-25 17:27
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
还是用od最习惯,哈哈~!
2010-10-25 20:50
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
用windbg并且将漏洞文档以参数的形式打开,还是出现同样的问题,调试执行即利用成功!直接执行出错~
2010-10-25 21:41
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
还是没有解决……!玄机在哪儿?
2010-10-27 15:29
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
11
能否把样本给我呢,我想调试下。呵呵
2010-10-27 16:28
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
12
突然想到一个可能性,就是注册表,
word挂掉,会在注册表中写入些东西
把那些东西删除了,看下会不会成功,
(⊙o⊙)…
2010-10-27 16:32
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
破漏洞让我郁闷了好几天,今天终于搞定咯!
原来是OD调试器做的怪……
最真实的调试器状态来自于:拦截到异常情况,取消之,把OD设为实时调试器!
在看堆溢出利用时候得到的启发。

啦啦啦……
感谢师傅,感谢仙果,感谢看雪论坛,感谢各位留言的大牛^_^
2010-10-28 16:57
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
14
没看懂
一般不用OD,详细解释下吧
2010-10-28 20:25
0
雪    币: 3171
活跃值: (76)
能力值: (RANK:250 )
在线值:
发帖
回帖
粉丝
15
每当百度一个问题的时候,我比较恨得就是提问者自己会回帖
“谢谢大家,问题已解决。。。”
下面呢?
没了
2010-10-29 08:28
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
16
走,我们去把楼主打一顿
2010-10-29 09:01
0
雪    币: 29
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
同意!
2010-10-29 09:11
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
原来是OD调试器做的怪……
最真实的调试器状态来自于:拦截到异常情况,取消之,把OD设为实时调试器!

我以为这样就说明白了呢!
是这样的:无论是用OD直接以参数的形式打开,还是先打开WINWORD.exe再attach进程接着打开test.doc,调试器里查看的shellcode起始位置都是不准确的!
最真实准确的调试器状态还是让test.doc出异常,在弹出的提示框里点取消让其自动attach进程(前提是把OD设置成实时调试器)!然后再查找shellcode起始地址。
2010-10-29 09:33
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不好意思,昨天也是太忙了,写的太笼统!
重新写了个,请大牛指教!
2010-10-29 09:36
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20

昨天看到堆溢出利用,受到调试堆和常态堆这种说法的启发……
2010-10-29 09:40
0
雪    币: 193
活跃值: (30)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
其实楼主是个美女
2010-10-29 13:41
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
2010-10-29 13:43
0
雪    币: 611
活跃值: (251)
能力值: ( LV12,RANK:390 )
在线值:
发帖
回帖
粉丝
23
MARK一下,下次学这个时候参考楼主的帖子。。。。
2010-10-29 14:11
0
雪    币: 611
活跃值: (251)
能力值: ( LV12,RANK:390 )
在线值:
发帖
回帖
粉丝
24
这是真的么?跪求PP
2010-10-29 14:12
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
互相学习讨论,进步才快!哈哈^_^
2010-10-29 19:40
0
游客
登录 | 注册 方可回帖
返回
//