Skip to main content
HackTheBox machines - Admirer

HackTheBox machines – Admirer WriteUp

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

Admirer es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad fácil.

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 Admirer 10.10.10.187 a /etc/hosts como admirer.htb y comenzamos con el escaneo de puertos nmap.

Observamos varios puertos abiertos, pasamos directamente al 80 y observamos la siguiente pantalla:

 

Enumeración

Buscamos en la página anterior y observamos algo interesante en el fichero robots.txt

Accedemos a dicho directorio pero no tenemos permisos así que buscamos los ficheros que menciona en el anterior comentario y descubrimos los ficheros contacts.txt

y credentials.txt

 

Con los datos descubiertos, recordamos que en el escaneo inicial vimos que tenía abierto el puerto 21, que corresponde al servicio ftp, por lo que intentamos acceder con las credenciales obtenidas y descubrimos un dump de sql y un fichero tar.gz

Analizamos los mismos y encontramos varios accesos de base de datos pero todavía no hemos descubierto nada con lo que poder utilizarlos.

Seguimos con nuestra búsqueda y, viendo el nombre de la máquina admirer, conocemos un script de php llamado adminer para el acceso y control de bases de datos, para aquellos que no lo conozcan, se trata de una alternativa a phpmyadmin.

Probamos a acceder con las rutas conocidas de los ficheros existentes en el tar.gz y descubrimos un portal de login del mismo en la ruta utility-scripts/adminer.php

 

Ahora probamos con las contraseñas y usuarios descubiertos hasta el momento, pero sin éxito con ellos.

Utilizaremos entonces google a ver si podemos dar con alguna vulnerabilidad en el mismo, que como vemos en la parte superior izquierda, nos indica la versión 4.6.2

Encontramos una vulnerabilidad en el mismo a través de la cual podemos conectar a un servidor de mysql remoto y lanzar una consulta para obtener ficheros existentes en local, así que montamos el mysql púbico en nuestro kali y conectamos desde el panel de adminer:

Aquí probamos con varios ficheros, fijándonos en los que vimos en el fichero html.tar.gz y obtenemos una respuesta satisfactoria con el fichero index.php y la siguiente consulta:

 

Comprobaremos ahora en la tabla test de la base de datos test creada en nuestro kali y vemos las credenciales del usuario waldo:

 

 

Obteniendo la flag de user

Con las credenciales obtenidas anteriormente probamos el acceso por ssh y listo, tenemos acceso con el usuario waldo y con ello la flag de user:

 

Escalando privilegios

Ahora que ya hemos conseguido acceso con un usuario, nos queda escalar privilegios a otro usuario o a root, así que veamos las posibilidades.

En primer lugar observaremos los permisos existentes:

Observamos que tenemos permisos como sudo para ejecutar un script así que vamos primero a ver que hace dicho script.

A continuación el código del script admin_tasks.sh

A través del mismo podemos realizar varias acciones en el sistema como ver las tareas de cron o los usuarios logueados. Nos fijamos en la misma carpeta y vemos otro script llamado backups.py cuyo código es el siguiente:

Viendo este segundo código y analizando el primero, podríamos bypasser la librería de python shutil con un script propio para que se ejecute el mismo cuando en el script admin_tasks.sh llamemos a este.

Dicho esto, nos creamos un script llamado shutil.py en la ruta /tmp/test con el siguiente código:

Añadiremos ahora la ruta a la variable PYTHONPATH

Y probaremos a ejecutar el script backup a ver si funciona:

Y observamos como en la escucha hemos conseguido abrir una shell con el usuario waldo:

 

Obteniendo la flag de root

Viendo que hemos podido obtener la shell inversa con el usuario waldo, lo haremos a continuación con el usuario root.

Ejecutaremos el comando que indicaba el comando sudo -l con la opción -E para indicarle el path de nuestro script y la opción 6 para indicar que realice el backup de base de datos:

Y en la escucha que teníamos a la espera vemos como hemos conseguido acceso root:

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.