TickTakRoot: anatomía de una escalada desde FTP, SSH y un binario SUID
Una cadena de compromiso sencilla y habitual en sistemas mal mantenidos, con servicios expuestos de más, autenticación débil y privilegios mal delegados.
Principiante · Linux
URL del reto: labs.thehackerslabs.com/machines/89
Por qué la diseñé
TickTakRoot es una cadena corta y reconocible, de las que se ven a diario en sistemas mal mantenidos. Un servicio que expone de más, una credencial trivial y un binario con permisos peligrosos bastan para pasar de estar fuera del sistema a una shell de root. La monté para dejar claro que no hace falta una vulnerabilidad compleja cuando el entorno ya viene con esos tres descuidos encadenados.
Quería que la resolución obligara a leer cada pieza en su sitio, desde la exposición inicial hasta la escalada final, y a ver qué error concreto representa cada paso fuera del laboratorio.
La máquina de un vistazo
Expone FTP, SSH y un HTTP que no lleva a ningún lado. La cadena arranca en un FTP anónimo que filtra nombres de usuario, sigue por una contraseña de SSH que cae a la primera y termina en un binario SUID mal delegado que abre una shell de root.
Cómo la monté, paso a paso
Un FTP anónimo que filtra usuarios
Dejé el FTP con acceso anónimo y, dentro, un login.txt con un par de nombres candidatos. El propio servicio remata la filtración con un banner de bienvenida que suelta otro nombre, Robin, el que de verdad vale. La enumeración no depende de una sola fuente, y esa es la idea, que el dato decisivo aparezca en un banner mal cuidado y no en el fichero que uno descarga primero.
Una contraseña de SSH que cae a la primera
Con el usuario robin a la vista, le puse una contraseña que está en cualquier diccionario, de modo que un Hydra con rockyou la encuentra enseguida. Lo que rompe la máquina es la suma de un usuario deducible, una clave pobre y un servicio remoto expuesto sin freno a los intentos automatizados. OpenSSH solo es el servicio por el que se entra.
Un binario SUID mal delegado
El remate es un binario, timeout_suid, que dejé ejecutable con privilegios vía sudo. timeout por sí solo no es un problema, pero con permisos inseguros se convierte en una vía directa para lanzar una shell conservando privilegios efectivos (/usr/bin/timeout_suid 7d /bin/sh -p), y el sistema entrega root. Es el patrón de delegar poder en una utilidad del sistema sin medir lo que permite.
Qué quería enseñar
TickTakRoot es de nivel principiante, pero enseña una cadena que aparece constantemente en sistemas mal mantenidos.
| Fase | Qué enseña | Error que representa |
|---|---|---|
| FTP anónimo | Un servicio abierto de más filtra información | Exposición innecesaria de recursos |
| login.txt y banner | La identidad interna se escapa sin autenticar | Datos operativos al alcance de cualquiera |
| Fuerza bruta en SSH | Las credenciales pobres se rompen solas | Passwords débiles en servicios críticos |
| timeout_suid | Un binario privilegiado mal puesto abre el sistema | Permisos inseguros sobre utilidades |
Lo que importa es ver la cadena entera, cómo primero se expone información, luego se rompe la autenticación y al final una mala delegación de privilegios remata el sistema. Llegar a la shell es solo el resultado.