Mexmasi 03 T 2 Trab
Mexmasi 03 T 2 Trab
Actividades
En la siguiente actividad deberás crear dos exploits para el programa reto.c. El primero
deberá conseguir acceder a la función premio() alterando el flujo del programa y el
segundo deberá obtener una shell local en la propia máquina. Se deberá realizar en la
máquina Kali desactivando ASLR y compilando con las opciones vistas para permitir
ejecución de código en la pila
Donde gcc es para compilar, -g es para rastrear errores del depurador GDB, fno-stack-
protector es para desactivar la protección en la pila y poder sobrescribirla, -z execstack
es para poder ejecutar código en la pila, -mpreferred-stack-boundary=4 es para intento
de mantener la pila alineada a este power de 4, -o reto nombre del ejecutable que
produce el compilador, reto.c el nombre de nuestro programa.
Para conocer más a detalle el contenido de los registros se puede ejecutar el comando
Info registers
Otra de las herramientas que nos pueden ayudar a encontrar la cadena que tenemos
que pasar es utilizando metasploit, mediante el comando:
pattern_create.rb -l 150
En la dirección /usr/share/metasploit-framework/tools/exploit
Esta cadena creada por metasploit la correremos en gdb para que nos genere el error
Y después especificamos el comando x /xw $rsp para que nos genere el parámetro
deseado.
El siguiente paso es obtener un shell para lo cual creamos un archivo que contenga
NOPs, conocer dirección exacta donde inicia el código
Código shell, código en ensamblador para la ejecución de un shell
Relleno, llegar al tamaño necesario para el desbordamiento
Dirección a brincar, dirección física a la cual queremos brincar
Ahora corremos de nuevo el programa para que salga el punto de interrupción para asi
saber las posiciones de la pila