shellcode生成和测试
step6 用python来给shell测试程序发送shellcode
step1 测试shellcode的代码
step2 shellcode-32.asm源码
step3
使用汇编器nasm把shellcode编译成.o文件
step4 链接生成可执行文件
step5 提取code段
①这里所谓的“二进制”,英文称为raw binary。这种程序只包含机器码。而ELF程序还包含有其它额外的信息,如段的加载地址,运行地址,重定位表,符号表。
②执行raw binary很简单,只需要将程序加载到其起始地址,就可以执行;
FILE *fp = fopen("vmlinux.bin", "rb"); fread(VMLINUX_START, 1, VMLINUX_SIZE, fp); ((void (*)(void))VMLINUX_START)();
但是执行ELF程序则需要一个ELF Loader。
Linux内核启动的时候往往是没有ELF Loader的,所以,只能采用raw binary格式。
step6 用python来给shell测试程序发送shellcode
step7 测试
整体思路:
1、写好shellcode
2、用一个程序进行测试(提前编译好一份64的和32的)
3、启动我们的脚本来执行,提取编译好的c程序的有用代码code段
4、python读code段执行shell
希望大家有所收获!!!