Campana Feliz: De una pista pública a Root por mala gestión de accesos
Cómo una cadena de fallos pequeños, pistas mal protegidas y credenciales expuestas puede terminar en compromiso total del sistema.
Principiante · Linux
URL del reto: labs.thehackerslabs.com/machines/16
Por qué la diseñé
Campana Feliz es una cadena de fallos pequeños que, sueltos, no parecen gran cosa, y juntos entregan el sistema entero. Una pista mal protegida, un panel donde no debería estar, una contraseña floja y un secreto guardado en texto plano. La monté para mostrar que la mayoría de intrusiones nace de decisiones descuidadas al publicar contenido, al autenticar y al administrar, no de una vulnerabilidad sofisticada.
No la pensé para meter ruido ni para esconder la solución detrás de trucos absurdos. Quería que quien la resuelve viera cómo se encadena una publicación descuidada con una autenticación pobre y una administración sin cuidado, hasta llegar a root.
La máquina de un vistazo
Expone SSH, un servidor web en el puerto 8088 y un Webmin en el 10000. La cadena arranca en unas pistas escondidas en la web que apuntan a un usuario, sigue por un panel de ejecución de comandos con contraseña débil, pasa por unas credenciales de administrador guardadas en texto plano y termina en Webmin ejecutando como root.
Cómo la monté, paso a paso
Las pistas sembradas en la web
En el sitio del puerto 8088 dejé varios fragmentos en Base64 que, decodificados, insisten una y otra vez en la palabra campana. Ninguno es una vulnerabilidad. Son una filtración de identidad, la clase de descuido que va dejando un nombre de usuario a la vista de cualquiera que mire el contenido con un poco de atención.
El panel de ejecución escondido en /shell.php
Detrás de la web coloqué un /shell.php que un dirsearch encuentra enseguida. Es un panel de login que, una vez dentro, ejecuta comandos en el host. Le puse una contraseña floja al usuario que las pistas ya habían filtrado, de forma que un Hydra con rockyou la sacara sin esfuerzo. Lo que rompe esto es la suma de un usuario deducible, una contraseña pobre y un formulario accesible desde fuera. Hydra solo aprovecha el hueco.
Un secreto administrativo en texto plano
Dentro de /opt dejé un fichero con las credenciales de Webmin en claro. Una vez que el panel web permite ejecutar comandos, cualquier contraseña guardada así en el sistema pasa a ser material de explotación directa. Es el error de tratar el disco como un sitio seguro para secretos cuando ya hay una vía de lectura abierta.
Webmin ejecutando como root
El último eslabón es el Webmin del puerto 10000. Con esas credenciales se entra, y dentro hay una función de ejecución de comandos con contexto privilegiado. Ahí se cierra la cadena, porque la propia consola de administración entrega ejecución como root. Un panel protegido solo con usuario y contraseña deja de proteger nada en cuanto esa credencial acaba expuesta en el propio sistema.
Qué quería enseñar
Campana Feliz es de nivel principiante, pero no regala la shell. Enseña una secuencia de errores que aparece con demasiada frecuencia en sistemas mal cuidados.
| Fase | Qué enseña | Error que representa |
|---|---|---|
| Pistas en Base64 | La web publica más de lo que cree | Contenido con pistas de identidad a la vista |
| Usuario deducible | La identidad también es superficie | Nombres de usuario triviales |
| Contraseña débil en /shell.php | La autenticación floja se automatiza sola | Passwords pobres en servicios expuestos |
| /shell.php accesible | Herramientas peligrosas al alcance de cualquiera | Superficie de ataque innecesaria |
| Credenciales en /opt | Los secretos en texto plano se leen | Mala gestión de secretos |
| Webmin con ejecución | La consola de admin puede ser la puerta | Paneles privilegiados sin aislamiento |
No hace falta una cadena de CVEs para comprometer un sistema. A veces basta juntar una pista pública, una contraseña mala y una administración descuidada.