Whoiam
This content is not available in your language yet.
Introducción
Sección titulada «Introducción»Este documento presenta la resolución completa de la máquina Whoiam, desarrollada por Pylon para la plataforma DockerLabs y clasificada como fácil. El objetivo es exponer un análisis claro, ordenado y técnicamente fundamentado, abarcando:
- Identificación de vectores de ataque reales.
- Explotación basada en fallos de configuración.
- Escalada de privilegios mediante abuso de binarios ejecutables vía
sudo. - Recomendaciones aplicables a entornos productivos.
La metodología utilizada se divide en tres fases:
- Reconocimiento: Enumeración de puertos y análisis de contenido web.
- Explotación: Acceso a información sensible a través de respaldos expuestos.
- Escalada de privilegios: Abuso progresivo de binarios con permisos delegados hasta obtener acceso root.
Toda la operación se realizó en un entorno aislado de DockerLabs.
Información General
Sección titulada «Información General»| Atributo | Valor |
|---|---|
| Nombre | Whoiam |
| Autor | Pylon |
| Dificultad | Fácil |
| Fecha | 09/06/2024 |
| Plataforma | DockerLabs |
Paso 0 — Preparación y despliegue
Sección titulada «Paso 0 — Preparación y despliegue»Descomprimir la máquina:
unzip Whoiam.zipIniciar el contenedor:
sudo bash auto_deploy.sh Whoiam.tarEl script entrega la IP interna que usaremos durante todo el análisis:

Paso 1 — Reconocimiento
Sección titulada «Paso 1 — Reconocimiento»1.1 Organización del workspace
Sección titulada «1.1 Organización del workspace»mkdir -p Whoiam/{content,exploits,nmap,gobuster,scripts}cd WhoiamUna estructura ordenada permite registrar correctamente cada etapa y facilita la reproducibilidad del proceso.
1.2 Escaneo de puertos
Sección titulada «1.2 Escaneo de puertos»nmap -p- --open -sS --min-rate 5000 -vvv -n 172.18.0.2 -oG allPortsextractPorts allPortsPuertos detectados:
- 80/tcp — HTTP

Solo existe un servicio expuesto, por lo que la superficie de ataque se centra en la capa web.
1.3 Enumeración web
Sección titulada «1.3 Enumeración web»gobuster dir \ -u http://172.18.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \ -x php,html,txt,js \ -t 200
Los resultados revelan una instalación típica de WordPress, destacando el directorio /backups, que no es estándar y que podría revelar información sensible.
Rutas relevantes:
-
/index.php— Página principal
-
/backups— Directorio accesible públicamente
Paso 2 — Explotación
Sección titulada «Paso 2 — Explotación»En el directorio /backups encontramos el archivo databaseback2may.zip. Este tipo de archivos suele contener respaldo de bases de datos o configuraciones internas del CMS.
Primero, descomprimimos:
7z x databaseback2may.zipRevisamos su contenido:

El respaldo contiene credenciales almacenadas en texto plano, lo que nos entrega un usuario y contraseña válidos para acceder al panel administrativo de WordPress.
Accedemos a:
http://172.18.0.2/wp-admin
Una vez dentro con permisos de developer, es posible modificar un theme y añadir un archivo malicioso que funcione como webshell:

Probamos la ejecución de la webshell:

A partir de ella, subimos y ejecutamos una reverse shell en PHP, obteniendo acceso directo como www-data:

Acceso inicial conseguido.
Paso 3 — Escalada de Privilegios
Sección titulada «Paso 3 — Escalada de Privilegios»3.1 www-data → rafa (abuso de find)
Sección titulada «3.1 www-data → rafa (abuso de find)»Probamos:
sudo -l
Se permite ejecutar find como rafa.
Este binario puede ejecutar comandos arbitrarios:
sudo -u rafa find . -exec /bin/sh \; -quitObtenemos acceso como rafa:

3.2 rafa → ruben (abuso de debugfs)
Sección titulada «3.2 rafa → ruben (abuso de debugfs)»Salida de:
sudo -l
Se permite ejecutar debugfs como ruben.
Este binario permite escapar a una shell:
sudo -u ruben debugfs!/bin/bashAcceso conseguido:

3.3 ruben → root (inyección en script)
Sección titulada «3.3 ruben → root (inyección en script)»Salida de:
sudo -l
Es posible ejecutar el script pingu.sh con privilegios elevados.
Contenido del script:

El script no valida adecuadamente la entrada del usuario, permitiendo ejecutar comandos arbitrarios mediante una expresión manipulada:
a[$(/bin/bash>&2)]+42Esto genera una shell con privilegios de administrador.
Acceso root:

Fallos de Seguridad Identificados
Sección titulada «Fallos de Seguridad Identificados»- Directorio
/backupsaccesible públicamente. - Almacenamiento de credenciales en texto plano.
- WordPress sin endurecimiento y con permisos excesivos para usuarios.
- Uso de binarios peligrosos (
find,debugfs) en configuracionessudosin contraseña. - Validación inexistente en el script
pingu.sh, permitiendo ejecución arbitraria de comandos.
Recomendaciones
Sección titulada «Recomendaciones»- Eliminar directorios sensibles del alcance público.
- Implementar cifrado o mover credenciales a un archivo de entorno no accesible.
- Restringir permisos en WordPress, especialmente edición de themes.
- Configurar reglas
sudosiguiendo el principio de mínimo privilegio. - Validar y sanear toda entrada de usuario en scripts internos.
- Mantener WordPress y plugins actualizados y endurecidos.