Shellcode

Posted countfatcode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shellcode相关的知识,希望对你有一定的参考价值。

什么是Shellcode:

  shellcode是我们写入到程序的一段可执行代码,通过执行这串代码我们可以拿到靶机的shell,从而可以干你想干的事。不过现在的题目一般都对可以写入的位置做了限制,既可写不可执行。但如果是一道专门的shellcode题,则会在某一段加入可写可执行的权限,或则利用mprotect()或者_dl_make_stack_executable()改写某些区域的proc再执行。

  32位的shellcode和64位的略有不同,这里我们先讲32位的shellcode。

x86:

我们先用C写一个调用shell的程序,其代码如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
  execve("/bin/sh", 0, 0);
  return 0;          
}

编译成32位程序:gcc -m32 -g -o test1 test1.c,运行便可以拿到我们本机的shell

 

以上是关于Shellcode的主要内容,如果未能解决你的问题,请参考以下文章

windows:shellcode 代码远程APC注入和加载

20145311王亦徐《网络对抗技术》MAL_逆向与Bof基础

Shellcode

Ret2shellcode

恶意代码分析实战19-01

恶意代码分析实战19-01