¿Puede el aprovechamiento de la cadena de formato omitir la protección PaX?

4

Estoy tratando de encontrar información sobre cómo la explotación de cadenas de formato puede pasar por alto el mecanismo de protección de PaX. Como entendí, PaX solo cuenta con protección ASLR y NX. Así que me pregunto si un atacante debería usar el exploit de formato de cadena para evitar PaX. ¿Es porque puedes imprimir la pila con la cadena de formato? Sin embargo, no es necesario ya que la próxima vez que la pila se vea diferente debido al mecanismo ASLR de PaX.

Así que me pregunto cómo se evitaría PaX si se utilizara el ataque de cadena de formato. Supongo que no hay otra protección que no sea PaX actualmente.

    
pregunta starcorn 18.12.2011 - 17:25
fuente

1 respuesta

4

Las vulnerabilidades de las cadenas de formato pueden ayudar en la explotación de sistemas protegidos por ASLR, pero no por NX. La razón por la que se debe a que algunas vulnerabilidades de cadena de formato permiten al atacante leer el marco de pila de la función, que contiene la vulnerabilidad de cadena de formato. Esto permite al atacante averiguar las direcciones de las variables locales a esa función leyendo el pila de cuadros . ASLR asigna al azar la dirección base de la página de memoria al inicio de la aplicación. Entonces, en un sistema de 32 bits, la dirección se ve como 0xYYYYYZZZZ. En este caso, las Y serán aleatorias, pero las Z son un desplazamiento que es más predecible. (Idealmente) Si el atacante puede leer las direcciones base aleatorias de la misma función que está explotando con un desbordamiento de búfer, entonces el atacante puede estar 100% seguro de la dirección de donde estará su código de shell. Si no está en la misma función, el atacante tiene menos confianza en la dirección de su código de shell, pero aún puede ayudar en la explotación. Después de determinar la dirección de donde estará el código shell, el siguiente paso es corromper el marco de la pila con un desbordamiento de búfer y apuntar el EIP a esta ubicación de memoria conocida. Lo que para ser honesto es realmente descabellado y no hay muchas hazañas que utilicen esta técnica. Esta técnica se trata con gran detalle en "Explotación del software para romper el código" y en "Hackear: El arte de la explotación".

Hay otras formas de leer las direcciones de memoria. En el pwn2own para IE en 2010, un investigador utilizó un desbordamiento de pila para sobrescribir el terminador nulo y leer la memoria adyacente , luego obtuvo la ejecución del código con un puntero colgante. Las vulnerabilidades de puntero que cuelgan son realmente buenas para los sistemas protegidos por ASLR y se están volviendo más populares por esta razón.

Si observa la mayoría de las vulnerabilidades de Metasploit y las formas de explotar . Verá que la Programación Orientada al Retorno (cadenas ROP) es el arma preferida para explotar los desbordamientos de búfer en los sistemas modernos.

    
respondido por el rook 18.12.2011 - 19:08
fuente

Lea otras preguntas en las etiquetas