Foro de elhacker.net

Seguridad Informática => Bugs y Exploits => Mensaje iniciado por: .:UND3R:. en 21 Junio 2013, 04:05 am



Título: Duda con safeseh
Publicado por: .:UND3R:. en 21 Junio 2013, 04:05 am
Hola a todos, estoy comenzando con la elaboración de exploit y me he topado con el concepto de safeSEH (entiendo el funcionamiento de los manejadores de excepciones, cómo localizarlo, etc.), pero en muchos tutoriales nombran que hay que buscar módulos que posean safeSEH desactivado, pero no logro entender el funcionamiento de safeSEH, cito:

Citar
SafeSEH

En Windows XP SP2 y Windows Server 2003 se añadió la protección de memoria SafeSEH, la cual impide en gran medida la ejecución de código a través de SEH. Si esta protección se encuentra habilitada en un módulo, únicamente es posible utilizar como manejadores las direcciones almacenadas anteriormente en una lista. De este modo, no es posible sobrescribir la posición donde se encuentra “Handler_N()” ya que posteriormente se verificara si existe en la tabla indicada.

esto se refiere a que existe un estructura encargada de almacenar las direcciones que apuntan los SEH?, ¿Qué ocurre cuando se instalan nuevos SEH?, ¿esta lista se actualiza? a ver si me aclaran esta duda, ya que como  sabrán no sirve de nada conseguir los objetivos sin saber cómo funciona todo, saludos.

EDIT: Leyendo no me expliqué muy bien, mi pregunta es por que cuando necesito conseguir instrucciones POP POP RET estas deben ser conseguidas en módulos que no posean safeSEH?, si sólamente estoy tomando instrucciones, y en ningún momento estoy alterando los SEH del módulo?


Título: Re: Duda con safeseh
Publicado por: x64core en 23 Junio 2013, 10:12 am
Hola a todos, estoy comenzando con la elaboración de exploit y me he topado con el concepto de safeSEH (entiendo el funcionamiento de los manejadores de excepciones, cómo localizarlo, etc.), pero en muchos tutoriales nombran que hay que buscar módulos que posean safeSEH desactivado, pero no logro entender el funcionamiento de safeSEH, cito:

esto se refiere a que existe un estructura encargada de almacenar las direcciones que apuntan los SEH?, ¿Qué ocurre cuando se instalan nuevos SEH?, ¿esta lista se actualiza? a ver si me aclaran esta duda, ya que como  sabrán no sirve de nada conseguir los objetivos sin saber cómo funciona todo, saludos.

EDIT: Leyendo no me expliqué muy bien, mi pregunta es por que cuando necesito conseguir instrucciones POP POP RET estas deben ser conseguidas en módulos que no posean safeSEH?, si sólamente estoy tomando instrucciones, y en ningún momento estoy alterando los SEH del módulo?

Conseguir instrucciones?
Cual es tu fuente de información?


Título: Re: Duda con safeseh
Publicado por: .:UND3R:. en 23 Junio 2013, 17:17 pm
Los tutoriales de Corelan, saludos.


Título: Re: Duda con safeseh
Publicado por: Shaddy en 1 Julio 2013, 02:37 am
Hola a todos, estoy comenzando con la elaboración de exploit y me he topado con el concepto de safeSEH (entiendo el funcionamiento de los manejadores de excepciones, cómo localizarlo, etc.), pero en muchos tutoriales nombran que hay que buscar módulos que posean safeSEH desactivado, pero no logro entender el funcionamiento de safeSEH, cito:

esto se refiere a que existe un estructura encargada de almacenar las direcciones que apuntan los SEH?, ¿Qué ocurre cuando se instalan nuevos SEH?, ¿esta lista se actualiza? a ver si me aclaran esta duda, ya que como  sabrán no sirve de nada conseguir los objetivos sin saber cómo funciona todo, saludos.

EDIT: Leyendo no me expliqué muy bien, mi pregunta es por que cuando necesito conseguir instrucciones POP POP RET estas deben ser conseguidas en módulos que no posean safeSEH?, si sólamente estoy tomando instrucciones, y en ningún momento estoy alterando los SEH del módulo?

Buenas Under,

El SEH es una estructura que se guarda en el marco del thread que se está ejecutando. Se va enlazando con links simples, y no tiene que ver con el pop / pop /ret.

Tienes que conseguirlas en módulos que no tengan safeSEH porque en la ntdll cuando recibe en KiExceptionUserDispatcher la excepción, se verifica si la librería a la que apunta el puntero instalado en el seh está dentro de estos módulos.

Así que si no salta al SEH no hay pop / pop / ret.

Un saludo.