0% encontró este documento útil (0 votos)
2 vistas3 páginas

TareaStackOverflow Cib

El documento describe cómo modificar un buffer en un programa para provocar una excepción que redirija la ejecución a una dirección específica. Se ajusta el tamaño del buffer a 200 bytes y se crea un nuevo payload que sobrescribe la dirección de base de pila. Finalmente, se utiliza un script para ejecutar un shell mediante un desbordamiento de pila con un buffer de 200 bytes y un shellcode adecuado.

Cargado por

Javi FM
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas3 páginas

TareaStackOverflow Cib

El documento describe cómo modificar un buffer en un programa para provocar una excepción que redirija la ejecución a una dirección específica. Se ajusta el tamaño del buffer a 200 bytes y se crea un nuevo payload que sobrescribe la dirección de base de pila. Finalmente, se utiliza un script para ejecutar un shell mediante un desbordamiento de pila con un buffer de 200 bytes y un shellcode adecuado.

Cargado por

Javi FM
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Javier Fortuño Martí

1.- Modifica el buffer problemático a 200 bytes y modifica el relleno para provocar una
excepción para que salte a la dirección 0xCCCCCCCC.
Para esto lo primero que debemos hacer es modificar el tamaño del buffer, para esto nos
dirigimos al fichero “buf.c” y modificamos el tamaño del array de 100 a 200.

A continuación nos dirigimos a [Link] y modificamos el payload para que ahora este
sobrepase los 200 bytes y sobreescriba la ebp con la dirección 0xCCCCCCCC
El nuevo payload está formado por 212 “A”s y la dirección solicitada.

Ahora, si queremos seguir usando los breakpoints, habrá que reajustar sus direcciones,
puesto que el nuevo código desensamblado de ‘func’ queda así:

Por lo que reajustamos los breakpoints:​

Ahora ejecutamos por pasos el programa y podremos ver que al terminar de ejecutarse
func, la dirección 0xcccccccc termina sustituyendo a la de la ebp original
si avanzamos al siguiente breakpoint, cuando vuelve de func, vemos que ya ha sucedido la
sustitución:

2.- Haz que se ejecute el shell con un buffer de 200 bytes.


Para esto utilizaremos el script proporcionado ‘[Link]’, intenta adivinar la dirección de
retorno correcta en la pila para realizar así un stackoverflow introduciendo 67 NOPs
seguidos por el shellcode (todo esto obtenido de ‘util’) y la dirección de retorno calculada.
Por lo que si queremos lanzar el shell con 100 bytes de más en el buffer, solo debemos
incrementar el número de NOPs en 100, lo que quiere decir: 167

Realizamos esto y lanzamos el script proporcionado ‘[Link]’ el cual compila y


lanza los códigos necesarios para que todo funcione, el resultado es el siguiente:

Como se observa, al final hemos obtenido acceso al shell.

También podría gustarte