elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  Desbordamiento de pila moderno
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Desbordamiento de pila moderno  (Leído 1,384 veces)
marax

Desconectado Desconectado

Mensajes: 52



Ver Perfil
Desbordamiento de pila moderno
« en: 4 Junio 2020, 13:20 »

Hola,

Hay algo que me da mucha curiosidad ultimamente... y es que, si en los sistemas modernos (es decir, sistemas que funcionan en modo protegido) existe toda la integridad que permiten las entradas de la tabla GDT, ¿como es posible explotar un desbordamiento de pila?. Es decir, es facil deducir que tanto la pila como los datos del programa se accederan atraves de entradas en la estructura asignadas como datos. Es decir, si se produce un desbordamiento y, por ejemplo, se reescribe el retorno de la funcion que se ejecuta con una posicion de la misma pila (no podemos escribir en ninguna otra parte) entonces, cuando se acceda a la entrada del segmento de pila en la GDT (de datos) ¿el sistema operativo no detendria el programa por (intentar) ejecutar en un segmento de datos?.

Y si es asi, ¿entonces ya no es posible explotar desbordamientos de pila?.

Dejemos de lado las inconsistencias que podrian haber en un sistema real, yo me refiero especificamente a un sistema de modo protegido que sea ideal.

Saludos.


PD: ¿Estoy siendo demasiado ingenuo preguntando esto? xd
« Última modificación: 8 Junio 2020, 16:09 por marax » En línea

"Durante diez años has venido a mi cueva: estarías harto de tu luz y de este camino sin mí, sin mi águila y sin mi serpiente."
Balloffet

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: Desbordamiento de pila moderno
« Respuesta #1 en: 23 Junio 2020, 03:16 »

La respuesta a tu pregunta es doble:

A) yo entiendo que toda stack tiene su propia sección en memoria, es decir, no está en .data, y la Global Descriptor Table corrobora esto mismo al definir los parámetros de acceso y privilegio de cada sección Code, Data y Stack. así que, en rigor, sobreescribir el retorno de una función y almacenar el valor en la stack no es lo mismo que escribir en un segmento de Datos, lo cual nos lleva a...

B) si el procesador detiene o no la ejecución del programa depende de la protección que tenga en tu hipótesis (NX, PIE, ASLR, stackguard/canary, etc.).
En línea

marax

Desconectado Desconectado

Mensajes: 52



Ver Perfil
Re: Desbordamiento de pila moderno
« Respuesta #2 en: Ayer a las 20:10 »

no está en .data

Por supuesto que no... sin embargo, me pregunto precisamente si existe una manera de hacer by pass a tal estructura de seguridad.

Saludos.
En línea

"Durante diez años has venido a mi cueva: estarías harto de tu luz y de este camino sin mí, sin mi águila y sin mi serpiente."
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Desbordamiento
Programación Visual Basic
LeandroA 4 2,166 Último mensaje 1 Noviembre 2009, 06:22
por LeandroA
PROBLEMA AL INSTALAR W7 EN PC NUEVO Y MODERNO
Windows
spiderat85 7 3,241 Último mensaje 4 Febrero 2011, 19:25
por Sk9ITk5Z
El ocio moderno y antiguo
Foro Libre
Stakewinner00 4 920 Último mensaje 15 Mayo 2015, 20:32
por kub0x
Desbordamiento de pila en servidor web
Desarrollo Web
warcry. 2 399 Último mensaje 23 Marzo 2019, 11:46
por warcry.
mensaje de pagina web. desbordamiento de pila en la linea...
Programación Visual Basic
dgtn 0 670 Último mensaje 9 Abril 2019, 02:27
por dgtn
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines