Explotación en sistemas Microsoft Windows
incidenthandlinges
 
Mensajes: 4
Registrado: Vie Oct 18, 2013 1:21 pm

Diferentes modos para bypass SafeSEH

por incidenthandlinges Dom May 11, 2014 9:45 am

Dejo aquí los diferentes enlaces que he estado viendo para intentar saltar SafeSEH. Mi objetivo es ver todos los posibles métodos no solo
el método que busca módulos ya cargados en el binario que no estén protegidos y poner el pop/pop/ret (o similar) de uno de esos módulos
no protegidos:

Corelan:

https://www.corelan.be/index.php/2009/0 ... -and-aslr/

En el punto de SafeSEH explica un modo que me ha parecido interesante y es que puedes tirar incluso de espacio de memoria que no se corresponda
con los módulos cargados. Lo han llamado "Bypassing SafeSeh : Using an address outside the address range of loaded modules". Esto lo he intentado utilizar pero no me ha funcionado, porque el ASLR es un inconveniente en el trabajo que estoy haciendo (o al menos eso creo).

Otra de las técnicas que he visto es:

http://packetstormsecurity.com/filedesc ... k.pdf.html

Esta técnica por el momento estoy un poco perdido y no he conseguido reproducirla ni aplicarla. Parece basarse en sobreescribir parte de la estructura _exception_handler3, pero por el momento no la tengo estudiada en profundidad.
Avatar de Usuario
newlog
El Eterno Alumno
 
Mensajes: 170
Registrado: Lun Jun 23, 2008 7:28 pm

Re: Diferentes modos para bypass SafeSEH

por newlog Lun Oct 20, 2014 10:27 pm

Hola de nuevo :)

Sobre lo que comentas de SafeSEH, cuando DEP está activado, no podrás aprovechar gadgets en regiones de memoria que no formen parte de un módulo o de la imagen del binario. Puedes encontrar esta información en la presentación de Alexander Sotirov Bypassing Browser Memory Protections, página 6.

Sobre el documento que enlazas sobre bypass de SafeSEH y SEHOP, no tiene sentido, al menos, en cuanto al bypass de SEHOP.
Por un lado dice que el puntero al siguiente exception record no se modifique, pero a través de un desbordamiento lineal (genérico) es necesario sobrescribir este puntero antes de sobrescribir el handler. Si no fuera así, se podría sobrescribir sEIP sin problemas y bypaseando la stack cookie (así que para qué explotar la gestión de excepciones?).
Por otro lado, me parece que para evadir SafeSEH supone que es posible conocer la dirección de la función _except_handler3. Evidentemente, eso no es posible cuando existe ASLR (situación actual). Quizá su técnica podría ser útil para sistemas Windows XP o para módulos sin ASLR... Pero me lo he mirado en 5 minutos, así que no puedo confirmar nada de ese paper (es la primera vez que lo veo!).

Muchas gracias por la info ;)
Imagen
Volver a Windows

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado