Estado del arte de la explotación del heap?

Este es tu lugar para hablar de programación, compartir, crear y desarrollar nuevos proyectos

Moderador: Moderadores

Estado del arte de la explotación del heap?

Notapor NewLog » Sab Ene 21, 2012 7:36 pm

Muy buenas wadalbertitas,

aquí vengo con otra de esas preguntas básicas de exploiting.

El tema es que quiero aprender a fondo cómo funciona el tema de la explotación del heap, el problema es que ahí fuera hay bastantes papers sobre el tema y imagino que la mayoría estarán "obsoletos". Así que os pongo la lista de textos que conozco y si podéis decirme cual de ellos funciona hoy en día.

Código: Seleccionar todo
[1] Bugtraq. Malloc Maleficarum [en l ́ınea]. Phantasmal Phantas- magoria. (2005). [Consultado: 2011-03-04]. Disponible en internet: http://seclists.org/bugtraq/2005/Oct/118
[2] Blackngel. (2009). Malloc Des-Maleficarum. Phrack [en l ́ınea]. Vol. 66. Cap ́ıtulo 10.
[3] Huku. (2009). Exploiting DLmalloc frees in 2009: Yet another free() explotation technique. Phrack [en l ́ınea]. Vol. 66. Cap ́ıtulo 06.
[4] Blackngel. (2010). The House Of Lore: Reloaded, ptmalloc v2 & v3: Analysys & Corruption. Phrack [en l ́ınea]. Vol. 67. Cap ́ıtulo 8.


Si sabéis de alguno más actual, soy todo oídos.

Por cierto, hablo de heap exploiting en Linux eh

Saludos
Imagen
http://www.overflowedminds.net - Quieres introducirte al exploiting?
Avatar de Usuario
NewLog
<|:-D
<|:-D
 
Mensajes: 1130
Registrado: Sab Ene 14, 2006 1:03 am

Re: Estado del arte de la explotación del heap?

Notapor vlan7 » Sab Ene 21, 2012 11:08 pm

Hola maestro,

Mi experiencia con el heap es casi nula, y en sistemas actuales nula total. Solo recuerdo el excelente texto w00w00 on Heap Overflows que enlazo a mi wiki personal pues aunque su web oficial sigue viva, no parecen tener su trabajo en linea. Ese texto fue una ostia en la boca, buen aire fresco.

Es 1999, como tu sabras el contexto es que se estan empezando a aplicar protecciones a nivel de S.O./compilador para hacer mas dificil explotar los errores cometidos por los programadores. Hay parches, juego del gato y el raton, hace nada Solar Designer escribio su post en BugTraq Getting around non-executable stack (and fix), que es uno de los posts mas amenos si no el mas ameno que he leido de exploiting en mi vida. Quizas el post de Lopatic con el exploit que publico del ncsa httpd (tercer buffer overflow de la historia) en bugtraq tambien, que no tiene nada que ver con el heap pero realmente es un agradable intercambio de ideas incluso hoy.

Lo siento pero no se ni como esta el heap actualmente, no creo que pueda ayudarte demasiado. A ver si alguien mas puesto en temas del heap hoy nos echa un cable.

Un saludo.
There is a crack, a crack in everything That's how the light gets in. -subculture

zen7.vlan7.org
Avatar de Usuario
vlan7
<|:-D
<|:-D
 
Mensajes: 1176
Registrado: Dom Mar 05, 2006 11:16 pm
Ubicación: Mas alla del EIP

Re: Estado del arte de la explotación del heap?

Notapor NewLog » Dom Ene 22, 2012 12:30 am

Buenas vlan7,

No sabía que el bypass de return into libc era del 97! Creía que era mucho más moderno. Una cosa más que he aprendido hoy!

El texto que me enlazas también lo había visto, el problema es que es bastante antiguo. Lo más nuevo que he encontrado yo es del 2010, que se basa en lo explicado en un texto del 2009. El tema es que imagino que en estos 3 años habrán introducido mejoras en la librería de c. Y claro, ya de por si encuentro bastante complicado entender el método de explotación, así que si además no estoy seguro de si funciona o no debido a que no es aplicable o a que la cago en algo...

Lo cierto es que el problema está en saber si de la versión 2.3.6 de la libc a la actual han modificado la "implementación del heap".

A ver si alguien que domine el tema sabe cómo están las cosas y me ahorra unas buenas horas de investigación :embudito:

Saludos!
Imagen
http://www.overflowedminds.net - Quieres introducirte al exploiting?
Avatar de Usuario
NewLog
<|:-D
<|:-D
 
Mensajes: 1130
Registrado: Sab Ene 14, 2006 1:03 am

Re: Estado del arte de la explotación del heap?

Notapor vlan7 » Dom Ene 22, 2012 11:51 am

Hola,

Desconozco si se han hecho cambios en glibc ultimamente, pero si buscas algo actual quzas te sirva esto. Es de este mes, enero-2012, y tiene hasta un framework (lee el README antes de jugar).

El heap en general siempre fue el gran desconocido, no puedo valorar ese trabajo, pero lo que dice haber encontrado ese tio en SLOB (uno de los 3 "allocators")...

"There's no sanity checks or exploit mitigations. It's a beautifully exploitable heap. They've done nothing to harden it to make it any harder"

Un saludo.
There is a crack, a crack in everything That's how the light gets in. -subculture

zen7.vlan7.org
Avatar de Usuario
vlan7
<|:-D
<|:-D
 
Mensajes: 1176
Registrado: Dom Mar 05, 2006 11:16 pm
Ubicación: Mas alla del EIP

Re: Estado del arte de la explotación del heap?

Notapor NewLog » Dom Ene 22, 2012 2:11 pm

Ya vi eso, pero me parece que esto sólo funciona con overflows en el kernel, no en aplicaciones normales.

He leído un poco de SLOB, SLAB, etc. Me parece que estos sistemas implementan las funciones kmalloc(), kfree(), etc. Pero no los mallocs normales.

Gracias igualmente!
Imagen
http://www.overflowedminds.net - Quieres introducirte al exploiting?
Avatar de Usuario
NewLog
<|:-D
<|:-D
 
Mensajes: 1130
Registrado: Sab Ene 14, 2006 1:03 am

Re: Estado del arte de la explotación del heap?

Notapor vlan7 » Dom Jul 08, 2012 2:57 pm

Navegando por ahi di con este blog por azar, y me acorde de este post tuyo.

Glibc 2.11 stops the House of Mind

Keep on tryin' :arrow:
There is a crack, a crack in everything That's how the light gets in. -subculture

zen7.vlan7.org
Avatar de Usuario
vlan7
<|:-D
<|:-D
 
Mensajes: 1176
Registrado: Dom Mar 05, 2006 11:16 pm
Ubicación: Mas alla del EIP

Re: Estado del arte de la explotación del heap?

Notapor vlan7 » Lun Jul 09, 2012 9:37 am

Por cierto, no se si te has podido leer ya el articulo File: archives/68/p68_0x0a_Pseudomonarchia jemallocum_by_argp & huku.txt, yo la verdad es que aun no, pero segun entiendo jemalloc si se adapta a lo que buscas ya que esto si es un malloc en userland, y segun parece (jemalloc) is being increasingly adopted by software projects as a high performance heap manager. It is used in Mozilla Firefox for the Windows, Mac OS X and Linux platforms, and as the default system allocator on the FreeBSD and NetBSD operating systems. Facebook also uses jemalloc in various components to handle the load of its web services. However, despite such widespread use, there is no work on the exploitation of jemalloc.

No se si conoces el blog de argp pero ese folk anda dandole bien al heap, desde los kmallocs que te comentaba hasta mallocs en userland, el ultimo post a dia de hoy es precisamente una explotacion practica de jemalloc Black Hat USA 2012: Owning Firefox’s Heap

Suerte,
There is a crack, a crack in everything That's how the light gets in. -subculture

zen7.vlan7.org
Avatar de Usuario
vlan7
<|:-D
<|:-D
 
Mensajes: 1176
Registrado: Dom Mar 05, 2006 11:16 pm
Ubicación: Mas alla del EIP

Re: Estado del arte de la explotación del heap?

Notapor NewLog » Mié Jul 11, 2012 1:51 am

Lo vi cuando salió el número, pero no lo he leído!

En cuanto acabe con ptmalloc me voy a poner con algún sistema de gestión de memoria dinámica alternativa. Este tiene muchos puntos y sino es este, seguramente sea el SLOB allocator o alguno utilizado por los kernels.

Pendiente queda echarle un ojo!

Por el momento, ahora estoy describiendo la estructura y funcionamiento del heap [a nivel de code review más o menos].

Saludos!
Imagen
http://www.overflowedminds.net - Quieres introducirte al exploiting?
Avatar de Usuario
NewLog
<|:-D
<|:-D
 
Mensajes: 1130
Registrado: Sab Ene 14, 2006 1:03 am

Re: Estado del arte de la explotación del heap?

Notapor NewLog » Vie Jul 13, 2012 1:30 pm

vlan7 escribió:Navegando por ahi di con este blog por azar, y me acorde de este post tuyo.

Glibc 2.11 stops the House of Mind

Keep on tryin' :arrow:



Hey, vlan, no sé por qué, pero se me había pasado este post!

Sí, ese blog lo vi hace un tiempo y es lo que me acabó de confirmar que se habían arreglado esos bugs! Silent patch? Al menos no he visto que se dijera en ningún otro sitio...

Así que lo que estoy haciendo se centrará en explicar cómo funciona la implementación del ptmalloc y explicar porque las técnicas del malloc malleficarum ya no funcionan o si se puede intentar algo para que funcionen.

Gracias por el apunte, porque realmente ese enlace no es fácil de encontrar... Al menos, yo tardé un tiempo!
Imagen
http://www.overflowedminds.net - Quieres introducirte al exploiting?
Avatar de Usuario
NewLog
<|:-D
<|:-D
 
Mensajes: 1130
Registrado: Sab Ene 14, 2006 1:03 am


Volver a Programación

¿Quién está conectado?

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