Skip to main content

Command Palette

Search for a command to run...

Nodeception ¹

Published
4 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, FTP, fuerza bruta.

Herramientas: medusa, gobuster,nmap, python.

Impacto: compromiso total del sistema.

Enumeración

La primera operación que realizamos en este CTF fue la enumeración de puertos. Utilizamos la herramienta Nmap para el escaneo de todos los puertos posibles abiertos, un reconocimiento de los servicios básico y para evitar que tarde en realizar el escaneo no hacemos resolución DNS.

Lo que observamos es que tenemos tres puertos abiertos.

PuertoServicio
22SSH
5678Servicio desconocido
8765Servicio desconocido

Enumeración de web con puerto 5678, enumerando este puerto podemos notar que se trata de un login para un servicio de n8n.

Utilizamos la herramienta gobuster para poder enumerar los directorios a los cuales podamos acceder. En la salida podemos notar que cuenta con distintos directorios.

Si tratamos de ingresar a los directorios podemos notar que los directorios estan deshabilitados. El único que nos permite ingresar es el /healthz el cual solo nos regresa un ok, por lo que podemos suponer que es un servicio API.

Recordemos que tenemos otra página en el puerto 8765 por lo que enumeramos los directorios con extension php con la ayuda de la herramienta gobuster.

Podemos notar en la siguiente imagen que hay una página login.php.

Si nos dirigimos al login.php podemos observar que efectivamente se trata de un panel de acceso.

En algunas ocasiones los desarrolladores cometen el error de poner comentarios en los archivos html que comprometan el sistema, por lo que haciendo uso de una herramienta² desarrollada con python3 enumeramos la página index.html para ver si obtenemos algún comentario.

Podemos observar que en los comentarios algún desarrollador dejo un mensaje para el usuario que tiene un correo usuario@maildelctfcom y ademas le sugiere que su contraseña debe estar compuesta por mínimo un número y una mayúscula.

Como al enumerar la página con puerto 8765 encontramos una página de login y ademas al enumerar los comentarios de la página html principal del mismo puerto obtuvimos pistas de una credencial de acceso, establecemos la hipótesis de que podemos realizar un ataque de fuerza bruta.

Desarrollamos un script³ en Python3 que nos permitirá realizar el ataque de fuerza bruta utilizando el diccionario rockyou.txt.

Podemos notar que obtenemos la clave Password1, el cual coincide con las pistas que tenemos.

Al ingresar con el correro usuario@emaildelctf.com y la contraseña Password1, podemos ingresar de manera correcta.

Recordemos que al enumerar los puertos encontramos el puerto 5678 que corresonde al n8n que se menciona en el mensaje, por lo cual podremos ingresar con el mismo usuario y contraseña.

Una vez dentro, ahora debemos enumerar la página para ver si obtenemos información relevante. A primera vista podemos observar que hay un workflow que esta activo, por lo que revisamos si podemos encontrar datos sensibles.

Podemos observar que lee un archivo, por lo que revisaremos el contenido del archivo.

Como se muestra en la imagen podemos notar que lee un archivo passwd, si damos click en view, podemos notar los usuarios que hay dentro del servidor.

Lo que rescatamos de este archivo es que existe un usual thl.

Recordemos que el puerto 22 que corresponde a ssh esta abierto, por lo cual realizaremos un ataque de fuerza bruta con la herramienta medusa especificando el host que en este caso es 192.168.1.143, el usuario que utilizaremos es thl, especificamos el tipo de servicio que ssh y el número de hilos para la ejecución que serán 10.

 medusa -h 192.168.1.143 -u thl -P /usr/share/wordlists/rockyou.txt -M ssh -t 10

Una vez obtenida la contraseña iniciamos sesión en el servicio ssh.

ssh thl@192.168.1.143

Al ingresar, podemos ejecutar el comando sudo -l, para poder listar los comandos que se pueden ejecutar como usuarios root.

sudo -l

Podemos notar que hay dos formas de escalar a usuarios root.

Podemos escalar privilegios de una forma interesante mediante el comando vi

sudo vi

Una vez dentro del editor vi, podemos ingresar a la consola ejecutando una instrucción vi como :!/bin/bash

Una vez que ejecutamos esta instrucción dentro de vi, obtendremos el acceso a root.

De esta manera logramos comprometer el equipo.

Conclusión

Este CTF demostró cómo múltiples vulnerabilidades aparentemente menores pueden combinarse para comprometer completamente un sistema. La exposición de credenciales en comentarios HTML permitió el acceso inicial, mientras que la mala configuración de privilegios de root facilitó la escalada hasta el control total del servidor.

La efectividad de este ataque resalta que incluso vulnerabilidades de "baja severidad" pueden ser el punto de entrada para compromisos críticos cuando se combinan con configuraciones inseguras.

Referencias

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

² https://github.com/Royjs99/html-comment-extractor

³ https://github.com/Royjs99/Brute-Force-Login-for-CTF

💬 ¿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!