← Todas las entradas

THLPWN: una cadena básica para enseñar cómo varios fallos terminan en root

Una máquina de iniciación donde un virtual host, un binario con credenciales embebidas y un sudo mal delegado se encadenan hasta root.

Principiante · Linux
URL del reto: labs.thehackerslabs.com/machines/141


Por qué la diseñé

THLPWN es una máquina de iniciación, pero no una suma de trucos sueltos ni un recorrido artificial para llegar a root cuanto antes. Quería una cadena simple y reconocible, con una exposición web mínima, una pista de virtual hosting, un binario distribuido de forma insegura y una configuración de privilegios claramente errónea.

El objetivo era enseñar cómo varias decisiones menores se encadenan hasta comprometer el sistema entero, sin necesidad de complicar la explotación. Cada fase fuerza una lectura, que el servicio no responde igual por IP que por nombre, que hay contenido útil publicado donde no debería y que una mala gestión de credenciales sumada a un sudo inseguro convierten un acceso limitado en control total.


La máquina de un vistazo

Expone solo SSH y HTTP. La cadena arranca en un servidor web que responde distinto por IP que por nombre, sigue por un /downloads con un binario que lleva credenciales embebidas, usa esas credenciales para entrar por SSH y remata con un sudo que permite ejecutar bash sin contraseña.


Cómo la monté, paso a paso

Un servicio que solo responde por su nombre

Por IP, el nginx devuelve un 403 Forbidden. Esa respuesta está puesta a propósito, para orientar la enumeración hacia el virtual hosting y sacar al que resuelve del automatismo de atacar por IP y ya está. Añadiendo thlpwn.thl al /etc/hosts aparece el sitio de verdad. Quería enseñar que el contexto de la petición importa, y que una enumeración pobre deja fuera contenido por no usar el nombre correcto.

Un binario con credenciales dentro, publicado en /downloads

Con gobuster sobre el host correcto aparece /downloads, y ahí dejé un binario descargable con una descripción que ya insinúa su papel, que arrastra problemas de seguridad y puede revelar credenciales SSH. Un simple strings sobre el binario saca esas credenciales en claro. Un binario compilado sigue siendo una fuente de información sensible, y aquí el fallo es publicar un artefacto interno sin revisar qué lleva dentro.

El acceso por SSH con las credenciales filtradas

Esas credenciales abren SSH como thluser. La entrada llega por una fuga previa de secretos, sin romper ningún servicio, que es como empiezan muchas intrusiones, aprovechando material publicado donde no debía o controles mal separados entre desarrollo y producción.

El remate, un sudo que entrega bash sin contraseña

La enumeración local muestra la delegación que lo rompe todo, thluser puede ejecutar /bin/bash por sudo sin contraseña (NOPASSWD). Con eso, sudo /bin/bash abre una shell de root directa. Dejé la escalada transparente a propósito, porque el foco está en que se vea la relación entre el permiso concedido y su impacto. Delegar bash en sudo equivale a entregar el control completo del sistema.


Qué quería enseñar

THLPWN busca que quien la juegue entienda que el problema rara vez está en una sola acción. Lo que compromete el sistema es la suma de decisiones malas que, encadenadas, van quitando barreras una tras otra.

FaseQué enseñaError que representa
Reconocimiento webLa respuesta del servicio se interpreta, no solo se registraVirtual host ignorado en la enumeración
/downloadsEl contenido expuesto vale más que el frontPublicación insegura de artefactos
Análisis del binarioUn binario compilado filtra secretosCredenciales embebidas
Acceso SSHUna fuga de secretos se vuelve acceso válidoReutilización directa de credenciales expuestas
Sudo sobre /bin/bashUn permiso administrativo equivale a control totalDelegación insegura de privilegios

THLPWN enseña una forma de leer una intrusión más que un truco concreto, ver cómo un fallo de exposición inicial conecta con un problema de credenciales y acaba rematado por una mala configuración local.

ciberseguridadlaboratorioCTFescalada de privilegiosLinux