desktopHeal


Reconnaissance

Realizaremos un reconocimiento con Nmap para ver los puertos que están expuestos en la máquina Heal. Este resultado lo almacenaremos en un archivo llamado allPorts.

A través de la herramienta de extractPortsarrow-up-right, la utilizaremos para extraer los puertos del archivo que nos generó el primer escaneo a través de Nmap. Esta herramienta nos copiará en la clipboard los puertos encontrados.

Lanzaremos scripts de reconocimiento sobre los puertos encontrados y lo exportaremos en formato oN y oX para posteriormente trabajar con ellos. Verificamos que al parecer se trata de una máquina Ubuntu que dispone de una página de Nginx y el servicio SSH.

Procederemos a transformar el archivo generado targetedXML para transformar el XML en un archivo HTML para posteriormente montar un servidor web y visualizarlo.

Accederemos a http://localhostarrow-up-right y verificaremos el resultado en un formato más cómodo para su análisis.

Añadiremos en nuestro archivo /etc/hosts la entrada correspondiente que nos muestra Nmap que nos redirigrá el sitio web al acceder.

Web Enumeration

Accederemos a http://heal.htbarrow-up-right y verificaremos que existe un panel de inicio de sesión en el cual podemos crear un resumen profesesional en cuestión de minutos. Probaremos de registrarnos en el sitio web.

Nos registraremos con nuestro usuario gzzcoo.

Logramos acceder con nuestro usuario recién creado, entra las opciones que se nos muestran, ingresaremos a ellas para verificar que más opciones nos ofrece el sitio web. En este caso probaremos de acceder a Survey.

Revisamos que nos lleva a http://heal.htb/surveyarrow-up-right, parece ser una página en la cual dándole a Take the Survey nos redirige a una página de un subdominio take-survey.heal.htb para realizar un cuestionario.

Añadiremos este nuevo subdomino ennuestro archivo /etc/hosts.

Al acceder a la opción que nos daba el botón, nos encontramos con la siguiente página, la cual investigando no hay ningún tipo de información, simplemente un cuestionario a rellenar.

Probaremos de acceder directamente a http://take-survey.heal.htb y verificamos que hemos logrado encontrar más información. Se nos indica que el usuario Administrator del sitio web es ralph@heal.htb.

Realizaremos un escaneo de directorios y archivos sobre la página http://take-survey.heal.htb/index.php/arrow-up-right y nos encontramos con el siguiente resultado.

Al probar de acceder al directorio /admin, nos encontramos con un panel de Administración que nos pide credenciales de acceso.

Realizaremos un escaneo de subdominios de la página web, nos encontramos que todos los resultados nos devuelven 178 carácteres.

Volveremos a realizar el escanao, descartando el resultado anterior. Después de un tiempo, logramos encontrar un subdominio llamado api.

Añadiremos este nuevo subdominio en nuestro archivo /etc/hosts.

Al acceder a http://api.heal.htb, se nos muestra la siguiente página web en la cual se nos indica que la página web utiliza Rails 7.1.4. Veremos si más adelante esta información es útil o no.

Initial Foothold

Local File Inclusion (LFI) on Website parameter

Volveremos a la página de http://heal.htb/resume, en la cual nos permitía rellenar nuestro perfil profesional. Verificamos que nos proporcionan un botón de Export as PDF. Interceptaremos la solicitud con BurpSuite para verificar como es esta solicitud que se envía al servidor.

Una vez tengamos la solicitud interceptada, realizaremos varias veces el redireccionamiento de la solicitud Forward, nos encontramos con la siguiente soliticud, la cual hace una petición por método GET sobre un directorio llamado /downloads y a través de una variable filename llama al archivo PDF que hemos generado.

Enviaremos esta solicitud al modo de Repeater.

Modificaremos la solicitud que se envía al servidor, trataremos de listar el contenido del archivo /etc/passwd a través de un Local File Inclusion (LFI).

Verificamos que el sitio web es vulnerable a LFI y hemos podido listar el contenido del /etc/passwd correctamente.

Revisando el contenido del /etc/passwd, comprobamos que existen solamente dos usuarios sin privilegios que dispoonen de una bash.

Si bien recordamos, nos encontramos en la página de http://api.heal.htbarrow-up-right que la página web utilizaba Rails 7.1.4.

Por lo tanto, podemos pensar si podemos listar algún archivo de configuración de Rails para intentar encontrar información, configuraciones, credenciales, etc.

Nos encontramos con el siguiente blog en el cual nos explican donde se almacenan estos archivos.

Probaremos de listar el contenido del archivo /config/database.yml y en el resultado por parte del servidor, logramos visualizar el contenido del archivo. En este archivo se nos indica donde se almacena la base de datos de Rails.

Trataremos de visualizar el contenido del archivo de la base de datos que utiliza la aplicación. En este caso, logramos visualizar el contenido en el cual se nos muestra al usuario ralph y su contraseña hasheada.

Recordemos que el usuario ralph@heal.htb es el usuario Administrator del sitio web.

Cracking Hashes

Verificarems el tipo de hash del cual se trata y a través de hashcat probaremos de crackear el hash. Comprobamos que logramos visualizar la contraseña en texto plano.

Accessing on LimeSurvey Administration Panel

Volveremos al panel de Administración de LimeSurvey a través de http://take-survey.heal.htb/index.php/admin/authentication/sa/loginarrow-up-right y probaremos de acceder con el usuario ralphy sus credenciales encontradas.

Verificamos que hemos logrado obtener el acceso correctamente a LimeSurvey.

circle-info

LimeSurvey (anteriormente PHPSurveyor) es una aplicación de software libre para la realización de encuestas en línea1​, escrita en PHP y que utiliza bases de datos MySQL, PostgreSQL o MSSQL. Esta utilidad brinda la posibilidad a usuarios sin conocimientos de programación el desarrollo, publicación y recolección de respuestas de sus encuestas.

LimeSurvey Exploitation Remote Code Execution [RCE] - (CVE-2021-44967)

Realizando una enumeración de la página web, nos encontramos que se trata de LimeSurvey Community Edition Version 6.6.4, lo cual podremos intentar buscar alguna vulnerabilidad conocida.

Realizando una búsqueda por Internet, nos encontramos con el siguiente CVE-2021-44967.

triangle-exclamation

Por otro lado, nos encontramos con el siguiente repositorio para expotar esta vulnerabilidad.

Nos descargaremos el repositorio de GitHube del exploit.

Editaremos el archivo config.xml para especificar la versión 6.0, sino, no podremos explotar esta vulnerabilidad.

Editaremos el archivo php-rev.php y estableceremos nuestra dirección IP de atacante y el puerto desde donde estaremos en escucha.

Comrpimiremos estos nuevos archivos en un archivo llamado por ejemplo, Gzzcoo.zip.

Desde el panel de LimeSurvey, accederemos al apartado de Configuration < Plugins.

Dentro de la sección de Plugins, ingresaremos a la opción de Upload & install.

Subiremos nuestro archivo Gzzcoo.zip para importarlo en el sitio web.

Instalaremos el nuevo plugin en LimeSurvey.

Por otro lado, nos pondremos en escucha por el puerto especificado.

En el panel de Plugins, deberemos de activar el plugin subido.

Confirmaremos la activación del plugin recién subido.

Accederemos a http://take-survey.heal.htb/upload/plugins/Y1LD1R1M/php-rev.phparrow-up-right y volviendo a la terminal donde estábamos en escucha, verificamos que logramos acceder al equipo correctamente.

Nos encontramos como usuario www-data, el cual normalmente no dispone de ningún privilegio.

Initial Access

Information Leakage

Revisando los diferentes directorios, nos encontramos en el archivo index.php que especifican que el archivo de configuración se encuentra en application/config/config.php.

Listaremos el contenido del archivo, y verificamos que aparecen credenciales de acceso a una base de datos de PostgreSQL.

Después de varios intentos intentando acceder al PostgreSQL, probamos de verificar si estas credenciales se reutilizaban para uno de los usuarios que disponían de una bash.

Verificamos que hemos podido acceder como usuario ron y obtener la flag user.txt.

Privilege Escalation

Checking Internal Ports

Revisarmeos los puertos internos que se encuentran abiertos en el equipo, vemos un listado de puertos inusuales.

SSH Port Forwarding

Probaremos de realizar SSH Port Forwarding sobre todos los puertos internos encontrados hacía nuestro equipo local de atacante, para verificar que hay detás de ellos.

Verificaremos que todos los puertos se encuentran abiertos en nuestro equipo lccal.

Probando de acceder a http://127.0.0.1:8500, logramos acceder a un sitio web de Hashicorp Consul.

circle-info

HashiCorp Consul es una solución de redes de servicios que permite a los equipos gestionar la conectividad de red segura entre servicios y entre entornos locales y multicloud y tiempos de ejecución. Consul ofrece detección de servicios, malla de servicios, gestión de tráfico y actualizaciones automáticas para dispositivos de infraestructura de red. Puede utilizar estas funciones de forma individual o en conjunto en una única implementación de Consul.

Hashicorp Consul v1.0 - Remote Code Execution (RCE)

Buscando vulnerabilidades sobre la aplicación, nos encontramos con el siguiente exploit para obtener un RCE.

Nos ponemos en escucha por un puerto para recibir la Reverse Shell.

Ejecutamos el exploit sobre nuestro localhost en el puerto 8500 (debido que hemos realizado anteriormente el Port Forwarding) y especificamos nuestra dirección IP y el puerto donde vamos a estar en escucha.

Volviendo a la terminal, nos encontramos que hemos logrado obtener acceso y en este caso somos el usuario root. Verificamos la flag de root.txt.

Última actualización

¿Te fue útil?