HTB CAP

imagen

Resumen:

Herramientas
Nmap
Dirb
Wireshark
Escalada de privilegios
getcap (capabilities)

Nos encontramos ante una máquina de dificultad EASY, veremos si es tan EASY como dicen.

  • Nmap

Lo primero que hacemos es un escaneo con nmap, en este caso con el “-A” nos detectará las versiones, servicios…… de todo un poco, éste parámetro no es muy recomendable ya que es bastante ruidoso.

imagen

Encontramos 3 servicios en los que sus versiones no tienen ninguna vulnerabilidad explotable pero que nos hacemos una idea por donde empezar a investigar

imagen imagen

Observamos como hay un puerto 80 abierto

imagen

El siguiente paso será introducir la IP en un navegador para ver que contiene esa web. Mirando un poco la estructura nos paramos en la siguiente página donde vemos que nos podemos descargar “algo”, es un archivo “.pcap” (este tipo de archivo es utilizado por aplicaciones como wireshark para monitorear trafico de red), pero observamos que no tiene nada.

imagen

Analizamos las cabeceras por si vemos algo interesante, en este caso no

imagen

Buscamos vulnerabilidades con nmap para ver un poco si nos da más información sobre el objetivo.

imagen

Y algo interesante es el /data/8, si volvemos a la url anterior vemos como el “data” que estábamos viendo es el 9, en este caso nos ha descubierto que hay un 8 y podemos intuir que hay más.

imagen

Probamos con data/8 y ya vemos como hay datos, así que vamos a descargarlo a ver que contiene

imagen

  • Wireshark

Como lo que descargamos es un .pcap lo abriremos con Wireshark y nos ha dado una PASS del FTP

imagen

Lo probamos, lo lógico sería que el usuario fuera la que vimos en la web, “Nathan”, pero al aplicarle la PASS encontrada no logramos la conexión

imagen

Con esto llegamos a la conclusión que la clave tiene que estar dentro de algún pcap, hay que averiguar en cual.

  • Dirb

Podemos buscar si hay mas cosas en la carpeta “DATA” que es donde habíamos encontrado el archivo “8”

imagen

y BINGO, hay muchos más.

imagen

Empezaremos a probar por el primero

  • En busca de la flag de USUARIO

Encontramos el “USER” y otra “PASS”, ésta si que parece ser la buena (nos lo han puesto fácil poniendolo en el primero y no en el último)

imagen

Ahora lo comprobamos y logramos conectarnos por FTP

imagen

En este paso ya podremos visualizar la FLAG del usuario.

imagen

Vamos hacer una prueba y es que también teníamos un protocolo SSH, podemos probar si tiene las mismas credenciales

Y exactamente tiene las mismas

imagen

***Lo anterior se ha hecho todo un poco paso por paso y utilizando herramientas para descubrir cosas, pero lo podríamos haber realizado de una forma mucho más sencilla, al ver que en la url nos estaba dando un “data/8” podríamos haber probado con más números y hubiéramos llegado a la misma conclusión.

  • En busca de la flag de ROOT

Comprobamos a ver si podemos ver los dos archivos importantes para encontrar las contraseñas de los usuarios

“passwd” podemos verlo

imagen

Pero “shadow” no

imagen

Por lo que tenemos que buscar como poder escalar privilegios para convertirnos en root

Las máquinas de HTB nos suelen dar algunas pistas, por cómo se llama, “CAP”, puede que vayan los tiros por la parte de las “capabilities”, probamos “getcap”, con el siguiente comando podremos ver las capabilities que hay en el sistema asociadas a determinados ficheros. Observamos como “python” tiene una bastante interesante que es la “cap_setuid”

imagen

Antes de continuar vamos a explicar que es eso de las capabilities y como usarlas para poder escalar privilegios. 
Las capabilities nos permiten gestionar que permisos tiene un proceso para acceder a las partes del kernel, por ejemplo con “setcap” podemos hacer que un usuario no administrativo use un determinado proceso sin necesidad de tener privilegios especiales, es decir, los procesos que tengan asignada capabilitie solo permitirá al usuario ejecutar ciertas acciones privilegiadas, pero no obtener el rol de superusuario. 
Hay muchas pero en este caso la que nos importa es la que tiene python que es la "cap_setuid". 
Ésta capabilities nos va a permitir asignarle el UID de root.

Vamos a poner “bash” como “setuid root” para intentar hacer la escalada de privilegios. Para ello ponemos el 0 que es el que pertenece a root en “os.setuid” y en “os.system” con “chmod +s” activaremos el modo suid (setuid).

imagen

Una web bastante interesante que nos facilitara bastante el trabajo es https://gtfobins.github.io/ , aquí podemos buscar un comando y nos dirá, en este caso, como explotar el tema de la capabilities.

Comprobamos que se ha cambiado

imagen

Ahora con el “-p” preservaremos los permisos indicando la escalada de privilegios

imagen

Ya solo nos queda buscar el fichero que contiene la flag del usuario root

imagen

Una maquina que al final ha sido bastante sencilla pero que si nunca se ha tocado el tema de las “capabilities” es bastante buena para aprender un poco sobre el tema.