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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  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 7,749 veces)
Usuario887


Desconectado Desconectado

Mensajes: 310


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

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 pm por marax » En línea

Balloffet

Desconectado Desconectado

Mensajes: 10



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

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

Usuario887


Desconectado Desconectado

Mensajes: 310


Ver Perfil
Re: Desbordamiento de pila moderno
« Respuesta #2 en: 9 Julio 2020, 20:10 pm »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PROBLEMA AL INSTALAR W7 EN PC NUEVO Y MODERNO
Windows
spiderat85 7 4,685 Último mensaje 4 Febrero 2011, 19:25 pm
por Sk9ITk5Z
El ocio moderno y antiguo
Foro Libre
Stakewinner00 4 3,919 Último mensaje 15 Mayo 2015, 20:32 pm
por kub0x
Desbordamiento de pila en servidor web
Desarrollo Web
warcry. 2 1,867 Último mensaje 23 Marzo 2019, 11:46 am
por warcry.
mensaje de pagina web. desbordamiento de pila en la linea...
Programación Visual Basic
dgtn 0 1,928 Último mensaje 9 Abril 2019, 02:27 am
por dgtn
Ayuda C++ moderno
Programación C/C++
dario01dr 1 3,495 Último mensaje 25 Junio 2022, 11:26 am
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines