[HACKTHEBOX] MACHINE — ORION (FÁCIL) [HACKTHEBOX] MACHINE — CAP (FÁCIL) [HACKTHEBOX] MACHINE — REACTOR (FÁCIL) [HACKTHEBOX] MACHINE — DEVHUB (MEDIO)
HackTheBox • Write-up • Máquina Fácil

Orion.

RCE sobre un panel de administración expuesto, pivoteo a credenciales de base de datos filtradas en un .env y escalada final a root mediante un bypass de autenticación en Telnet. Del reconocimiento a las dos flags, paso a paso.

PlataformaHackTheBox
DificultadFÁCIL
Vector inicialRCE en panel admin → shell vía Metasploit
EscaladaBypass de auth en Telnet → root
CVEsCVE-2025-32432CVE-2026-24061
Autorkeltich · KeltichCibSec
Nmap + Fuzzing→ RCE panel admin→ .env → BBDD→ bcrypt crack→ SSH (user)→ Telnet bypass→ root
// 01

Reconocimiento

Lo primero es asignar un nombre a la dirección IP de la máquina víctima en /etc/hosts para trabajar cómodamente contra el dominio:

Asignación del dominio de la máquina víctima en /etc/hosts
Entrada del dominio de la víctima añadida a /etc/hosts

Tras conectar la VPN comprobamos la conectividad con un ping ICMP:

Ping ICMP verificando conectividad tras la VPN
Ping ICMP confirmando conectividad a través de la VPN

Con conectividad confirmada empezamos los escaneos con Nmap. Primero identificamos qué puertos están abiertos y sus protocolos:

Escaneo Nmap — puertos abiertos y protocolos
Nmap — descubrimiento de puertos abiertos

A continuación, un segundo escaneo más profundo para detectar las versiones de los servicios en ejecución:

Escaneo Nmap detallado — versiones de servicios
Nmap — detección de versiones de servicios (-sV)

Al visitar el dominio configurado en /etc/hosts, el servidor nos redirige a esta página:

Página principal del dominio configurado
Página principal servida por el dominio

Revisada la web principal, pasamos al fuzzing para descubrir los subdominios de la plataforma:

Fuzzing de subdominios
Fuzzing de subdominios

El fuzzing revela varios archivos ocultos y dos subdominios. El que nos interesa es el de admin, que nos lleva a un panel de login:

Panel de login del subdominio admin
Panel de login del subdominio admin
// 02

Explotación

Esta versión del panel de login es vulnerable a CVE-2025-32432, una vulnerabilidad de ejecución remota de comandos (RCE).

Arrancamos Metasploit con msfconsole:

Inicio de msfconsole
Inicio de la consola de Metasploit Framework

Dentro de la consola buscamos el módulo asociado a la vulnerabilidad, CVE-2025-32432:

Búsqueda del CVE-2025-32432 en Metasploit
Búsqueda del CVE-2025-32432 en Metasploit

Seleccionamos uno de los módulos que aparecen y activamos el exploit correspondiente:

Selección y activación del módulo del exploit
Selección y activación del módulo del exploit

Con el módulo cargado, usamos set para revisar las variables configurables del ataque:

Opciones configurables del módulo (comando set)
Opciones configurables del módulo

Configuramos el RHOSTS (host remoto) y el LHOST (host local):

Configuración de RHOSTS
Configuración de RHOSTS
Configuración de LHOST
Configuración de LHOST
Nota de campo Un desliz habitual: en RHOSTS hay que poner la IP de la máquina víctima, no el VHOST. Con las variables listas, lanzamos el ataque con exploit para obtener la RCE.

Al acceder a la terminal vulnerable, la consola interactiva de Meterpreter es limitada, así que prepararemos una reverse shell más cómoda:

Sesión Meterpreter obtenida tras la explotación
Sesión Meterpreter obtenida tras la explotación

Ponemos netcat a la escucha en un puerto libre. Meterpreter usa el 4444, así que empleamos el 4445 para la reverse shell:

netcat en escucha por el puerto 4445
netcat a la escucha en el puerto 4445

En revshells.com generamos la reverse shell adecuada con nuestra IP y puerto:

Generación de la reverse shell en revshells.com
Generación de la reverse shell en revshells.com

Insertamos esa reverse shell en la sesión de Meterpreter. Para tener una shell en la víctima primero ejecutamos el comando shell:

Comando shell ejecutado dentro de Meterpreter
Comando shell ejecutado dentro de Meterpreter

Ya en la shell, lanzamos la reverse shell y recibimos la conexión en netcat:

Reverse shell insertada en la máquina víctima
Reverse shell insertada en la máquina víctima
Conexión de la reverse shell recibida por netcat
Conexión recibida por netcat

Al comprobar la ruta en la que estamos —un directorio particular— y hacer ls -la, aparece un archivo oculto que ya habíamos entrevisto durante el fuzzing:

Listado oculto (ls -la) en la ruta actual
Listado con ls -la revelando un archivo oculto

El contenido de ese archivo oculto no aporta gran cosa:

Contenido del archivo oculto detectado
Contenido del archivo oculto

Revisando los usuarios existentes en el sistema:

Usuarios del sistema
Usuarios del sistema

Un detalle interesante: estamos ejecutando como el usuario asociado al servicio de nginx:

Usuario actual asociado al servicio nginx
Usuario actual: cuenta de servicio de nginx

Explorando la ruta del servicio:

Exploración de la ruta del servicio
Exploración de la ruta del servicio

Encontramos un archivo oculto .env:

Archivo .env localizado
Archivo .env localizado

Dentro del .env aparecen credenciales de una base de datos:

Credenciales de base de datos dentro de .env
Credenciales de base de datos filtradas en el .env

Ya en la base de datos, listamos las tablas con show tables;:

Listado de tablas de la base de datos
Listado de tablas con show tables;

Inspeccionamos los campos de la tabla users, la más interesante:

Estructura de la tabla de users
Estructura de la tabla users

Con esa estructura montamos una consulta que devuelve usuarios, IDs, rol de administrador, correos y contraseñas. Aparecen hashes pertenecientes a un usuario admin:

Resultado de la consulta SQL sobre la tabla users
Resultado de la consulta SQL sobre users

Identificamos el tipo de hash con ayuda de la IA:

Identificación del tipo de hash
Identificación del tipo de hash

Con hashcat -h | less buscamos dentro de la referencia de modos; en este caso, el de bcrypt:

Búsqueda del modo bcrypt en hashcat
Búsqueda del modo bcrypt en hashcat

Localizamos el identificador de bcrypt:

Identificador de bcrypt localizado
Identificador del modo bcrypt

Guardamos el hash en un .txt y lanzamos el ataque de diccionario con los parámetros correspondientes:

Ataque de diccionario con hashcat sobre el hash bcrypt
Ataque de diccionario con hashcat sobre el hash bcrypt

El cracking tiene éxito y obtenemos la contraseña en claro:

Contraseña obtenida tras el cracking
Contraseña recuperada tras el cracking

La contraseña coincide a nivel de sistema, así que entramos por SSH: es una vía más directa que la reverse shell y aporta todas las comodidades de una shell local, como el autocompletado por tabulador:

Acceso por SSH con las credenciales obtenidas
Acceso por SSH con las credenciales obtenidas

Y con ello obtenemos la flag de usuario:

Flag de usuario obtenida
Flag de usuario obtenida
User Flag
cede1eb1622e7895041379944474b68d
// 03

Escalada de privilegios

Ya con el usuario Adam, comprobamos si hay puertos abiertos internamente que no estuvieran expuestos hacia el exterior:

Puertos internos no expuestos detectados
Puertos internos no expuestos externamente

El puerto 23 corresponde al servicio Telnet, como confirma una búsqueda rápida:

Identificación del servicio en el puerto 23 (Telnet)
Identificación del servicio Telnet en el puerto 23

Comprobamos qué versión de Telnet corre exactamente y si es vulnerable:

Versión del servicio de Telnet
Versión del servicio Telnet

La versión 2.7 es vulnerable a CVE-2026-24061, que permite bypassear la autenticación de Telnet con cualquier usuario y, con ello, escalar privilegios:

CVE-2026-24061 — bypass de autenticación en Telnet
CVE-2026-24061 — bypass de autenticación en Telnet

Existe un exploit público en GitHub. Tras descargarlo, la escalada resulta directa:

Exploit de GitHub para CVE-2026-24061
Exploit público en GitHub para CVE-2026-24061

Con el exploit accedemos como root:

Acceso obtenido como usuario root
Acceso obtenido como root

Y finalmente leemos la root flag:

Flag de root obtenida
Root flag obtenida
Root Flag
a02f5a8d483b07176b26c522b470051c
root@keltich:~/HackTheBox/Orion
root@keltich:~$

COMANDOS

← Volver a Artículos