Jugando con Metasploit. Got Root! - Post 2 - BoomerNiX

martes, 11 de septiembre de 2018

Jugando con Metasploit. Got Root! - Post 2

En el post de hoy vamos a utilizar una distro de Linux vulnerable para poner un ejemplo de elevación de privilegios, se trata de Metasploitable II. Nuestra máquina atacante será un Kali Linux.
El proceso que se va a llevar a cabo de manera resumida es el siguiente:
  1. Buscamos los servicios que están corriendo en la máquina Metasploitable.
  2. Comprobamos si tiene vulnerabilidades.
  3. Explotamos la vulnerabilidad que escogemos.
  4. Estamos dentro con privilegios limitados, así que buscamos procesos corriendo como root y que no pertenezcan al kernel.
  5. Buscamos un exploit que nos permita elevarnos y lo ejecutamos.
  6. Got Root!
Las máquinas y sus IPs son las siguientes:
  • Kali Linux > 192.168.42.128
  • Metasploitable II > 192.168.42.131

Buscando servicios en la máquina víctima

Para esta tarea usaremos nmap, el comando a ejecutar: 

nmap -p 1-65535 -T4 -sV 192.168.42.131

Como se va a usar Metasploit, podemos hacer uso de nmap en la propia herramienta (db_nmap), el resultado va a ser el mismo, pero se guardarán los resultados en la base de datos, para no perdernos antes borramos la base de datos con “clear  database”. La salida (no completa) se muestra en la siguiente captura:


Ahora podemos consultar los servicios todas las veces que queramos con el comando services de Metasploit.

Buscamos posibles exploits

Ahora buscamos si existen exploits para los servicios, vamos a centrarnos en distccd, usamos search:


Tenemos un exploit disponible, vamos a configurarlo y lanzarlo:


Ya tenemos una shell corriendo en el equipo víctima, pero no con los privilegios deseados, vamos a intentar elevarnos a root, para ello necesitamos información del sistema (procesos corriendo, kernel, etc.).

Recolectamos información del equipo víctima

Obtenemos información del kernel: uname -a


Vamos a por los procesos, en este caso no podemos sacar la información directamente, nos movemos al directorio /tmp y lo guardamos en un fichero:


Tenemos un proceso que nos va a interesar, /sbin/udevd, apuntamos su PID 2715. Vamos a buscar posibles exploits para elevar privilegios, para ello tiramos de searchsploit:


Vemos 4 resultados, con la información que tenemos del kernel, elegimos el 2º.

Lanzando el exploit para elevar privilegios

Podemos leer el exploit, está escrito en c, ejecutamos cat /usr/share/exploitdb/exploits/linux/local/8572.c, podemos ver que tiene un comentario “Usage”:


Podemos entender que necesitamos crear un payload en /tmp que se llame run, y además necesitará un parámetro, que veremos más adelante.

Ahora bien, este exploit lo tenemos que ejecutar en la máquina víctima y lo tenemos en la máquina atacante, vamos a ver cómo lo podemos mover.

Podemos hacer uso de diferentes servicios, tirar de netcat, por web, ftp, etc. En este caso vamos a pasarlo a través de HTTP:


Y desde la terminal que tenemos abierta en el equipo víctima, hacemos uso de wget, y compilamos el exploit:


Necesitamos crear el payload, tal y como nos indicaba las instrucciones del exploit. El payload puede ser un simple cliente de netcat, pero en esta ocasión, creamos un payload con msfvenom que lance un meterpreter:


En la terminal que tenemos abierta para el equipo víctima, hacemos uso de wget (tenemos que dejarlo en /tmp):


El propio exploit ya le dará los permisos de ejecución. Configuramos Metasploit para que acepte la conexión:


Llega el momento de lanzar el exploit, hay que recordar el parámetro que necesita, lo tenemos que ejecutar pasándole el ID del proceso, menos 1 >> (2715 – 1), así que ejecutamos: ./gotroot 2714. Y se abre nuestra nueva sesión:


Y vemos que ya tenemos un meterpreter con altos privilegios:


Hace ya un tiempo estuve en un curso para preparar la certificación CEH, y que el profesor que tuvimos, Antonio da Silva, nos mandaba prácticas de este estilo. Si alguien quiere hacer dicho curso en Madrid, que se ponga en contacto conmigo y le indico.

Hasta la próxima.

No hay comentarios:

Publicar un comentario