¿Las direcciones Heap están aleatorizadas por ASLR?

6

He estado leyendo este artículo acerca de una vulnerabilidad de Internet Explorer y estoy un poco confundido acerca de por qué las direcciones de memoria efectuadas por el "trabajo" de "heap-spray".

El documento indica que el ataque utiliza un rociador de pilas para rociar ~ 320 MB por valor de 0x12121212. Se eligió esta dirección porque el ataque tiene control sobre la memoria en y alrededor de 0x12121212. De hecho, en la dirección de memoria 0x12121212 es donde se coloca la cadena ROP.

Estoy confundido por qué esto funciona con ASLR habilitado, ¿no se aleatorizarían las direcciones de memoria cada vez?

¿Cómo es que 0x12121212 se puede usar de manera confiable?

    
pregunta MikeTGW 21.05.2016 - 07:48
fuente

1 respuesta

5

Según el libro de 5ta edición de Windows Internals, el sesgo de ASLR de 5 bits para los montones se "multiplica por 64 KB para generar la dirección base final, comenzando en 0, dando un rango posible de 0x00000000 a 0x001F0000 para el montón inicial".

Como tal, el montón inicial para IE en Windows 7 siempre estará entre 0x00000000 y 0x001F0000, con 32 ubicaciones posibles. Al rellenar el montón con 320 MB de datos (0x14000000 bytes), el atacante casi puede garantizar que la dirección 0x12121212 se llena:

  • Caso de dirección baja (el montón se crea a 0x00000000): llenamos todas las direcciones de 0x00000000 a 0x14000000, por lo que se llena 0x12121212.
  • Caso de dirección alta (el montón se crea a 0x001F0000): llenamos todas las direcciones desde 0x001F0000 a 0x141F0000, por lo que se llena 0x12121212.

Esto se mitiga en Windows 8 de 64 bits y, posteriormente, cuando la aplicación se compila con el indicador /HIGHENTROPYVA : el tamaño del sesgo ASLR para el montón es de 24 bits, lo que da como resultado 16,777,216 ubicaciones posibles para el montón en un espacio de direcciones de memoria de 1TB.

Puede encontrar más información sobre ASLR en BlackHat 2012 talk "Exploit Mitigation Mitigation Improvements en Windows 8 .

    
respondido por el Polynomial 21.05.2016 - 15:02
fuente

Lea otras preguntas en las etiquetas