Forgotten
Executive summary — Forgotten hides a LimeSurvey instance whose web installer was never completed nor locked down. By standing up an attacker-controlled MySQL reachable over the VPN, the wizard can be finished end-to-end, creating a Superadmin account of the attacker's choosing — without exploiting any authentication vulnerability. From there, LimeSurvey's Plugin Manager allows uploading a malicious ZIP that gives RCE inside a Docker container. The container's environment variables leak the service's real password, which is reusable over SSH on the host. Inside the container, that same password also unlocks
sudo ALL, and a shared bind mount between host and container lets a SUIDbashbinary be dropped that — with no user-namespace remapping — grants root on the host directly.
| Platform | Hack The Box |
| Operating system | Linux |
| Difficulty | Easy |
| Status | Retired |
| Target IP | 10.129.37.93 |
Attack map
[80] LimeSurvey — abandoned web installer, unauthenticated
│ Wizard completed with an attacker-controlled MySQL (VPN) → attacker-created Superadmin
▼
[RCE] Plugin Manager — ZIP with a PHP class + webshell
│ container env leaks LIMESURVEY_PASS
▼
[SSH] limesvc@host (same password reused)
│ inside the container: sudo ALL with that same password
│ shared host↔container bind mount + SUID bash
▼
[ROOT] container UID 0 = host UID 0 (no userns-remap)
1. Reconnaissance
nmap -p- --min-rate 5000 -v 10.129.37.93 -oN nmap_ports.txt
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
nmap -p22,80 -sCV -v 10.129.37.93 -oN nmap_sV.txt
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.56
|_http-title: 403 Forbidden
|_http-server-header: Apache/2.4.56 (Debian)
Service Info: Host: 172.17.0.2; OS: Linux; CPE: cpe:/o:linux:linux_kernel
The clue: nmap's
Service Infoheader showsHost: 172.17.0.2, a default Docker range IP (172.17.0.0/16) — a sign from the very start that the HTTP service runs inside a container behind the host's proxy/Apache.
Resumen ejecutivo — Forgotten esconde una instancia de LimeSurvey cuyo instalador web nunca se completó ni se bloqueó. Levantando un MySQL propio alcanzable por VPN, el wizard se completa de principio a fin y crea una cuenta Superadmin a medida del atacante — sin explotar ninguna vulnerabilidad de autenticación. Desde ahí, el Gestor de plugins de LimeSurvey permite subir un ZIP malicioso que da RCE dentro de un contenedor Docker. Las variables de entorno del contenedor filtran la contraseña real del servicio, reutilizable por SSH en el host. Dentro del contenedor, esa misma contraseña también sirve para
sudo ALL, y un bind mount compartido entre host y contenedor permite depositar un binariobashcon bit SUID que, al no haber remapeo de namespaces de usuario, da root en el host directamente.
| Plataforma | Hack The Box |
| Sistema operativo | Linux |
| Dificultad | Easy |
| Estado | Retired |
| IP objetivo | 10.129.37.93 |
Mapa del ataque
[80] LimeSurvey — instalador web abandonado, sin autenticar
│ Wizard completado con un MySQL propio (VPN) → Superadmin creado por el atacante
▼
[RCE] Plugin Manager — ZIP con clase PHP + webshell
│ env del contenedor filtra LIMESURVEY_PASS
▼
[SSH] limesvc@host (misma contraseña reutilizada)
│ dentro del contenedor: sudo ALL con esa misma contraseña
│ bind mount compartido host↔contenedor + bash SUID
▼
[ROOT] UID 0 del contenedor = UID 0 del host (sin userns-remap)
1. Reconocimiento
nmap -p- --min-rate 5000 -v 10.129.37.93 -oN nmap_ports.txt
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
nmap -p22,80 -sCV -v 10.129.37.93 -oN nmap_sV.txt
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.56
|_http-title: 403 Forbidden
|_http-server-header: Apache/2.4.56 (Debian)
Service Info: Host: 172.17.0.2; OS: Linux; CPE: cpe:/o:linux:linux_kernel
La pista: nmap detecta en la cabecera
Service InfounHost: 172.17.0.2, una IP del rango Docker por defecto (172.17.0.0/16) — indica desde el principio que el servicio HTTP corre dentro de un contenedor detrás de un proxy/Apache del host.
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.