OpenAdmin

Publicado: 04 de Junio de 2025 Autor: Josรฉ Miguel Romero aKa x3m1Sec Dificultad: โญ Easy
๐ Descripciรณn
OpenAdmin es una mรกquina Linux de dificultad fรกcil de HackTheBox que presenta mรบltiples vectores de ataque web y escalada de privilegios. La explotaciรณn comienza con el descubrimiento de una instancia vulnerable de OpenNetAdmin (ONA) versiรณn 18.1.1, que sufre de una vulnerabilidad de ejecuciรณn remota de cรณdigo (RCE) a travรฉs de llamadas Ajax mal sanitizadas.
La mรกquina requiere un enfoque metodolรณgico que incluye:
Enumeraciรณn web exhaustiva para descubrir servicios ocultos
Explotaciรณn de CVE pรบblico en OpenNetAdmin
Movimiento lateral mediante reutilizaciรณn de credenciales
Anรกlisis de configuraciones de Apache para descubrir servicios internos
Manipulaciรณn de cรณdigo PHP para bypassing de autenticaciรณn
Cracking de claves SSH protegidas con passphrase
Escalada de privilegios mediante abuso de permisos sudo en nano
Esta mรกquina es excelente para practicar tรฉcnicas de enumeraciรณn web, explotaciรณn de CVEs conocidos, y escalada de privilegios mediante binarios con permisos especiales.
๐ญ Reconocimiento
Ping para verificaciรณn en base a TTL
Enumeraciรณn de servicios
๐ Enumeraciรณn Web
80 HTTP
Al acceder al puerto 80 lo รบnico que encontramos es la pagina por defecto de un sitio web de apache en construcciรณn:

๐Fuzzing de directorios
Relizamos fuzzing de directorios y obtenemos algunos algunos directorios importantes para analizar:



En resumen, los recursos que merece analizar son:
๐ต http://10.10.10.171/music/

๐จ http://10.10.10.171/artwork/index.html

๐ http://10.10.10.171/sierra/blog.html

Los tres recursos anteriores son servicios web muy similares en cuanto a construcciรณn y tecnologรญa, no encontramos a priori que nos conduzca a un posible vector de ataque.
๐ฏ http://10.10.10.171/ona/

๐ฏ Explotaciรณn
Encontramos un servicio OpenNetAdmin. Buscando informaciรณn pรบblica encontramos que se trata de un proyecto de software libre https://github.com/opennetadmin/ona cuya funciรณn es proporcionar una herramienta IPAM (IP Address Management) para rastrear su atributos de red como nombres DNS, direcciones IP, subredes, direcciones MAC solo por nombrar algunos. A travรฉs del uso de plugins puede agregar extended it's funcionalidad.
En este caso vemos que la versiรณn es la V18.1.1.
Una bรบsqueda rรกpida nos revela que existe una vulnerabilidad para dicha versiรณn que permite explotar una RCE:

La vulnerabilidad se encuentra en el uso inseguro de llamadas Ajax en el backend del sistema. En concreto, el endpoint xajax=window_submit acepta argumentos maliciosos que son ejecutados directamente por el sistema operativo sin una adecuada sanitizaciรณn.
Usaremos el siguiente exploit pรบblico: https://github.com/amriunix/ona-rce/blob/master/ona-rce.py
Verificamos que el sistema es vulnerable:

Lanzamos el exploit y ganamos acceso al host mediante la RCE:

Acceso Inicial -๐ฅ Explotaciรณn RCE en OpenNetAdmin
La shell con la que accedemos es un poco limitada, por lo que vamos a mejorarla de la siguiente forma.
Iniciamos un listener
Desde la shell limitada
๐ง Mejora de la shell
Ahora ya podemos operar mejor. Enumeramos dos usuarios en el directorio /home a ninguno de los cuales tenemos permisos como usuario www-data:
๐ Movimiento lateral de www-data a jimmy
Comenzamos a enumerar la mรกquina. Encontramos credenciales de base de datos en el directorio /opt/ona/www/local/config
Verificamos la conexiรณn

No parece gran cosa, asรญ verificamos si alguno de los usuarios (jimmy, joanna) estรกn reutilizando la contraseรฑa: n1nj4W4rri0R! y confirmamos que funciona con el usuario jimmy.
Sin embargo, vemos que shell actual no nos permite ejecutar determinadas operaciones, veamos si podemos usar la contraseรฑa para conectarnos a travรฉs de SSH:
Ahora ya parece funcionar el comando, aunque jimmy no pueda ejecutar nada como sudo:
๐ Movimiento lateral de jimmy a joanna
Continuamos enumerando la mรกquina y como sabemos que se estรก usando apache, revisamos en la ruta /etc/apache2/sites-enabled/ y vemos las siguientes configuraciones:
Observamos que hay un servicio ejecutรกndose de manera local en el puerto 52846 cuyo servername es internal.openadmin.htb. Ademรกs estรก asignado al usuario joanna.
Confirmamos con la utilidad ss que el servicio efectivamente se estรก ejecutando en el puerto 52846 de manera local:
๐ Port Forwarding
Vamos a realizar un redireccionamiento de este puerto a nuestro host de ataque para de esta forma acceder al servicio y ver si encontramos algo interesante.
Necesitaremos tambiรฉn aรฑadir la dns internal.openadmin.htb a nuestro fichero /etc/hosts
Ahora accedemos a http://localhost:52846/ y ya podemos enumerar el servicio
Tutorialspoint.com

Encontramos un panel de login y poco mรกs. Recordemos que en la configuraciรณn de apache habรญa un usuario asignado al servername, que es el usuario joanna. Podrรญamos primero probar con alguna de las contraseรฑas que ya tenemos o bien intentar un ataque de fuerza bruta con hydra y http-post-form aunque se me ocurre revisar otra cosa antes.
Revisamos los permisos sobre el directorio /var/www/internal y vemos que jimmy tiene control absoluto sobre los ficheros de este directorio
๐ง Bypass de autenticaciรณn
Si revisamos el contenido del fichero index.php vemos que hay valores harcoded para el usuario jimmy y un hash de contraseรฑa en formato sha512 y cuando hay coincidencia, se redirecciona al fichero main.php

Intentamos crackear este hash con hashcat y rockyou pero no tenemo รฉxito. Sin embargo, dado que tenemos control total sobre este fichero, podemos quitar esta validaciรณn o directamente hacer la comparaciรณn con la contraseรฑa que queramos, por ejemplo:
El contenido del fichero main.php verifica si se ha aรฑadido el usuario de sesiรณn y en caso afirmativo realiza una llamada usando la funciรณn de sistema shell_exec y un cat para imprimir el cotenido de la clave privada ssh del usuario joanna:

Ahora que tenemos la clave privada de joanna, probamos a conectarnos vรญa ssh pero nos pide una contraseรฑa:

Podemos usar la herramienta ssh2john para generar un hash a partir de la clave privada e intentar crackear la contraseรฑa usando john y el diccionario rockyou :

Logramos autenticarnos como joanna y capturar la flag en su directorio de usuario.
๐ Escalada de Privilegios a root
Verificamos en primer lugar si joanna como ejecutar algรบn comando o binario como sudo
En gtfobins encontramos informacion de como abusar de este binario para escalar privilegios mediante sudo.
https://gtfobins.github.io/gtfobins/nano/#sudo
Bรกsicamente lanzamos el binario como sudo
y una vez en nano usamos las opciones Ctrl +R y Ctrl + X y escribimos el siguiente comando:

Ahora dentro ya estamos como sudo dentro del contexto de nano y podemos obtener la flag en el directorio /root:

Last updated