ACME es una máquina muy fácil centrada en dos fallos muy típicos en entornos reales: fuga de credenciales en un banner de bienvenida y una mala configuración de SUID. Nada de cadenas complicadas: todo el recorrido sale de leer con atención lo que el propio sistema nos enseña.
Despliegue
A partir de aquí, toda la auditoría va contra 172.17.0.2.
Enumeración
Escaneo de puertos
Dos puertos abiertos: SSH y un Apache en el 80.
Puerto 80 — portal web
http://172.17.0.2 muestra el ACME Infrastructure Portal, en modo mantenimiento:
El acceso a las consolas de gestión se realiza exclusivamente mediante el servicio SSH. Pruebe a conectarse por SSH con cualquier usuario para consultar el aviso y las notificaciones del sistema con las instrucciones de acceso.
La propia web nos dice por dónde seguir. Vamos a comprobarlo.
Explotación — acceso inicial
Nos conectamos por SSH con un usuario cualquiera, tal y como sugiere el portal. Antes de pedir contraseña, el servidor suelta un banner (MOTD) que filtra credenciales temporales:
Con esas credenciales entramos sin problema.
Flag de usuario
Escalada de privilegios
Primero, lo obvio: probar si la misma contraseña sirve para root (reutilización de credenciales).
No cuela. Tocaría enumerar en serio. Buscamos binarios con el bit SUID activo:
Entre los SUID “normales” del sistema aparece uno que no debería estar ahí: /usr/bin/bash tiene el bit SUID activo. Al ejecutarlo con -p (conserva privilegios efectivos), obtenemos una shell con UID efectivo root:
Confirmamos el compromiso total:
euid=0(root) confirma que, aunque seguimos siendo el usuario 1000 a nivel real, el UID efectivo es root.
Cadena de ataque — resumen
- Recon web → el portal en mantenimiento sugiere login SSH con cualquier usuario.
- Fuga de información → el banner de SSH expone usuario y contraseña temporales.
- Acceso inicial → login SSH con esas credenciales → flag de usuario.
- Escalada →
find / -perm -4000revela/usr/bin/bashcon SUID →bash -p→ root.
Mitigación
- No meter credenciales ni avisos internos en banners o MOTD de SSH (
/etc/motd,PrintMotd,Bannerensshd_config). - Auditar binarios SUID (
find / -perm -4000) y quitar el bit a cualquiera que no lo necesite — nunca debería estar enbash,sh,python, etc. - Mínimo privilegio + rotación real de credenciales temporales, no texto plano fijo.