ASLR completo y ROP

2

¿Cómo se conectan exactamente las piezas de exploits al evitar ASLR y DEP utilizando ROP?

Parece que podría haber varias maneras. P.ej. una carga útil basada en ROP completa o una carga útil ROP que modifica una ubicación de memoria para que sea ejecutable y escribible, que luego se transfiere al resto de la carga útil.

No entiendo cómo está configurado el pivote de pila, ya que puede haber diferentes estados de pila. ¿Cómo se hace esto dentro de la carga útil?

Una vez que el pivote de la pila es exitoso, si el proceso no tiene módulos que no sean ASLR, ¿cómo construye dinámicamente la carga útil la cadena ROP?

Estoy perdiendo la conexión entre

payload->stack-pivot->information-leak->rop-chain

Podría estar mezclando algunas técnicas aquí. ¿Se necesita la fuga de información como parte de la construcción dinámica de la cadena de ROP o se recuperará primero, se ajustan las compensaciones de ROP en la carga útil y luego se activa la vulnerabilidad?

Si ese es el caso, tendría que ser un programa en ejecución, por ejemplo. ¿C que genera y abre un socket para el proceso vulnerable, provoca una fuga de información, canaliza la salida, ajusta las compensaciones y luego envía la carga útil? Eso funcionaría cuando el programa de ataque esté generando un programa vulnerable, pero, ¿cómo funcionaría eso contra un proceso que no sea un niño?

    
pregunta jarryd 18.04.2018 - 23:12
fuente

0 respuestas

Lea otras preguntas en las etiquetas