Late [EASY🟒]

Dificultad: FΓ‘cil

1- Reconocimiento y escaneo

1.1 Ping

Podemos notar que se trata de una maquina Linux, debido al TTL:

1.2 Nmap

El puerto 80(nginx 1.14.0) correspondiente a un servidor web y el puerto 22(OpenSSH 7.6p1) correspondiente a un servidor SSH para control remoto mediante linea de comandos

1.3 whatweb

1.4 Virtual Hosting

Si investigamos el sitio web, y bajamos abajo del todo, veremos un enlace en el que podremos acceder:

Ingresamos:

Veremos que no nos deja acceder, pero si miramos el enlace a donde nos llevo, veremos esto "https://images.late.htb/", lo cual podemos decir que se aplica un virtual hosting y tendremos que cambiar el archivo "/etc/hosts":

Como podemos ver, el subdominio "images.late.htb" esta apuntando a la IP 10.10.11.156 que es la IP de la maquina objetivo, si ingresamos nuevamente:

Ahora el subdominio es funcional, se trata de un sitio web que con el subir una imagen, nos la convierte en texto, ya podemos ir sabiendo mas o menos por donde va la intrusiΓ³n de la maquina

Como podemos ver en la imgen, he subido una imagen que contiene el texto "Hola que tal", y la he subido a la pagina web, y me descargo automaticamente un archivo .TXT con lo que contiene en texto la imagen subida con el siguiente formato:

2- ExplotaciΓ³n

2.1 SSTI (Server-Side Template Injection)

Como pudimos ver, nosotros al ingresar una imagen con texto, nos devuelve el mismo texto en formato de archivo .TXT con lo mismo, siempre que nosotros ingresemos algo en un sitio web y nos reporte lo mismo hay que pensar en un probable ataque SSTI

2.2 Reverse shell con SSTI

Para eso vamos a utilizar un cΓ³digo en HTML que actuΓ© como payload y sacarle una captura de pantalla y mandΓ‘rselo a la web y luego que la web interprete ese HTML como cΓ³digo bash, en mi caso utilizare el siguiente cΓ³digo en Bash:

Creo el archivo:

(En mi caso la reverse shell me la voy a enviar a mi maquina por la IP 10.10.14.12 que es la IP que me asigna la VPN de Hack The Box por la interfaz de red tun0)

Y levanto un servidor web:

Vamos a ponernos en escucha con netcat por el puerto 443 tambien, utilizando otra consola en Kali:

Y la captura con el cΓ³digo que le vamos a pasar, utilizaremos el siguiente cΓ³digo:

Como podemos ver, le estamos diciendo que haga un curl al sitio web que tenemos alojado con Python por el puerto 80, y que lo interprete como cΓ³digo Bash

Subimos la imagen:

Podemos ver que la solicitud web se realizo correctamente

Y ya tenemos la reverse shell

2.3 Tratamiento de la TTY

Vamos a realizar el tratamiento de la TTY para obtener una shell como dios manda :)

"script /dev/null -c bash":

CTRL + Z:

Y vamos a ejecutar el siguiente comando:

Ejecutamos:

Y ahora ejecutamos:

Ejecutamos y nos va a devolver a la reverse shell que obtuvimos:

Ahora vamos a exportar XTERM como TERM y BASH como consola, como variables de entorno:

Para verificar que el tratamiento de la TTY se realizo correctamente, pondremos "echo $SHELL" o "echo $TERM":

El tratamiento de la TTY corresponde hacerlo cuando debemos hacer muchas cosas con una reverse shell y necesitamos realizar algunas tareas como utilizar un editor de texto en consola, entre otras

2.4 ObtenciΓ³n de la flag user

La flag de user se encuentra dentro de la ruta absoluta "/home/svc_acc/user.txt", vamos a visualizar la flag:

3- Escalado de privilegios

3.1 BΓΊsqueda de archivos Bash del usuario svc_acc

Vamos a realizar una bΓΊsqueda de archivos .SH que pertenezcan al usuario "svc_acc":

Nos devuelve muchos archivos ".SH", y en la ultima linea nos encontramos con este archivo:

3.2 ssh-alert.sh

Vamos a ver que contiene este archivo Bash "ssh-alert.sh":

Podemos ver que es un archivo .SH que alerta al usuario "svc_acc" sobre cada inicio de sesiΓ³n por SSH

Vamos a ver los permisos que tiene este archivo:

Tenemos permisos de lectura y ejecuciΓ³n, por lo que si se ejecutase este archivo, podrΓ­amos obtener acceso root, ya que el usuario svc_acc tiene permisos de ejecuciΓ³n, pero no tenemos permisos de escritura

Ahora vamos a ver los atributos que tenemos sobre este archivo:

Tenemos permisos para agregar cosas sobre el archivo

Por lo que podrΓ­amos realizarle un "echo" y con ">>" al final, indicarle que queremos agregar algo al final del archivo, pero antes, nosotros sabemos que este archivo se ejecuta cada vez que alguien se conecta vΓ­a SSH, por lo que podrΓ­amos conseguir la clave publica "id_rsa" del usuario "svc_acc" para conectarnos vΓ­a SSH y conseguir que se ejecute el archivo "ssh-alert.sh"

Sabiendo esto, primero vamos por partes, vamos a agregar al archivo "ssh-alert.sh" un codigo bash para enviarnos una reverse shell, el mismo cΓ³digo que utilizamos para obtener la reverse shell con el usuario "svc_acc":

Vamos a agregarlo al archivo "ssh-alert.sh" con "echo":

(Vamos a abrir la reverse shell por el puerto 888)

Vemos que se agrego en el archivo "ssh-alert.sh"

Ahora vamos a conseguir la clave publica "id_rsa" para conectarnos vΓ­a SSH con el usuario "svc_acc" sin contraseΓ±a, la clave se encuentra dentro la ruta absoluta "/home/svc_acc/.ssh/id_rsa":

Vamos a copiarla y a guardarnosla en un archivo llamado "id_rsa":

Vamos a conectarnos por SSH para verificar si ya podemos conectarnos sin contraseΓ±a con el usuario "svc_acc":

Vamos a darle permisos al archivo "id_rsa" que acabamos de crear:

Y vamos a conectarnos:

Nos deja, asi que vamos a salirnos de esta sesiΓ³n de SSH y vamos a ponernos en escucha con netcat por el puerto 888:

Y vamos a conectarnos otra vez por SSH con el usuario "svc_acc":

Se quedo cargando, pero si volvemos a la consola donde teniamos netcat en escucha por el puerto 888:

Somos usuarios root

3.3 ObtenciΓ³n de la flag root

La flag de root, se encuentra dentro del directorio "/root/root.txt":

Con esto, concluimos la maquina "Late" de Hack The Box

Espero te haya sido de ayuda este Write Up :)

Si tuviste alguna dificultad a la hora de resolverlo, no olvides contactarme en mis redes sociales

Última actualización