En la entrada anterior llegamos a sobrescribir el EIP (puntero a la siguiente instrucción) con 41414141, la representación hexadecimal de AAAA, por lo que conseguimos crashear el programa vulnerable (Minishare) al desbordar la pila.
Recordar que el rango para disparar la vulnerabilidad era de 2000 caracteres.
Ahora el objetivo es saber exactamente dónde está el EIP, es decir el offset, para escribirlo de forma controlada con un salto a nuestro shellcode.
Para ello vamos a generar con mona.py un patrón o mapa de caracteres único para que cuando sobrescribamos de nuevo el EIP podamos saber exactamente la posición u offset del EIP. Primero ejecutaremos en la consola de Immunity:
'!mona pattern_create 2000'
y echamos un vistazo al patrón generado en C:\Program Files\Immunity Inc\Immunity Debugger\pattern.txt:
Recordar que el rango para disparar la vulnerabilidad era de 2000 caracteres.
Ahora el objetivo es saber exactamente dónde está el EIP, es decir el offset, para escribirlo de forma controlada con un salto a nuestro shellcode.
Para ello vamos a generar con mona.py un patrón o mapa de caracteres único para que cuando sobrescribamos de nuevo el EIP podamos saber exactamente la posición u offset del EIP. Primero ejecutaremos en la consola de Immunity:
'!mona pattern_create 2000'
y echamos un vistazo al patrón generado en C:\Program Files\Immunity Inc\Immunity Debugger\pattern.txt: