Outbound
Executive summary — Outbound is a Linux assumed breach machine: we start with a valid credential (
tyler:LhKL1o9Nm3X2) for a Roundcube Webmail 1.6.10 running inside a Docker container. A post-auth RCE (CVE-2025-49113) yields a shell aswww-data; from there we recover and decrypt another user's IMAP password stored in the database session, an internal email reveals the live password, and we pivot to the real host over SSH; finally, a symlink race in thebelowbinary (CVE-2025-27591) runnable viasudolets us rewrite/etc/passwdand become root. A Web → RCE → DB → SSH → Root path.
| Platform | Hack The Box |
| Operating system | Linux |
| Difficulty | Easy |
| Status | Retired |
| Target IP | 10.129.232.158 |
Attack map
[80/HTTP] nginx 1.24.0 → Roundcube Webmail 1.6.10 (Docker container)
│ CVE-2025-49113 (PHP deserialization, post-auth) · tyler:LhKL1o9Nm3X2
▼
[RCE] reverse shell as www-data (inside the container, 172.17.0.2)
│ config.inc.php → des_key · dump the session table (MySQL)
▼
[DB] jacob's IMAP password encrypted (DES-EDE3-CBC) → email with the live password
│ gY4Wr3a1evp4
▼
[SSH] jacob@10.129.232.158 (real host, outside the container)
│ sudo -l → NOPASSWD: /usr/bin/below
▼
[ROOT] CVE-2025-27591 (symlink race in below) → chmod 666 /etc/passwd → su root
1. Reconnaissance
We start by mapping the attack surface. A first full-port sweep at high speed and then version + default-script detection on the open ports:
nmap -p- --min-rate 3000 -T4 -Pn 10.129.232.158
nmap -p 22,80 -sC -sV -Pn 10.129.232.158
Why these flags:
-p-→ scan all 65535 TCP ports.--min-rate 3000→ force at least 3000 packets/second (fast sweep).-Pn→ skip host discovery ping; assume the host is up (HTB blocks ICMP).-sC -sV→ default NSE scripts + version detection.
22/tcp open ssh OpenSSH 9.6p1 Ubuntu
80/tcp open http nginx 1.24.0
Analysis: only two ports.
80/tcpredirects to the virtual hostmail.outbound.htb(without following the redirect,nmaptells us where it points), so the entry vector is the web app. We keep SSH in reserve for later.
Resumen ejecutivo — Outbound es una maquina Linux de escenario assumed breach: partimos de una credencial valida (
tyler:LhKL1o9Nm3X2) para un Roundcube Webmail 1.6.10 que corre dentro de un contenedor Docker. Una RCE post-autenticacion (CVE-2025-49113) da shell comowww-data; desde ahi se recupera y descifra la contrasena IMAP de otro usuario guardada en la sesion de la base de datos, un correo interno revela la contrasena vigente y se salta al host real por SSH; finalmente, un symlink race en el binariobelow(CVE-2025-27591) ejecutable porsudopermite reescribir/etc/passwdy convertirse en root. Un recorrido Web → RCE → DB → SSH → Root.
| Plataforma | Hack The Box |
| Sistema operativo | Linux |
| Dificultad | Easy |
| Estado | Retired |
| IP objetivo | 10.129.232.158 |
Mapa del ataque
[80/HTTP] nginx 1.24.0 → Roundcube Webmail 1.6.10 (contenedor Docker)
│ CVE-2025-49113 (deserialización PHP, post-auth) · tyler:LhKL1o9Nm3X2
▼
[RCE] shell reversa como www-data (dentro del contenedor, 172.17.0.2)
│ config.inc.php → des_key · volcado de la tabla session (MySQL)
▼
[DB] contraseña IMAP de jacob cifrada (DES-EDE3-CBC) → correo con la pass vigente
│ gY4Wr3a1evp4
▼
[SSH] jacob@10.129.232.158 (host real, fuera del contenedor)
│ sudo -l → NOPASSWD: /usr/bin/below
▼
[ROOT] CVE-2025-27591 (symlink race en below) → chmod 666 /etc/passwd → su root
1. Reconocimiento
Empezamos mapeando la superficie de ataque. Un primer barrido de todos los puertos a alta velocidad y, sobre los abiertos, deteccion de version y scripts por defecto:
nmap -p- --min-rate 3000 -T4 -Pn 10.129.232.158
nmap -p 22,80 -sC -sV -Pn 10.129.232.158
Por que estas flags:
-p-→ escanea los 65535 puertos TCP.--min-rate 3000→ fuerza al menos 3000 paquetes/segundo (barrido rapido).-Pn→ no hace ping previo; asume el host vivo (HTB bloquea ICMP).-sC -sV→ scripts NSE por defecto + deteccion de version.
22/tcp open ssh OpenSSH 9.6p1 Ubuntu
80/tcp open http nginx 1.24.0
Analisis: solo dos puertos. El
80/tcpredirige al virtual hostmail.outbound.htb(sin seguir la redireccion,nmapnos avisa de adonde apunta), asi que el vector de entrada es la aplicacion web. El SSH lo reservamos para mas adelante.
This content is Root Access only. Everything else on the site — the free tier, the whole public library — stays open.
See Root Access plansNo account? Create one free then upgrade from your console.
Este contenido es solo para Root Access. Todo lo demás del sitio — el nivel gratuito, toda la biblioteca pública — sigue abierto.
Ver planes de Root Access¿Sin cuenta? Crea una gratis y luego mejora desde tu consola.