Esto es para una clase de Seguridad de red y equipo. No estoy pidiendo la solución, sino un indicador en la dirección correcta.
El programa de destino tiene una vulnerabilidad off-by-one y se compila de tal manera que ebp
no se inserta en la pila. Al atacar la vulnerabilidad, puedo cambiar el último byte de eip
y enviar efectivamente el programa a cualquier instrucción en el programa.
Mi pregunta es, si coloco algún código malicioso en el programa de explotación (que llama al programa objetivo a través de un execve
), ¿puedo cambiar el eip
para que apunte a este código malicioso, o si el tiempo de ejecución es lo suficientemente inteligente? para saber que estoy intentando ejecutar código que se encuentra fuera de los límites del programa de destino y, por lo tanto, ¿no lo puedo permitir?
El entorno es una máquina virtual Debian Etch sin ASLR, etc. El programa objetivo tiene setuid
configurado como root, así que mi objetivo es lograr que el programa objetivo ejecute las instrucciones que abren un shell (dándome el shell root ).