Planning HackTheBox (Easy)
Escaneo de puertos
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>nmap -sCV -p<PORTS> <IP>Info:
Starting Nmap 7.95 ( https://nmap.org ) at 2025-09-12 11:01 EDT
Nmap scan report for 10.10.11.68
Host is up (0.042s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 62:ff:f6:d4:57:88:05:ad:f4:d3:de:5b:9b:f8:50:f1 (ECDSA)
|_ 256 4c:ce:7d:5c:fb:2d:a0:9e:9f:bd:f5:5c:5e:61:50:8a (ED25519)
80/tcp open http nginx 1.24.0 (Ubuntu)
|_http-server-header: nginx/1.24.0 (Ubuntu)
|_http-title: Did not follow redirect to http://planning.htb/
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.85 secondsVeremos varias cosas interesantes entre ellas un puerto 80 en el que nos redirige al dominio llamado planning.htb, por lo que vamos añadirlo a nuestro archivo hosts.
Lo guardamos y entraremos de nuevo en la web con dicho dominio.
Veremos una web dedicada a cursos educativos, pero nada mas interesante, por lo que vamos a realizar un poco de fuzzing a ver que vemos.
FFUF
Despues de un rato de busqueda encunetro un subdominio utilizando este listado de aqui:
URL = Subdomains.txt Web
Info:
Vamos añadirlo a nuestro archivo hosts de la siguiente forma:
Lo guardamos y vamos a visitar dicho subdominio a ver que encontramos.
Veremos un login de Grafana es un Software de Open source, si buscamos la version de dicho software la veremos abajo.
CVE-2024-9264 (Exploit)
Vamos a buscar si tuviera algun exploit asociado al mismo.
Buscando un poco, veremos que hay una vulnerabilidad asociada a dicho software que afecta a la version especificamente v11.0.0 justo la que esta instalada (CVE-2024-9264), por lo que vamos a probar a explotarla de esta forma.
URL = Exploit Grafana v11.0.0
En la documentacion del exploit veremos que requiere de unas credenciales validas, si probamos las que suelen venir por defecto admin:admin no va a funcionar, por lo que este comando no funcionara:
Info:
Hay que encontrar unas credenciales validas para poder aprovechar dicha vulnerabilidad.
Escalate user root (Docker)
Pero si leemos la descripcion de la maquina veremos que nos propocionan unas credenciales para dicho panel que vamos a probar directamente con el exploit.

Info:
Vemos que esta funcionando de forma correcta, por lo que vamos a probar a ejecutar un comando realizando una reverse shell de esta forma:
Antes de enviarlo nos pondremos a la escucha de esta forma:
Ahora si enviamos el comando de antes y volvemos a donde tenemos la escucha veremos que ha funcionado.
Con esto ya veremos que seremos root directamente, ya que el software lo esta ejecutando como root, vamos a sanitizar la shell un poco.
Sanitización de shell (TTY)
Pero si vemos el hostname veremos que estamos en un docker:
Por lo que vamos a realizar un movimiento lateral, para obtener acceso al servidor real y no al propio docker ya que no estariamos realmente en el servidor, si no, en un espacio controlado aislado del host.
Escalate user enzo
Si revisamos las variables de entorno.
Info:
Vamos a ver esas dos lineas interesantes, por lo que vamos a probar dichas credenciales por SSH.
SSH
Metemos como contraseña RioTecRANDEntANT!...
Con esto veremos que estaremos dentro, por lo que vamos a leer la flag del usuario.
user.txt
Escalate Privileges
Si listamos los puertos que hay en el sistema, veremos lo siguiente:
Info:
Veremos un puerto bastante interesante que es el 8000 por lo que vamos a realizar un PortForwarding hacia nuestro host de dicho puerto por SSH de esta forma:
Metemos como contraseña RioTecRANDEntANT! y con esto ya habremos echo la redireccion, por lo que si nos conectamos por internet a dicho puerto que ahora escucha en nuestro localhost.
Info:

Veremos que nos salta un panel de autenticacion, pero en este caso de GET que se identifica por el Authorization: Basic <Base64>, no es un formulario POST, por lo que podriamos probar a realizar un poco de fuerza bruta con hydra a ver que vemos.
Pero no veremos nada, si recordamos antes e investigamos un poco, llendonos a la carpeta /opt veremos una carpeta llamada crontabs que dentro habra un archivo llamado crontab.db:
Veremos muchas cosas interesantes, entre ellas una contraseña P4ssw0rdS0pRi0T3c que sirve para decodificar la contraseña del zip que se esta ejecutando, pero si probamos a meter esa contraseña en el panel con el usuario root.
Veremos lo siguiente:

Veremos que hemos accedido al panel de forma correcta, tambien vemos que es un panel en el que puede programar crontabs a nivel de sistema por lo que estamos viendo, vamos a probar a crear un crontab de la siguiente forma:
Antes vamos a crear un archivo con una shell para que lo ejecute el crontab.
shell.sh
Ahora lo configuramos para que ejecute dicho archivo que hemos dejado en /tmp.

Una vez escrito todo, le daremos a Save para guardarlo, despues nos pondremos a la escucha de esta forma:
Ahora si le damos al boton Run Now para que se ejecute ya y volvemos a donde tenemos la escucha veremos lo siguiente:
Veremos que ha funcionado, por lo que leeremos la flag de root.
root.txt
Last updated