Dog | Hack The Box

En este tutorial voy a mostrar como obtuve la bandera root en la maquina Dog de Hack The Box. Esta propiedad se presenta como un desafío de nivel fácil.

dog

12 de octubre de 2025

Enumeración


Para comenzar voy a utilizar nmap para realizar un escaneo de puertos y servicios abiertos.

nmap

Los puertos abiertos son el 22 y el 80. Voy a ingresar en el puerto 80 (http) para ver con que me encuentro.

web

Por lo visto es una página para subir artículos relacionados a los perros, también tiene un login para miembros del sistema y por lo que veo utiliza Backdrop en su versión 1.

Al ejecutar gobuster se revelaron algunas rutas que pueden ser interesantes.

gobuster

Al parecer podemos acceder a .git, lo que me abre la posibilidad a pensar que puede llegar a haber una filtración de datos.

Al dirigirme a http://dog.htb/.git/logs/refs/heads/master me encuentro con un commit:

0000000000000000000000000000000000000000 8204779c764abd4c9d8d95038b6d22b6a7515afa root <dog@dog.htb> 1738963331 +0000 commit (initial): todo: customize url aliases. reference:https://docs.backdropcms.org/documentation/url-aliases

Lo que voy a hacer ahora es descargar todo el repositorio git en mi máquina local para poder buscar algo de información que me pueda ayudar con el ataque.

Para descargar el repositorio voy a utilizar el siguiente comando:

python3 git_dumper.py http://dog.htb/.git/ ./git-dump

Una vez descargado el repositorio voy a navegar por las carpetas y archivos para hallar más información.

Al ingresar en "settings.php" me encuentro con una ruta SQL, la cuál me indica un usuario y contraseña.

credenciales sql

También voy a realizar una búsqueda con grep para recopilar los mails disponibles en el repositorio:

grep -Ri ".htb"

mails

Encontré 2 mails:

  • tiffany@dog.htb

  • dog@dog.htb

Ahora me voy a dirigir al login de la página para ver si con la contraseña que encontré y los usuarios puedo ingresar.

Usando el mail tiffany@dog.htb y la contraseña logré obtener acceso.

access

Explotación


Tras navegar y explorar las funcionalidades de la página encontré una sección donde puedo cargar módulos.

modules

Al hacer clic en instalación manual me permite cargar un archivo manualmente.

upload

Lo que voy a intentar hacer es pasarle un archivo .php que contenga un código malicioso el cual me permita realizar una reverse Shell.

Para poder cargar un archivo y que la aplicación lo tome como valido el mismo debe tener alguna de estas extensiones: tar tgz gz bz2. Por otro lado, también debe contener ciertos archivos con terminación .info, así que lo que voy a hacer es buscar en la página oficial de Backdrop algún modulo para descargar y dentro de ese modulo incluir el archivo malicioso.

El modulo que descargue fue el siguiente:

download module

El modulo se descarga con terminación .zip, con lo cual hay que hacerle un unzip para poder editarlo.

unzip

Con el archivo ya descomprimido voy a pasarle el archivo php-reverseshell.php. Este archivo lo descargue desde el repositorio de github pentestmonkey (https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php).

Una vez cargado el archivo tengo que modificar su terminación para que Backdrop me permita subirlo.

mv

Ahora simplemente resta abrir un puerto de escucha con netcat. (A tener en cuenta que en el archivo php-reverse-shell.php es necesario modificar la IP y el puerto según nuestra IP y puerto de escucha que elijamos para netcat.

Ahora si, cargamos el archivo en la aplicación y le damos a "install".

install module

Si todo salió bien debería recibir el siguiente mensaje:

update

Una vez cargado el modulo es necesario dirigirnos a el directorio donde se almacenan los módulos, tal y como me mostro los resultados de “gobuster” los modulos se almacenan en /modules:

modules url

Ahí vemos el modulo “updated” que cargamos, al ingresar puedo ver el archivo malicioso.

updated url

Simplemente resta darle clic al archivo y automáticamente en la terminal donde ejecuto netcat se va a iniciar la Shell.

reverse

Escalada de Privilegios


Tras ir a home y enumerar los usuarios veo que hay 2 usuarios, dentro del usuario Johncauseck se encuentra la flag de users pero no tengo permiso de lectura.

users

Tras seguir navegando y no encontrar nada se me ocurre tratar de ingresar con el usuario johncusack mediante SSH reutilizando la contraseña que había encontrado.

ssh john

Al listar se encuentra la bandera user.txt.

El siguiente paso es ejecutar el comando sudo –l para ver en qué archivos tenemos permisos de sudo:

sudo l

Para el archivo bee tengo permisos para ejecutar cualquier comando.

Averiguando un poco sobre el archivo bee encontré que es una herramienta de Bakdrop que sirve para interactuar con el CMS mediante la ejecución de comandos.

Voy a ejecutar el comando sudo usr/local/bin/bee help, para ver que comandos puedo ejecutar.

commands bee

Por lo que veo puedo ejecutar el comando eval, este comando me permite ejecutar código PHP arbitrario como root.

Lo que voy a hacer es ejecutar el comando ‘system(“/bin/bash”);’ el cual me va a permitir crear una Shell como root.

Es importante ejecutarlo dentro de la raíz donde está instalado backdrop, sino arroja un error. En este caso la raíz es var/www/html:

root

Ahora simplemente resta navegar hasta el archivo root para encontrar la bandera.