SEH sobrescribe los detalles del ataque

2

Si hay canarios en la pila, ¿por qué el controlador de excepciones no comprueba la integridad de los canarios? ¿Por qué sigue ejecutando un controlador de excepciones manipulado?

¿Corromper un canario provocará una excepción? ¿Es esta una forma común de desencadenar una excepción en los ataques de sobrescritura SEH?

¿Por qué el ataque tiene que establecer la dirección del controlador en "pop-pop-ret" y luego saltar a la dirección de destino, por ejemplo, el código de shell insertado? Quiero decir, ¿por qué no establecer la dirección del controlador directamente en la dirección de destino?

Entiendo que ahora hay mitigación contra tales ataques, todavía quiero saber más detalles. Gracias.

Ref: enlace

    
pregunta Infinite 30.11.2016 - 02:11
fuente

1 respuesta

0
  1. El controlador de excepciones no verifica la integridad de los canarios, ya que solo se llama al código de verificación cuando la función termina. El atacante debería asegurarse de que antes de que el programa llegue a ese código, ¡se debe lanzar una excepción!

  2. Sin más protecciones, el programa continúa ejecutando un controlador de excepciones manipulado porque no sabe que está mal formado.

  3. La corrupción de un canario no activará una excepción, el programa no sabrá que el canario ha cambiado hasta que se verifique la integridad. Desbordando un búfer, por otro lado, MIGHT desencadena una excepción (si, por ejemplo, el atacante supera un puntero y lo señala a un área que es ilegible / no se puede escribir y luego intenta leer / escribir con ese puntero).

  4. Suponiendo que el código de shell está en la pila, no colocamos la dirección del código de shell en la dirección del controlador de excepciones porque Windows tiene un mecanismo de defensa básico que evita que las excepciones salten a direcciones en la pila. SEH fue abusada comúnmente y repetidamente, y así fue creada. Por lo tanto, usamos pop, pop, ret porque podemos encontrar fácilmente este código en el segmento de texto (un área en la que el controlador de excepciones PUEDE saltar).

  5. Para obtener más detalles sobre las técnicas de mitigación, lea acerca de:

    • SafeSEH que define las direcciones exactas que permiten a las excepciones saltar a ellas.
    • SEHOP que verifica la integridad de la lista de manejadores de excepciones.

También hice una pregunta sobre el tema, es posible que desee echar un vistazo a lo

    
respondido por el alond22 07.09.2018 - 16:06
fuente

Lea otras preguntas en las etiquetas