El proceso que se va a llevar a cabo de manera resumida es
el siguiente:
- Buscamos los servicios que están corriendo en la máquina Metasploitable.
- Comprobamos si tiene vulnerabilidades.
- Explotamos la vulnerabilidad que escogemos.
- Estamos dentro con privilegios limitados, así que buscamos procesos corriendo como root y que no pertenezcan al kernel.
- Buscamos un exploit que nos permita elevarnos y lo ejecutamos.
- 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