HTB CAP
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.
Encontramos 3 servicios en los que sus versiones no tienen ninguna vulnerabilidad explotable pero que nos hacemos una idea por donde empezar a investigar
Observamos como hay un puerto 80 abierto
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.
Analizamos las cabeceras por si vemos algo interesante, en este caso no
Buscamos vulnerabilidades con nmap para ver un poco si nos da más información sobre el objetivo.
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.
Probamos con data/8 y ya vemos como hay datos, así que vamos a descargarlo a ver que contiene
- Wireshark
Como lo que descargamos es un .pcap lo abriremos con Wireshark y nos ha dado una PASS del FTP
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
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”
y BINGO, hay muchos más.
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)
Ahora lo comprobamos y logramos conectarnos por FTP
En este paso ya podremos visualizar la FLAG del usuario.
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
***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
Pero “shadow” no
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”
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).
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
Ahora con el “-p” preservaremos los permisos indicando la escalada de privilegios
Ya solo nos queda buscar el fichero que contiene la flag del usuario root
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.