Thlpwn ¹
Dificultad: fácil
Técnicas: Enumeración web, SSH, enumeración binarios, SUID.
Herramientas: nmap, strings.
Impacto: compromiso total del sistema.
IP de la máquina víctima: 192.168.1.173.
Enumeración.
Enumeración de puertos.
Comenzamos enumerando los puertos de la dirección IP víctima haciendo uso de la herramienta Nmap.
nmap -nv --top-ports 500 192.168.1.173
El comando que ejecutamos explorará los 500 puertos principales de la IP víctima, para acelerar el escaneo de puertos evitamos la resolución DNS usando el parámetro -n, de esta manera aceleramos el proceso de escaneo de puertos. Además hacemos uso del verbose (-v) para ver el progreso.

El resultado del escaneo son dos puertos abiertos, los cuales son:
Puerto 22 que corresponde al servicio ssh
Puerto 80 que corresponde al servicio http
Enumeración de página web.
Al enumerar la página web notamos que hay un mensaje para nosotros, el cual nos indica que el servidor usa un hosting virtual.

Recordemos que el nombre del CTF es thlpwn, por lo que podríamos deducir que el virtual hosting es thlpwn.thl. Para hacer uso del virtual hosting que suponemos debemos modificar el archivo local /etc/hosts en donde añadiremos la dirección IP y el virtual hosting. Como se muestra en la siguiente imagen.

Al guardar la configuración del archivo /etc/hosts cargamos la página thlpwn.thl, dando como resultado una nueva página.

Enumeración de thlpwn.thl
Si vemos el código fuente podremos notar que hay cinco rutas.

Al explorar cada una de las rutas, podemos notar que la ruta /downloads contiene un archivo binario el cual podemos descargar. Además hay una pista que nos revela que el archivo binario contiene las credenciales ssh del servidor para acceder al sistema.

Enumeración del archivo binario
Procedemos a descargar el archivo que tiene como nombre auth_checker.
Haciendo uso de la herramienta strings podremos ver el contenido del archivo binario.
strings auth_checker
Al indagar entre la información del archivo binario, podremos notar que hay un apartado particular que muestra las credenciales de acceso mediante el servicio ssh.

Utilizando las credenciales que encontramos accedemos al servicio ssh mediante el siguiente comando:
ssh thluser@192.168.1.173

Dando como resultado el acceso al servidor.
Escalada de privilegios
Una forma de ver que comandos se pueden utilizar para ser superusuario es mediante el comando
sudo -l
Este comando nos permite ver que comandos pueden ser ejecutados como superusuario y que usuarios pueden ejecutar estos comandos.

En este caso podemos notar que todos los usuarios pueden ejecutar el comando /bin/bash sin la necesidad de una contraseña.
Por lo que al ejecutar el comando
sudo /bin/bash
Al ejecutar el comando whoami podremos notar que somos usuarios root.

De esta manera logramos culminar el CTF.
Conclusión
Este CTF demostró la importancia de no exponer archivos que contengan credenciales de acceso, ya que, como se observó en este laboratorio, esto permite a un atacante obtener acceso completo al sistema, comprometiendo el servidor. Además, es importante recalcar que el acceso a un usuario con privilegios de superusuario representa un riesgo crítico, por lo que resulta fundamental mantener una correcta configuración de permisos y políticas de acceso.
💬 ¿Te gustó este write-up?
Sígueme en LinkedIn para más análisis de seguridad
Comenta cuál fue tu parte favorita
Comparte con colegas que podrían aprender de esto
Redes sociales Instagram
¿Tienes preguntas sobre alguna técnica? ¡No dudes en contactarme!