Notas de Luis

Máquina AMBASSADOR

Empezamos haciendo un escaneo de nmap:

Y estos son los servicios que corren por detrás de estos puertos:

Vemos que tiene el puerto 80 abierto, por lo que hacemos un whatweb:

Y hacemos lo mismo con el puerto 3000 que también corre un servicio web:

Y por el puerto 80 corre esta web:

Y por el puerto 3000 corre esta otra web de grafana:

Y vemos la versión de este grafana, la cual es la 8.2.0, por lo que buscamos con searchsploit y nos encontramos una versión muy parecida, la 8.3.0, por lo que fácilmente será vulnerable:

Nos descargamos este exploit de python; y si miramos su contenido, vemos cómo lo que está haciendo es un intento de path traversal, donde nos dice que en la web existe una ruta llamada /public/puglins/el_plugin_que_sea y luego a partir de ahí se intenta leer un archivo interno de la máquina:

Por tanto podemos hacer esto mismo con un curl de esta forma y seleccionando alguno de estos plugins, donde habría que ir probando para ver si alguno existe para que se acontezca el path traversal:

Ahora en este punto podemos buscar en el archivo de configuración de grafana, por si encontramos unas credenciales; y las encontramos tanto de un usuario y su contraseña:

Ahora vamos a obtener el fichero de bases de datos de grafana, para ver si encontramos unas credenciales para acceder a la base de datos; y si preguntamos a chatgpt, nos dice cual es la ruta donde se guarda este archivo por defecto:

Por tanto vamos a guardarnos ese fichero, que también nos dice que se llama grafana.db:

Ahora vamos a inspeccionar este fichero grafana.db con el comando strings:

Y dentro de este fichero si filtramos por la palabra grafana, nos encontramos con otras credenciales de la base de datos:

Y podemos entender que las credenciales son las siguientes:

db: grafana
user: grafana password: dontStandSoCloseToMe63221!

Así que vamos a probar en acceder con estas credenciales a la base de datos MySQL de la máquina:

Y al utilizar el comando show databases nos encontramos con una base de datos un poco extraña:

Por tanto vamos a acceder a esta y a extraer su información, poniendo la instrucción show tables y luego select * from users:

Vamos a decodificar esta contraseña que parece base64, y vemos que la contraseña es anEnglishManInNewYork027468:

Por tanto con esta credencial vamos a iniciar sesión por ssh y con el usuario developer, que vimos que era un usuario válido cuando empezamos a hacer la máquina:

Una vez dentro podemos inspeccionar la carpeta /opt, donde vemos que hay una carpeta que se llama my-app, por lo que suponemos que alguien estuvo desarrollando una aplicación y seguramente estaría haciendo commits a github de la misma:

Por tanto vamos a inspeccionar el commit más reciente con el siguiente comando, donde vemos un servicio que se llama consul.sh y un token que usaremos más adelante:

Por tanto vamos a buscar vulnerabilidades asociadas a este servicio; y encontramos un exploit en github:

Vamos a compartir este exploit con la máquina víctima dentro del directorio /tmp para tener los permisos de escritura:

Y ahora siguiendo las instrucciones del repositorio de github, tenemos que ejecutar esta herramienta, poniendo el token que hemos podido ver antes y nuesta IP de la máquina atacante y puerto donde estaremos escuchando con netcat: Consideraciones Previas (CONSEGUIR REVERSE SHELL DE MÁQUINA VÍCTIMA A NUESTRO EQUIPO)

Y ahora con netcat habremos recibido la conexión como el usuario root:

computing/hacking/ctf/hackthebox/maquina_ambassador.txt · Última modificación: por 127.0.0.1