Autor
|
Tema: [Videotuto] Exploit local linux 32 y 64 bits (Leído 19,772 veces)
|
M3st4ng
Desconectado
Mensajes: 58
|
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... Si 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!
|
|
|
En línea
|
|
|
|
Ivanchuk
Desconectado
Mensajes: 469
LLVM
|
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 http://ftp://ftp.buici.com/pub/arm/devmem/devmem2.c
|
|
« Última modificación: 9 Marzo 2011, 09:06 am por Ivanchuk »
|
En línea
|
|
|
|
M3st4ng
Desconectado
Mensajes: 58
|
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
|
|
|
En línea
|
|
|
|
Ivanchuk
Desconectado
Mensajes: 469
LLVM
|
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) objdump -h /bin/ls
En /proc/<pid>/maps podes ver el mapeo de memoria asignado a cada proceso que tenes corriendo.
|
|
|
En línea
|
|
|
|
andres_5
Desconectado
Mensajes: 200
|
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 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
|
|
|
En línea
|
|
|
|
M3st4ng
Desconectado
Mensajes: 58
|
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
|
|
|
En línea
|
|
|
|
|
|