Dog

Reconnaissance
Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Dog. Este resultado lo almacenaremos en un archivo llamado allPorts.
A través de la herramienta de extractPorts, 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. En el resultado, comprobamos que se encuentran abierta una página web de Apache con un directorio /.git/ y el servicio de SSH.
Transformaremos el archivo generado targetedXML para transformar el XML en un archivo HTML para posteriormente montar un servidor web y visualizarlo.
Accederemos a http://localhost y verificaremos el resultado en un formato más cómodo para su análisis.

Web Enumeration
Accederemos a http://10.10.11.58 y comprobaremos las siguientes páginas web. Se trata de una página web relacionada con un blog sobre la obesidad en los perros. Nos ofrece un portal de inicio de sesión en la página web. Por otro lado, también confirmamos que está montado a través de Backdrop CMS.
Por otro lado, en la página de About, nos encontramos con un correo electrónico con un nombre de dominio llamado dog.htb.



Initial Access
Downloading Git Folder disclosure
En el escaneo a través de Nma, nos encontramos con un directorio /.git expuesto en la página web. A través de la herramienta de GitHack nos descargaremos el repositorio en nuestra máquina local. Verificamos que tiene un total de 458 directorios y 2873 archivos que podremos analizar.
Information Leakage
Dentro de los archivos que nos hemos descargado del directorio /.git/, nos encontramos con un archivo llamado settings.php en el cual aparecen expuestas las credenciales en texto plano del usuario de la base de datos que utiliza la aplicación web.
Por otro lado, tratamos de listar nombres de usuarios que se pudieran encontrar en el directorio. Mediante grep -r buscamos diferentes maneras, a través de username, user, password, passwd, etc pero no encontramos nada. Realizando una búsqueda recursiva a través del nombre de dominio, nos encontramos con un usuario llamado tiffany@dog.htb.
Backdrop CMS 1.27.1 - Authenticated Remote Command Execution (RCE)
Dentro del contenido del directorio /.git/ que nos hemos encontrado, podemos comprobar un archivo en el cual parece proporcionarnos la versión exacta que utiliza el Backdrop CMS.
Realizando una búsqueda a través de la herramienta de searchsploit, conseguimos encontrar una vulnerabilidad para dicha versión. Además esta vulnerabilidad consiste en obtener un RCE, el único requisito es estar autenticado en el CMS.
En nuestro caso, tenemos un posible usuario válido (tiffany) y unas credenciales de la base de datos que muy probablemente se reutilicen o no.
Nos copiaremos el exploit que nos proporciona searchsploit a nuestro directorio actual de trabajo.
Al ejecutar el exploit, nos proporciona un archivo shell.zip y las instrucciones para realizar la explotación. Básicamente deberemos subir este nuevo módulo en el CMS y se nos proporcionará una especie de web shell.
Accederemos a http://10.10.11.58/?q=user/login y trateremos de autenticarnos con el usuario y la contraseña encontrada para verificar si podemos acceder al CMS.

Verificamos que las credenciales se reutilizaban y el usuario tiffany era válido para acceder. El siguiente paso será acceder a http://10.10.11.58/?q=admin/modules/install y darle a la opción de Manual Installation para subir el módulo malicioso.

En el siguiente apartado, deberemos de subir el shell.zip en el apartado de Upload a module....
IMPORTANTE: no tenemos que rellenar ninguno de los campos anteriores, solamente subir el comprimido.

Al tratar de subir el archivo shell.zip, la aplicación web nos indica que solamente están permitidos los archivos con extensión tar tgz gz bz2.

Descomprimiremos nuestro archivo malicioso shell.zip y lo volveremos a comprimir en el formato adecuado.
Al repetir el proceso subiendo este nuevo archivo shell.tar.gz, se nos indica que el módulo se ha instalado correctamente en el CMS.

Acceeremos a la ruta que se nos indicaba al generar el módulo malicioso (http://10.10.11.58/modules/shell/shell.php) y comprobaremos que disponemos de una web shell. Trataremos de ejecutar el comando whoami y nos devuelve el resultado del comando realizado.
Con lo cual, tenemos una vía potencial para ejecutar comando arbitrario en el equipo vulnerable.

El siguiente paso será lograr obtener una Reverse Shell y ganar acceso al sistema. Para ello, nos pondremos en escucha con nc para recibir la conexión.
Codificaremos el comando de la Reverse Shell que necesitaremos ejecutar en la web shell. Una vez aplicado el URL Encode, a través de cURL realizaremos la solicitud para proporcionarnos la Reverse Shell a través de la web shell subida.
Verificamos que hemos ganado acceso al equipo vulnerable y nos encontramos actualmente con el usuario www-data.
Initial Access
Database Enumeration
En este caso, disponemos de las credenciales del usuario de la base de datos, estas credenciales las encontramos en el archivo settings.php con las cuales realizaremos una enumeración de la base de datos.
Nos encontramos con una tabla interesantes llamada users.
Al revisar la tabla users, localizamos diferentes usuarios con contraseñas hasheadas. Intentamos crackear estas credenciales pero no logramos obtener resultado positivo.
Password Reuse
Revisando los usuarios del equipo que disponen de bash y de un directorio personal en /home nos encontramos con dos usuarios.
Probamos de verificar si el usuario johncusack reutilizaba las credenciales encontradas en el archivo settings.php. Finalmente logramos conectarnos y verificar la flag user.txt.
Privilege Escalation
Abusing privileges sudoers (bee)
Revisando si el usuario johncusack dispone de algún permiso de sudoers, nos encontramos que puede ejecutar el binario/usr/local/bin/bee como el usuario sudo.
Revisando el funcionamiento de la herramienta, nos encontramos con algunos parámetros bastente interesantes.
Según nos indica la herramienta, a través de la función eval podríamos ejecutar código PHP o mediante php-script ejecutar un script en PHP.
Al intentar ejecutar la siguiente instrucción para ejecutar un whoami, se nos indicaba que eval is not ready. Esto es debido que no nos encontramos en el directorio donde está instalado y configurado el Backdrop CMS.
Accederemos al directorio donde está configurado el Backdrop y al volver a ejecutar el comando, se nos indica que somos root. Esto debido que estamos ejecutando el binario a través de sudo debido que disponemos de permisos de sudoers sobre dicho binario.
Por lo tanto. nos otorgaremos una /bin/bash y comprobamos que tenemos una shell como usuario root y podemos leer la flag root.txt.
Última actualización
¿Te fue útil?