Nimbus - Hack The Box
Esta fue una máquina muy difícil. Después de analizar los escaneos y de analizar el funcionamiento de la página web activa en el puerto 80, que resulta ser una carga de instrucciones YAML o de URLs que apunten a archivos YAML, esto con el fin de cargar trabajos de manera interna. Realizamos un bypass hacia esta funcionalidad YAML para aplicar Server-Side Request Forgery (SSRF), lo que nos permite ver archivos internos de la página web, como lo son credenciales de AWS. Después de exportar esas credenciales y de enumerar el AWS con awscli, vemos que existe una cola SQS que permite solo enviar mensajes. Utilizamos esa función para probar si la funcionalidad de YAML es vulnerable a inyección de comandos (CI), logrando identificar un parámetro que permite ejecutar comandos usando Python. Abusamos de esta vulnerabilidad para cargar una Reverse Shell de Python, que nos permite ganar acceso a la máquina, que resulta ser un contenedor de Docker. Enumerando el contenedor, descubrimos que tiene configurada la funcion...
Esta fue una máquina bastante complicada. Después de analizar los escaneos, nos dirigimos al servicio SMB para enumerarlo, en donde veremos un directorio al que es posible cargar extensiones de VS Code, pero al no tener privilegios suficientes, no podremos hacer nada. Nos pasamos al servicio RPC para enumerar parte del AD, encontrando un usuario que podría permitirnos alguna acción en el futuro. Al no encontrar más y después de descubrir un mal funcionamiento en LDAPS, utilizamos la herramienta bloodyAD para enumerar la Tombstone del AD y además, descubrimos que nuestro usuario tiene permisos GenericWrite sobre un usuario que fue eliminado. Lo activamos con bloodyAD y aplicamos Password Spraying para encontrar su contraseña, siendo así que la descubrimos y vemos que este nuevo usuario tiene permisos de escritura sobre el directorio que permite cargar extensiones de VS Code. Creamos una Reverse Shell en un formato de extensión VSIX y la cargamos al SMB, siendo así que obtenemos una sesión activa de la máqui...
Esta fue una máquina sencilla. Después de analizar los escaneos, nos dirigimos a la página web activa del puerto 80, pues vemos que está utilizando un dominio, el cual registramos en el /etc/hosts. Al entrar al dominio, vemos que se está utilizando FreePBX versión 16.0.40.2 que, al buscarlo, descubrimos que es vulnerable al CVE-2025-57819, lo que nos permite ejecutar comandos de manera remota. Utilizamos una herramienta de Python3 que ejecuta esta vulnerabilidad y crea una WebShell, siendo que la aprovechamos para obtener una Reverse Shell, logrando así acceso a la máquina víctima. Dentro, usamos la herramienta linpeas.sh para identificar vulnerabilidades, logrando identificar una forma de escalar privilegios, abusando de una mala configuración del servicio DAHDI, siendo así que nos convertimos en Root.
Esta fue una máquina un poco complicada. Después de analizar los escaneos, nos dirigimos a la página web activa en el puerto 80, en donde vemos información sobre qué herramientas se utilizan de manera interna por desarrolladores, siendo lo más útil que encontramos. Después, vamos a la página web del puerto 6274, que resulta ser MCPJam Inspector, que está expuesto para que cualquiera lo utilice, pero al investigar su versión, vemos que es vulnerable al CVE-2026-23744, lo que nos permite ejecutar comandos de manera remota y así obtener una sesión interactiva de la máquina víctima como un usuario. Dentro, descubrimos que se está utilizando Jupyter Notebook en el puerto 8888, pero solo de manera interna. Utilizamos Chisel para exponer ese puerto en nuestra máquina y logramos ejecutar comandos tanto en Python como en la terminal del Jupyter Notebook, para así obtener una Reverse Shell y convertirnos en otro usuario con más privilegios. Como el segundo usuario, analizamos un script de Python que sirve como un se...
Esta fue una máquina un poco complicada. Después de analizar los escaneos, decidimos analizar a fondo la página web activa en el puerto 3000, ya que aplicando Fuzzing no encontramos nada. Al no encontrar algo útil, investigamos las tecnologías con las que se creó la página web, viendo que se ocupa Next.js versión 15.0.3, que resulta ser vulnerable a React2Shell (CVE-2025-66478 / CVE-2025-55182). Utilizamos un script de Python que nos ayuda a obtener una shell para ejecutar comandos, descubriendo una base de datos que, al analizarla, resulta ser de SQLite3. Al enumerar la BD, encontramos una contraseña como un Hash MD5 que pertenece a un usuario de la máquina víctima, que logramos crackear y así logramos conectarnos vía SSH. Dentro, analizamos los procesos ejecutándose en segundo plano, identificando el uso del debugger de Node.js de manera local ejecutado por el Root. Aplicamos Port Forwarding para poder entrar a la interfaz del debugger desde nuestra máquina y utilizamos Chronium para utilizar la herramie...
Esta fue una máquina algo complicada. Después de analizar los servicios de ambas interfaces y de ver que en ambas está lo mismo, elegimos una para aplicar las pruebas. Iniciamos analizando la página web activa en el puerto 80, pero al no encontrar algo que nos ayude más que una pista codificada en base64 y una página de PHP después de hacer Fuzzing, utilizamos Nikto para analizar la página web, siendo así que encontramos dos cabeceras que contienen un dominio y un subdominio. En el subdominio encontraremos una imagen que, al analizar sus metadatos, encontraremos una cadena de caracteres en base64 que, al decodificar, nos da las credenciales de acceso del servicio MySQL. Dentro del MySQL, descubrimos unas credenciales para ganar acceso a algún lado, pero la contraseña está encriptada. Analizamos los eventos del MySQL y descubrimos cómo se encriptó la contraseña, siendo que utilizamos una función para desencriptar esa contraseña y así logramos ganar acceso a un login de la página web, que nos muestra las cre...
Esta fue una máquina sencilla. Después de analizar los servicios activos, comenzamos enumerando el servicio FTP, donde encontramos 2 archivos de texto con posibles pistas para ganar acceso a la máquina. Después nos pasamos a la página web activa en el puerto 80, que al analizar su código fuente, encontramos una cadena de texto en base64, que decodificamos y nos da una posible pista. Aplicamos Fuzzing para ver si encontramos algo de utilidad, pero solo encontramos archivos y directorios que no nos llevan a nada. Al usar la pista que decodificamos como una ruta para la página web, encontramos un archivo comprimido RAR que logramos crackear con JohnTheRipper. El archivo comprimido nos da un archivo de texto que contiene una contraseña. Utilizamos netexec para probar probables usuarios y la contraseña que encontramos, siendo así que logramos ubicar un usuario válido y ganamos acceso a la máquina víctima vía SSH. Dentro, vemos que nuestro usuario puede usar el binario zsh como Root, así que utilizamos la guía d...
Esta fue una máquina algo complicada. Después de analizar los escaneos, nos dirigimos a enumerar el servicio SMB, pero al no encontrar nada, utilizamos las credenciales dadas para aplicar un RYD Cycling Attack, con tal de conocer todos los grupos y usuarios existentes de la máquina AD. También realizamos enumeración del servicio RPC, pero no encontramos algo relevante. Al no encontrar nada, utilizamos la herramienta bloodhound-python y BloodHound para enumerar el AD, siendo de esta forma que descubrimos una cadena de ataques AD-DACL que nos permite adueñarnos de un usuario con el que nos logueamos a la máquina víctima vía WinRM con Evil-WinRM. Además, aplicamos un LLMNR Poisoning, logrando capturar el Hash NTLMv2 de un usuario, que luego crackeamos con JohnTheRipper y resulta que también podemos loguearnos con este usuario. Dentro, encontramos un mensaje que nos da la pista sobre revisar la Tombstone del AD, siendo así que encontramos la contraseña de algún usuario, pero al desconocer de quién es, aplicamo...
Esta fue una máquina bastante sencilla. Después de analizar los escaneos, nos dirigimos a la página web activa en el puerto 80, en donde vemos un mensaje que nos indica que debemos buscar el hostname correcto para que cargue correctamente la página web, pues esta utiliza Virtual Hosting. Encontramos el hostname en el código fuente y lo registramos en el /etc/hosts, siendo que ya carga correctamente la página web. Aquí encontraremos algunas rutas interesantes, siendo una de estas la que nos permite descargar un binario. Analizamos el contenido del binario y podemos ver credenciales en texto claro para entrar al servicio SSH, logrando así ganar acceso a la máquina víctima. Dentro, revisamos los privilegios de nuestro usuario y descubrimos que puede usar el binario Bash como Root, que al investigarlo en la guía de GTFOBins, encontramos una forma de escalar privilegios.
Esta fue una máquina algo complicada. Después de analizar los escaneos de servicios, comenzamos con la página web activa en el puerto 80 y otra página web activa en el puerto 3000, pero en ambos casos no podemos encontrar algo relevante, por lo que aplicamos Fuzzing, descubriendo en la página web del puerto 80 el uso del sistema de tickets HelpDeskZ y en la del puerto 3000, enfocamos el Fuzzing para encontrar endpoints de una API, siendo que encontramos uno que pertenece a GraphQL. Sabiendo esto, aplicamos introspección y algunos filtros para poder obtener unas credenciales del endpoint de GraphQL. Dichas credenciales nos sirven para utilizar de forma autenticada el sistema HelpDeskZ, pudiendo así encontrar la versión de este, siendo la 1.0.2, que utilizamos para poder encontrar un Exploit acorde a esta versión. Encontramos un Exploit que aplica Blind SQL Injection para tratar de dumpear datos de la BD, pero al no funcionar, decidimos utilizar SQLMAP de forma agresiva para dumpear la BD, logrando obtener u...