Underpass

Publicado: 08 de Junio de 2025 Autor: Josรฉ Miguel Romero aKa x3m1Sec Dificultad: โญ Easy

๐Ÿ“ Descripciรณn

Underpass es una mรกquina Linux de dificultad Easy de HackTheBox que presenta un escenario realista de administraciรณn de servicios RADIUS. La explotaciรณn se centra en el descubrimiento de informaciรณn sensible a travรฉs de SNMP, seguido de la enumeraciรณn de un panel web de DaloRADIUS mal configurado que expone credenciales de usuarios.

๐ŸŽฏ Objetivos de Aprendizaje

  • Enumeraciรณn SNMP: Tรฉcnicas de reconocimiento usando protocolos de gestiรณn de red

  • Explotaciรณn Web: Anรกlisis de aplicaciones RADIUS y paneles administrativos

  • Cracking de Hashes: Recuperaciรณn de credenciales mediante ataques de diccionario

  • Escalada de Privilegios: Abuso de binarios con permisos sudo para ganar acceso root

๐Ÿ”ง Tecnologรญas Involucradas

  • SNMP v1/v2c: Protocolo de gestiรณn de red para descobrimiento de informaciรณn

  • DaloRADIUS 2.2 beta: Panel web de administraciรณn RADIUS

  • Apache 2.4.52: Servidor web con aplicaciones PHP

  • Mosh (Mobile Shell): Herramienta de shell remoto con vulnerabilidad de escalada

๐Ÿ“Š Categorรญas de Vulnerabilidades

  • Information Disclosure via SNMP

  • Weak Authentication en paneles administrativos

  • Password Hash Exposure en bases de datos

  • Sudo Misconfiguration para escalada de privilegios

๐Ÿ”ญ Reconocimiento

Ping para verificaciรณn en base a TTL

๐Ÿ’ก Nota: El TTL cercano a 64 sugiere que probablemente sea una mรกquina Linux.

Escaneo de puertos TCP

Enumeraciรณn de servicios

Escaneo de puertos UDP

๐Ÿ Anรกlisis del puerto 161 UDP SNMP

Usamos la herramienta snmpbrute para intentar descubrir recursos en red con nombres comunidades pรบblicas que puedan estar expuestas en este servicio

Usamos la herramienta snmp-check para extraer strings de las comunidades enumeradas anteriormente para ver si descubrimos algรบn recurso interensante:

No descubrimos nada mรกs alla del nombre de vhost que aรฑadiremos a nuestro fichero /etc/hosts, la versiรณn del kernel de linux del host y un usuario llamado steve

โš ๏ธ Debemos aรฑadir el siguiente vhost a nuestro fichero /etc/hosts

๐ŸŒ Enumeraciรณn Web

๐Ÿ  Puerto 80 HTTP (underpass.htb)

No encontramos gran cosa al enumerar el sitio de forma manual salvo la tรญpica web de apache en construcciรณn.

๐Ÿ“‚ Fuzzing de directorios

Tras probar a realizar fuzzing de directorios con ferxobuster y la lista /usr/share/seclists/Discovery/Web-Content/common.txt encontramos algunos recursos interesantes:

๐Ÿ“ ChangeLog de DaloRADIUS

http://10.10.11.48/daloradius/ChangeLog

๐Ÿ™ˆ Archivo .gitignore

http://10.10.11.48/daloradius/.gitignore

Usando la herramienta dirsearch para realizar fuzzing sobre 10.10.11.48/daloradius aรฑadimos algunos nuevos resultados a nuestro scope:

๐Ÿณ Descubrimiento del Docker Compose

http://10.10.11.48/daloradius/docker-compose.yml

http://10.10.11.48/daloradius/app/users/login.php

Buscamos credenciales por defecto para este servicio y encontramos algunas como:

Pero ninguna parece funcionar.

El directorio /app parece ser bastante relevante por lo que realizamos nuevamente fuzzing sobre el mismo usando en esta ocasiรณn la lista usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt y encontramos algunos recursos adicionales para aรฑadir a nuestro scope:

๐Ÿ”“ Explotaciรณn - Panel DaloRADIUS

http://10.10.11.48/daloradius/app/operators/login.php Aquรญ encontramos otro panel que parece estar destinado a los administradores. Ademรกs vemos una versiรณn del servicio (2.2 beta)

Probamos de nuevo con las credenciales por defecto:

Logramos entrar con la cuenta administrator:radius

๐Ÿ’Ž Extracciรณn de credenciales

Enumeramos informaciรณn dentro del servicio para ver si encontramos algo interesante. A los pocos minutos encontramos una opciรณn que nos permite listar informaciรณn de los usuarios y encontramos un hash de un usuario llamado svcMosh:

๐Ÿ”จ Cracking del hash MD5

Vemos que se trata de un hash en MD5 y lo crackeamos usando hashcat y el diccionario rockyou:

๐Ÿ”‘ Acceso inicial

Y obtenemos la contraseรฑa: underwaterfriends. Ahora que tenemos una credencial, podemos intentar usarla con el servicio SSH para ver si es vรกlida. Una pequeรฑa prueba con netexec nos revela que la credencial es vรกlida con este servicio:

Obtenemos la primera flag en el directorio del usuario svcMosh:

## ๐Ÿš€ Escalada de privilegios

๐Ÿ” Enumeraciรณn de permisos sudo

Comprobamos que el usuario svcmosh puede ejecutar el siguiente como root:

โšก Explotaciรณn del binario mosh-server

Mosh (Mobile Shell) es una herramienta utilizada para conexiones remotas que mantiene sesiones activas incluso cuando hay interrupciones en la red. El binario mosh-server inicia un servidor de Mosh y puede aceptar parรกmetros que podrรญan ser explotados.

En este caso, usaremos la posibilidad de ejecutarlo como sudo para ganar acceso privilegiado.

Abusar de mosh-server para escalada de privilegios

  • sudo: Ejecuta el comando con privilegios de superusuario.

  • /usr/bin/mosh-server: El binario que tiene permisos NOPASSWD segรบn el resultado de sudo -l. Esto permite ejecutarlo sin contraseรฑa.

  • new: Le dice a mosh-server que inicie una nueva sesiรณn.

  • -- /bin/bash: Especifica que se quiere abrir un intรฉrprete de comandos (shell) /bin/bash.

  • Este comando inicia una nueva instancia de mosh-server, que en este caso ejecuta un shell interactivo (/bin/bash) como superusuario (root) debido a los permisos de sudo asignados al binario.

El servidor genera una clave (MOSH_KEY) y asigna un puerto para la sesiรณn de conexiรณn 60002.

Conexiรณn al servidor con mosh-client:

Aplicamos en el comando la key, la ip local host y el puerto:

Explicaciรณn:

  • MOSH_KEY=...: Exporta la clave de conexiรณn generada por el servidor para que el cliente pueda autenticar la sesiรณn.

  • mosh-client: Cliente de Mosh que se conecta al servidor.

  • 127.0.0.1: Es la direcciรณn del localhost, ya que el servidor y cliente estรกn en la misma mรกquina.

  • 60002: Es el puerto asignado al servidor mosh-server.

Resultado: Este comando establece una conexiรณn entre el cliente y el servidor de Mosh, iniciando una sesiรณn interactiva con permisos de root.

Last updated