[Videotuto] Exploit local linux 32 y 64 bits

Iniciado por illera88, 24 Enero 2011, 20:35 PM

0 Miembros y 2 Visitantes están viendo este tema.

M3st4ng

Otra cosa, como no he visto en ningún lado que la version del kernel 2.6.37 no sea vulnerable, voy a intentar a ver si consigo hacer andar el exploit...

CitarSi queres sacar exactamente el offset correcto no se me ocurre otra que dumpear la memoria virtual del kernel.
¿Cómo podría hacer esto que dices para revisar la memoria y localizar la varible "char name" en tiempo de ejecución?

Gracias!

Ivanchuk

#31
Tendrias q hacerte un driver o modulo. Hay un driver que viene con el kernel que se llama mem y lo podes acceder desde /dev/mem, con ese podes leer direcciones fisicas de memoria. Ese mismo driver, dependiendo de como se compilo, te permite leer tambien la memoria virtual del kernel accediendolo a traves de /dev/kmem, yo no lo tengo.
Si tenes kmem, fijate que aca tenes un ejemplo de uso de /dev/mem, kmem seria maso lo mismo
ftp://ftp.buici.com/pub/arm/devmem/devmem2.c
Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org

M3st4ng

Hola!

Yo tampoco tengo el dispositivo /dev/kmem.... la verdad que ver la memoria real no me sirve de mucho.....
Tengo una duda existencial (que desde luego no iria en este foro), cuando con el "gdb" ves todas las direcciones que salen, tanto la de las instrucciones como las de la pila, esas direcciones son virtuales ¿verdad? y siendo esto cierto, desde 0x00000000 hasta 0xFFFFFFFF ¿sería todo el espacio de direcciones virtuales del proceso?
Volviendo al tema, voy a seguir a ver si encuentro otra manera de hacer dump de la memoria virtual.

Salu2

Ivanchuk

Cita de: M3st4ng en  9 Marzo 2011, 23:27 PM
cuando con el "gdb" ves todas las direcciones que salen, tanto la de las instrucciones como las de la pila, esas direcciones son virtuales ¿verdad? y siendo esto cierto, desde 0x00000000 hasta 0xFFFFFFFF ¿sería todo el espacio de direcciones virtuales del proceso?
Desde gdb ves las direcciones virtuales del proceso si, pero el espacio de dirs no va desde la 0 hasta la 0xffffffff. O sea, en realidad cada proceso tiene ciertos espacios asignados, alguno de ellos estan definidos en el elf (VMA)
Código (bash) [Seleccionar]
objdump -h /bin/ls

En /proc/<pid>/maps podes ver el mapeo de memoria asignado a cada proceso que tenes corriendo.
Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org

andres_5

Hola, al final me he quedado sin poder probar el exploit, me hacia ilusion, porque aunque he escuchado mucho sobre los exploits, nunca he tenido la posiblidad de usar uno, si alguien puede echarme un cable lo agradeceria.
Saludos

Cita de: andres_5 en  8 Marzo 2011, 00:47 AM
yo sigo sin hacerlo funcionar, alguna idea, mi kernel es supuestamente vulnerable, a veces cuando lo ejecuto me muestra los mismo pero al final me pone terminado(killed) y si luego lo vuelvo a ejecutar, me hace un bloqueo general del PC.
Si sabeis algo que pueda probar, lo agradeceria.
Saludos
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



M3st4ng

Hola!

Muchas veces para hacer funcionar un exploit hay que "pegarse" con él. Revisa todo lo que ha comentado Ivan en este hilo para entender lo que debe hacer... A priori tu kernel es vulnerable pero puede haber varios factores que puedan hacer que no lo sea...

Por otro lado, Ivan, compile de nuevo el kernel 2.6.37 para habilitar el dispositivo /proc/kmem. He intentado usar el código que me paseste, pero me da error de IO:


./a.out 0xbffff65e
/dev/kmem opened.
Error at line 81, file vuelca_memoria.c (5) [Input/output error]


He intentado investigar por la red, y no he visto nada claro sobre el problema...
Ultimamente estoy super liado con el trabajo, si puedo te contesto tan rapido como pueda.

Salu2