GreenHorn - HackTheBox

En este walkthrough veremos GreenHorn, una máquina de dificultad fácil que aprovecha un exploit en Pluck para ejecutar código remoto y, a continuación, demuestra los peligros de las credenciales pixeladas. La máquina también demuestra que debemos ser cautelosos al compartir configuraciones de código abierto para asegurarnos de no revelar archivos que contengan contraseñas u otra información confidencial.

WALKTHROUGHSHTB

3/27/20254 min read

Walkthrough de la Máquina GreenHorn🦌- HackTheBox

📌 Detalles de la Máquina

🔍 Reconocimiento

Lanzamos un escaneo inicial para descubrir puertos abiertos en la máquina:

Puertos abiertos:

  • 22/tcp (SSH)

  • 80/tcp (HTTP)

  • 3000/tcp (ppp)

Y comprobamos las versiones de los servicios:

Identificación de versiones:

  • 22/tcp (SSH) - OpenSSH 8.9p1 Ubuntu 3ubuntu0.10

  • 80/tcp - nginx 1.18.0

  • 3000/tcp - ppp?

🌐 Enumeración Web - Puerto 80

Párametro /?file=

El parámetro /?file= en una URL generalmente indica que el sitio web permite cargar o acceder a archivos dinámicamente a través de una solicitud HTTP. Su significado y propósito dependen del contexto en el que se use. Por lo tanto probamos a hacer Inclusión de Archivos Locales (LFI) para acceder a archivos locales del servidor:

Accedemos a http://greenhorn.htb (añadiéndolo previamente a /etc/hosts) y encontramos una de bienvenida a GreenHorn impulsada por pluck.

Pero se nos indica que se ha detectado un intento de hackeo, y por razones de seguridad se ha parado todo tipo de ejecución de código.

Panel de login: login.php

Al hacer clic en "admin" Encontramos un panel de inició de sesión en http://greenhorn/login.php en el que se nos pide una contraseña:

También podemos ver que la versión de pluck es la 4.7.18, y encontramos un CVE asociado a dicha versión y un Exploit. Este exploit aprovecha una falla en la función de instalación del módulo para cargar un archivo ZIP que contiene un shell PHP, lo que permite la ejecución remota de comandos. Pero para poder utilizarlo necesitamos la contraseña de admin.

🌐 Enumeración Web - Puerto 3000

Accedemos a http://greenhorn:3000 y vemos un panel de Gitea.

Al hacer clic en "Explore" vemos un repositorio GreenHorn dentro de GreenAdmin.

Tras estar revisando los archivos encontramos un fichero pass.php dentro de la ruta /data/settings que contiene el hash de una contraseña:

Para crackear el hash nos apoyamos en CrackStation:

Obtenemos la contraseña: iloveyou1

🎯 Explotación

Comprobamos que la contraseña funciona para acceder al panel de admin:

Como ya tenemos la contraseña, nos clonamos el exploit CVE-2023-50564_Pluck-v4.7.18_PoC.

Y ejecutamos el script poc.py indicándole la ruta del .zip:

Nos ponemos a escuchar:

Modificamos el fichero poc.py de la siguiente manera:

Creamos una shell PHP PentestMonkey y la comprimimos en un .zip:

Tenemos acceso como www-data.

Ya tenemos acceso al usuario junior y capturamos la primera flag 🏴.

🔀 Movimiento Lateral

Simplemente cambiamos al usuario junior con la contraseña iloveyou1:

🔼 Escalada de Privilegios

En el directorio de junior encontramos un fichero pdf llamado "Using OpenVAS.pdf", abrimos un servidor http con Python y nos descargamos el fichero desde nuestra máquina:

Conseguimos root y capturamos la segunda flag🏴.

Miramos el contenido del pdf:

Podemos usar esta herramienta web para extraer la imagen:

Vemos que en el centro hay una contraseña, pero ésta es una imagen pixelada. Podemos utilizar Depix, una prueba de concepto (PoC) de una técnica para recuperar texto simple de capturas de pantalla pixeladas.

Al descomprimir el fichero .zip obtenemos la imagen pixelada del pdf:

Clonamos Depix:

Y lo ejecutamos siguiendo las instrucciones del repositorio oficial:

Miramos la imagen "output.png" que nos devuelve Depix:

🏆 Conclusión

Puntos Clave:

  • Enumeración web reveló una versión vulnerable del CMS Pluck.

  • Encontramos expuestas las credenciales de administrador en el puerto 3000 (gitea).

  • Escalamos privilegios reconstruyendo una imagen pixelada.

📌 Lecciones aprendidas:

  • La importancia de revisar versiones en servidores web.

  • Puede haber información sensible expuesta en repositorios.

  • La importancia de no reutilizar contraseñas (admin panel - junior)

🔗 ¡Espero que este walkthrough te haya sido útil! 🚀