Switch to full style
Este es tu lugar para hablar de programación, compartir, crear y desarrollar nuevos proyectos
Publicar una respuesta

Estado del arte de la explotación del heap?

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:
[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

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

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.

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

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!

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

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.

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

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!

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

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:

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

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,

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

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!

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

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!
Publicar una respuesta