Skip to main content
HackTheBox machines - Obscurity

HackTheBox machines – Obscurity WriteUp

Obscurity es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox.

Obscurity es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad media.

En este caso se trata de una máquina basada en el Sistema Operativo Linux.

 

Escaneo de puertos

Como de costumbre, agregamos la IP de la máquina Obscurity 10.10.10.168 a /etc/hosts como obscurity.htb y comenzamos con el escaneo de puertos nmap.

 

Observamos los puertos abiertos y encontramos una página web en el puerto 8080

HackTheBox machines - Obscurity

 

Revisamos el portal y encontramos un texto que indica que existe un fichero .py en un directorio secreto.

HackTheBox machines - Obscurity

 

Enumeración

Descubierto que existe un fichero llamado SuperSecureServer.py vamos a utilizar la herramienta wfuzz para intentar encontrar ese directorio secreto y obtenemos el mismo con el nombre develop

Con el que obtenemos el código del script SuperSecureServer.py

Analizamos el código y observamos una parte que podría ser vulnerable en el mismo:

Por lo que podríamos inyectar nuestro código para intentar obtener una shell:

Creamos entonces una reverse shell en python que podemos obtener desde la entrada Cheatsheet – Reverse shell disponible en este mismo blog con el siguiente código:

Utilizamos un codificador de url y lo enviamos como petición al servidor para obtener nuestra shell con el usuario www-data

Y accedemos a la home del usuario robert

En la home de dicho usuario encontramos varios ficheros interesantes, por una parte el fichero check.txt

Donde nos indica que utilizando dicho fichero con la clave correspondiente el resultado se almacenará en el fichero out.txt

Observamos también el script para realizar dicho cifrado llamado SuperSecureCrypt.py y cuyo código es

 

Observamos dos funciones importantes, encrypt y decrypt y vemos que el fichero out.txt está cifrado por lo que necesitaremos descifrar el mismo para obtener su contenido.

Ahora descifraremos el fichero passwordreminder.txt para obtener la pass del usuario robert con la key obtenida en el anterior paso

Y tenemos la clave de acceso del usuario robert

 

Obteniendo la flag de user

Con la clave obtenida del usuario, lo que nos queda ahora es acceder por ssh con dicho usuario:

Y con ello conseguimos la flag de user en el fichero user.txt

 

Escalado de privilegios

Ahora que hemos conseguido acceso con el usuario robert, procedemos a revisar los permisos del mismo:

Y vemos que tiene permisos de sudo para ejecutar el script /home/robert/BetterSSH/BetterSSH.py cuyo contenido es el siguiente:

Revisamos el script y obtenemos que al acceder con un usuario a través del mismo, hace una copia del fichero /etc/shadow en un fichero aleatorio en /tmp/SSH

Aunque vemos que el mismo se borra un segundo después. Para solucionar esto, utilizaremos watch que nos copiará todo el contenido de la carpeta /tmp/SSH en la ruta que le indiquemos cada segundo.

Lanzaremos entonces el siguiente comando:

Y posteriormente ejecutaremos el script:

Ahora accedemos a dicho directorio y comprobamos el contenido del fichero generado:

Y tenemos el hash de la clave de root.

Utilizaremos John The Ripper para descifrar la misma y conseguir la pass de root en plano.

Y conseguimos la pass de root que es mercedes.

 

Obteniendo la flag de root

Ahora que tenemos la pass de root, sólo nos queda loguearnos para conseguir la flag.

Y ya tenemos nuestra flag de root para completar esta máquina y conseguir nuestros puntos.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *