Academy | Hack The Box

En este tutorial voy a mostrar como obtuve la bandera root en la máquina Academy de Hack The Box. Esta propiedad se presenta como un desafío de nivel fácil.

Academy

4 de junio de 2025

Enumeración


Para comenzar voy a realizar un escaneo de puertos con nmap:

nmapnmap ports

Por lo visto los puertos abiertos son el 22, 80 y 33060, este ultimo pertenece a mysqlx, el cual es utilizado por mysql para comunicaciones orientadas a documentos json.

Me voy a dirigir a la pagina web para ver de que se trata:

web

Al parecer es una plataforma para una academia de “Hack The Box”, la cual me permite registrarme e iniciar sesión.

registerlogin

En primer lugar me voy a registrar y una vez realizado el registro con éxito voy a iniciar sesión.

Tras iniciar sesión veo que se trata de una plataforma que brinda diferentes cursos sobre ciberseguridad:

courses

Tras investigar la página no encontré nada interesante que me sirva como punto de apoyo.

Lo que voy a hacer ahora es realizar una búsqueda de directorios para ver si hay alguna ruta que me pueda servir:

gobuster

Me encontré con algunas cosas interesantes, en primer lugar, voy a ingresar en /config.php pero me encuentro con una página sin contenido, así que voy a dirigirme a admin.php en donde me encontré con un login.

adminphp

Intenté loguearme como admin con las mismas credenciales que me registre, pero no funciono. Lo que voy a hacer ahora es abrir burpsuit para interceptar la petición del registro y ver si puedo modificar algo desde ahí para darme acceso como admin. Esto se me ocurrió gracias a que tras haberme registrado en el paso anterior note que se envía como parámetro un “roleid=0”, si modifico esto puedo registrarme como admin. Lo que voy a hacer es reemplazar el 0 por el 1:

register admin

Al reemplazarlo por el valor 1 puedo ver que recibo el mensaje de bienvenida.

Explotación


Tras ingresar como administrador me encuentro con lo siguiente:

adminlogin

Es una especie de checklist y por lo visto hay un error que figura pendiente el cual se encuentra en dev-staging-01.academy.htb. Voy a ingresar para ver de qué se trata:

devtaging

Por lo que puedo notar se está usando el framework de laravel, esto lo note ya que en las rutas puedo ver que figura laravel.

Laravel es un framework de código abierto utilizado en PHP para desarrollar aplicaciones.

En searchsploit encontré un exploit que me puede ayudar:

exploit

Este exploit me permite establecer una conexión remota, la cual me puede ayudar para ingresar en la máquina y capturar las banderas.

Como es un exploit de metasploit voy a iniciarlo para luego poder ejecutarlo:

metasploit

Una vez abiertas las sesiones puedo ejecutar comandos:

id

Y voy a usar el siguiente comando para obtener un tty completo:

tty

Navegando un poco encontré el archivo user.txt pero no tengo permisos para leerlo:

usertxt

Me voy a dirigir a /var/www/html/academy, ahí voy a encontrar un archivo con las variables de entorno:

acdemy env

Al abrirlo puedo ver la password de la base de datos:

env

Se me ocurrió probar si esa contraseña es válida para el usuario cry0l1t3 y funciono:

cry0l1t3

Ahora puedo obtener la bandera user.txt.

Escalada de Privilegios


Tras ingresar el comando id veo que el usuario se encuentra en el grupo adm:

id group

El grupo adm es utilizado para permitir que sus miembros lean archivos de log del sistema como por ejemplo /var/log. Es una forma segura de permitir que usuarios supervisen el sistema sin darles acceso completo de root.

Voy a listar todos los archivos de var/log que tienen asignado al grupo adm:

find \-group adm 2>/dev/null

Ahí encontré una carpeta llamada “audit”, al ingresar veo que hay varios archivos .log que contienen información sobre lo que ocurrió en el sistema.

Existe un comando que sirve para generar un reporte de eventos del sistema relacionados con la terminal a partir de logs de auditoria. Este comando me muestra un resumen de las acciones realizadas como por ejemplo ssh, login, su, entre otros.

Al ejecutarlo encontré una contraseña para mrb3n:

aureport

Me voy a loguear con el usuario mrb3n:

su mrb3n

Tras ejecutar sudo –l y colocar la contraseña puedo ver que tengo permisos para ejecutar el comando composer:

sudol

Lo que puedo hacer para obtener acceso a root es ingresar el siguiente comando:

TF=$(mktemp -d)

echo '{"scripts":{"x":"/bin/sh -i 0<&3 1>&3 2>&3"}}' >$TF/composer.json

sudo composer --working-dir=$TF run-script x

root

Y así obtengo acceso a root, ahora solo resta navegar por root y encontrar la bandera.

Espero que este tutorial te haya ayudado!