Facts - HackTheBox
Escaneo
Nmap
Empezamos con un escaneo normal para ver los puertos abiertos

Escaneo para identificar la version de los servicios corriendo


Gobuster
Inicio un escaneo de directorios para ver la estructura de la web

Accedo al panel de logeo

Creo una cuenta para ver los endpoints de registro e intercepto la peticion con burpsuite, pero no encuentro nada fuera de lo comun en un login, el post la ruta del endpoint y en el body de la peticion una cookie/session que en cada peticion se actualiza lo cual es el estandar de backend actualmente, seguido de los parametros con la informacion del formulario.

Al seguir haciendo reconomiento de la web veo la version de Camaleon CMS 2.9.0

Como es costumbre se googlea para encontrar algun cve y efectivamente existe

Segun el cve hay que interceptar la peticion, en mi caso fui por el camino mas rebuscado simplemente para encontrar otra forma de explotacion ademas de lo que indicaba el cve. Procedo a buscar en el panel de usuario algun formulario para actualizar los datos de usuario.

Actualizo la informacion y la intercepto nuevamente con burpsuite. Encuentro en la cabecera de la peticion una enumeracion de usuarios lo cual es una clara señal de que el backend podria no estar protegiendo bien los endpoints y podria modificarse informacion de otros usuarios ajenos al nuestro. Intente con /admin/users/0 y admin/users/1 para ver si podia modificar la contraseña del usuario admin pero no hubo caso

Asique procedo por el camino indicado por el cve (nunca esta demas intentar otras maneras ademas de la mas conocida) y finalmente logro hacer el escalado de privilegio.

Procedo a logear nuevamente y efectivamente obtuve privilegios de administrador.

Buscando informacion en el panel de admin encontre credenciales de Amazon S3.

Como nunca use el servicio tuve que buscar documentacion de como acceder con esas credenciales, primero configuramos con aws configure nos pedira las credenciales, las cargamos y procedemos a investigar la informacion de la nube.
Al listar el contenido de la nube encontre dos directorios randomfacts/ que contiene las imagenes de la web y internal/ que contiene informacion mas sensible.

Ingreso comando de descarga recursiva para revisar el contenido de forma local y ver si encuentro mas informacion.
aws s3 cp s3://internal/ ./internal_files --recursive --endpoint-url http://facts.htb:54321Una vez descargado todo accedo al directorio .ssh que contiene credenciales. Por el momento ignoremos id.hash (que fue creado por mi con una herramienta), pero en id_ed25519 esta la clave privada de acceso mediante ssh.

Al usarla para acceder mediante ssh nos pide un passphare asique procedemos a convertir el archivo en un hash con la herramienta John The Ripper.
ssh2john id_ed25519 > id.hashCon ese hash se crackea con el diccionario rockyou.txt para ver el passphrase.
ssh2john id_ed25519 > id.hashY obtenemos la clave, para confirmar que la clave es correcta hacemos uso de ssh-keygen.
ssh-keygen -y -f id_ed25519Nos devolvera el usuario y ese es el que usaremos para acceder con la clave privada y obtendremos una shell.

Mirando directorios encontraremos la primer flag.

Ahora el proceso es intentar escalar privilegios para lograr la shell con permisos de root. Para ello usamos sudo -l para ver que podemos ejecutar con permisos de root,.

Buscando informacion facter muestra informacion de sistema, kernel, ip, etc. Como tiene permisos de root NOPASSWD podemos hacer uso de él para que ejecute un script en ruby para nosotros que inicia una bash, luego lo ejecutamos y listo tenemos acceso root.

Buscan un poco en /root y listo se obtiene la ultima flag
← Back to blog