首页
社区
课程
招聘
[求助]构造完shellcode文件,换个地方就不好使
发表于: 2015-8-20 23:15 3218

[求助]构造完shellcode文件,换个地方就不好使

2015-8-20 23:15
3218
新手一枚,跟着kssd中的exploit教程做
链接:http://bbs.pediy.com/showthread.php?t=101365
做的时候很顺利,是一个简单的栈溢出,在win7下做的。
重点是做完构造好shellcode文件,然后运行,如图,我的shellcode是弹出对话框

然后我把这个文件复制到别的目录(目录长度和原来不一样),就变成这样了

我的理解是这个shellcode加载文件的时候路径存到一个固定长度的数组里,和我的shellcode应该
没关系啊。。。
有没有大神做过这个,或者碰到类似问题,希望指点一下

最后附上我的笔记吧,比原来的教程精简了点,希望对新手有帮助

笔记.zip

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 86
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
好好把汇编,编程学号,别一开始就shellcode, 你执行成功一次,但不知道为啥成功
2015-8-21 10:34
0
雪    币: 1258
活跃值: (1434)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
XP下搜到的 JMP ESP 通常是不变的
Win7下有ASLR 所以 OP CODE 地址和 API 地址 会小范围内随机化,
硬编码的就不行了,
解决方法:
         去找没有开启ASLR的模块内的 JMP ESP 的地址,
尝试动态搜索 API 地址。

                        mov eax,fs:[30h] //;PEB的地址
                        mov eax, [eax + 0ch] //;Ldr的地址
                        mov esi, [eax + 01ch] //;Flink地址
                        lodsd  
                        mov eax, [eax + 08h] //;eax就是kernel32.dll的地址
获得LoadLibrary GetProcAddress ,然后就行了。
2015-8-24 15:22
0
雪    币: 292
活跃值: (815)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
下了你的分析看了一下,既然你都用Windbg确定了漏洞触发的位置以及填写shellcode的位置,为什么不在更换目录时再次崩溃的时候再用windbg附加看看是什么原因呢?是因为更换目录后栈里字节没有对齐,ASLR,DEP没有绕过(你的分析里没有针对DEP构造ROP链)还是什么原因,另外这个m3u应该是个很老的漏洞吧,这个exploit的python只是最后攻击的结果,个人感觉新手学习应该从漏洞原理入手,而不是exploit,既然windbg轻松到达现场,那么何不回溯一下漏洞形成的原因呢?
2015-8-24 15:23
0
雪    币: 39
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
非常感谢你的回复,因为是新手,学完汇编之后没有方向,只好在看雪kssd中找个教程跟着做,很多知识都不知道谢谢你给了我方向,嘿嘿,回去找找这方面资料。
2015-8-24 20:34
0
雪    币: 39
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
谢谢大神提点一会跟跟试试
2015-8-24 20:39
0
雪    币: 39
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
多谢楼上的大神们提醒,给了思路,同时又接触到有用的知识点。
本菜鸟跟踪了一下代码,发现换个目录的m3u文件就不好使的原因就是路径问题。
本来在D盘好使,然后我放到桌面上,程序崩溃:

可以看到原因是程序在加载m3u中的文件数据先把文件的目录存到缓冲区中,由于
目录不同所以导致shellcode不同
如图,在d盘加载时候的缓冲区内容:

非常感谢楼上的大神给了本菜鸟思路。。。
上传的附件:
2015-8-24 22:40
0
游客
登录 | 注册 方可回帖
返回
//