¿Los exploits de SEH son válidos contra Linux?

1

Estaba intentando escribir un exploit para Crossfire (un juego en Linux que tiene vulnerabilidad BOF) para practicar con un CTF.

Mientras se borraba el juego, descubrí que si aumentas el tamaño del búfer que envías sobre un valor constante, el juego en el depurador se comportará de una manera similar al comportamiento de las aplicaciones de Windows cuando el búfer escribe sobre SEH. (El EIP no se sobrescribe, los valores de registro están dañados y la ejecución se detiene)

La solución a esto, según el CTF, es usar un pequeño búfer apuntado por ESP para saltar al resto del código de shell que se encuentra al comienzo del búfer.

Sin embargo, esto me llevó a una pregunta: ¿Linux tiene una forma similar de manejar las excepciones que es explotable?

P.S. Cuando intenté buscar en Google "SEH con Linux", las páginas que obtuve mencionaban a Linux como la máquina atacante, no a la víctima.

    
pregunta HSN 22.03.2016 - 08:39
fuente

2 respuestas

3

No. Los Controladores de Excepciones Estructuradas (SEH) son solo para Windows, por lo que Linux no puede ser explotado de la misma manera.

    
respondido por el Peleus 22.03.2016 - 09:09
fuente
1

Hay muchas instancias de explotaciones de controladores de excepción en Linux:

Controlador de excepciones de punto flotante en el kernel de Linux:

enlace

este es un controlador de excepciones que implica volver al modo de usuario desde el kernel:

enlace

enlace

etc

PD: sospecho que tu contexto está basado en Linux. Windows usó el nombre "SEH", pero debajo de todo esto siguen existiendo excepciones activadas por hardware, como se indica aquí:

enlace

Y Linux tiene su propia manera de manejar las excepciones, en modo de usuario y modo de núcleo. Y dado que todos estos se implementan como punteros de función, siempre se puede sobrescribir y explotar .

    
respondido por el Peter Teoh 21.05.2018 - 19:04
fuente

Lea otras preguntas en las etiquetas