Skip to main content

Command Palette

Search for a command to run...

Thlpwn ¹

Updated
3 min readView as Markdown
R
Computer Science student passionate about cybersecurity, with a strong interest in Red Team operations and SOC operations. I share learnings, projects, and experiments as I progress on my path toward becoming an offensive security specialist.

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!

Referencias

¹ https://labs.thehackerslabs.com/machine/118