Blog

ACTUALIDAD
14 Jul 2020

Consiguiendo Root desde una Shell sin privilegios

//
Comentarios0

Consiguiendo Root desde una Shell sin privilegios

Logramos obtener una shell en el objetivo, pero solo con privilegios de bajo nivel. ¿Ahora qué? La escalada de privilegios es un campo vasto y puede ser una de las fases más gratificantes pero frustrantes de un ataque. Podríamos seguir la ruta manual, pero Metasploit facilita la escalada de privilegios locales y obtener privilegios root. ¿Cómo?, veamos el proceso a continuación.

  1. Lo primero que debemos hacer es obtener una sesión con privilegios de bajo nivel en el objetivo. Podemos hacerlo con Metasploit. Para ello, lo lanzamos mediante el comando msfconsole en nuestro terminal.

La máquina con la que estamos realizando el post contiene un servicio vulnerable llamado distccd, que se utiliza para distribuir la compilación de programas en múltiples sistemas. Así que probaremos a realizar una búsqueda en Metasploit de este servicio.

Únicamente hemos encontrado un módulo relacionado con este servicio, así que procedemos a cargarlo (Ya sabéis que podéis utilizar el número debajo de # o el directorio completo del módulo).

Veremos las opciones que deberemos setear con el comando options:

Cómo podéis observar, únicamente deberemos setear rhosts y podremos proseguir lanzándolo.

Podemos ver que se abrió una shell de comandos y que si ejecutamos uname -a verifica que hemos comprometido nuestro objetivo.

  1. Necesitamos actualizar nuestra shell de comandos básico de Unix a una sesión de Meterpreter. Para ello, mientras aún estamos en la shell, presionamos Ctrl-Z para poner en segundo plano la sesión. Presionamos Y si nos pregunta si queremos enviar nuestra sesión a un segundo plano.

Podemos verificar cualquier sesión que tengamos en segundo plano con el comando sessions:

La forma más rápida y sencilla de actualizar una shell a una sesión de Meterpreter es utilizar el indicador -u seguido del número de sesión para la actualización:

Mediante el comando sessions podemos observar cómo se ha creado una nueva sesión, pero esta vez de Meterpreter.

Y podemos trabajar con nuestra nueva sesión de Meterpreter utilizando el indicador -i en la sesión deseada:

  1. Los módulos de Metasploit funcionan ejecutándose en una sesión en segundo plano, no directamente en la sesión en sí misma, por lo que la sesión en segundo plano 3 (Nuestra shell Meterpreter). Podemos utilizar el siguiente Post:

Cuando analizamos las opciones, solo necesitamos especificar la sesión en la que queremos ejecutarlo:

Procedemos al lanzamiento y comenzará a sugerirnos Exploits:

  1. Por último, utilizaremos uno de estos Exploits para conseguir nuestro ansiado root. Intentaremos el primero que se nos sugiere. Este Exploit aprovecha una vulnerabilidad en el enlazador dinámico glibc, en el que la variable de entorno LD_AUDIT permite cargar un objeto setuid que finalmente se ejecuta con privilegios de root.

Observando las opciones, veremos que solo necesitamos configurar la sesión nuevamente. La ruta ejecutable predeterminada funcionará por ahora:

También podemos configurar un Payload para darnos otra sesión de Meterpreter al completarse la ejecución de nuestro Exploit:

Configuramos el lhost (La dirección IP de nuestra máquina local) y el lport:

Una vez todo seteado procedemos a lanzarlo con el comando run:

Ahora disponemos de una nueva sesión de Meterpreter en la máquina víctima, y podemos acceder a una shell para verificar que hemos obtenido acceso root: