githubEditar

HackTheBox - Devvortex

Writeup de la máquina Devvortex de HackTheBox

  • Dificultad easy

  • Tiempo aprox. ~4h

  • Datos Iniciales: 10.10.11.242

Análisis Inicial

Iniciamos con un scan nmap:

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 48:ad:d5:b8:3a:9f:bc:be:f7:e8:20:1e:f6:bf:de:ae (RSA)
|   256 b7:89:6c:0b:20:ed:49:b2:c1:86:7c:29:92:74:1c:1f (ECDSA)
|_  256 18:cd:9d:08:a6:21:a8:b8:b6:f7:9f:8d:40:51:54:fb (ED25519)
80/tcp open  http    nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://devvortex.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
  • Añadimos devvortex.htb a /etc/hosts.

Puerto 80

Encontramos una página web con varias pestañas disponibles, tras analizarlas, no encuentro nada relevante en ninguna. No parece haber lugares que tomen input de usuario ni parámetros en las solicitudes, por lo que decido centrarme en otro punto.

Con gobuster hago un análisis de subdominios (vhosts):

Subdominio dev.devvortex.htb

Al entrar en el subdominio, encuentro otra sola página sin más.

Tras hacer fuerza bruta con feroxbuster filtrando aquello a lo que no pudiese acceder:

Mirando en cada una de ellas no parece haber nada relevante en ninguna. Desde robots.txt veo algo muy similar:

En /administrator encuentro un panel de login de administrador, en el que se ve que el CMS en uso es Joomla:

En ninguno de los dos casos anteriores encuentro recursos relevantes ni siquiera para poder enumerar la versión del CMS. Tras una búsqueda en internetarrow-up-right, encuentro que es posible que la versión se encuentre en /administrator/manifests/files/joomla.xml.

Y al comprobarlo:

De aquí podemos ver varias cosas interesantes:

Y usando un exploitarrow-up-right que automatiza el acceso a las bases de datos:

Con las credenciales lewis:P4ntherg0t1n5r3c0n## inicio sesión en el panel de administrador.

Reverse shell

Ya en el panel de administrador, intuyo que será necesario instalar un módulo o extensión que nos proporcione un reverse shell, por suerte ya había un webshell interactivo disponiblearrow-up-right.

Para poder tener mejor acceso, ejecuto un reverse shell en python3:

Y mientras en ncat:

Una vez dentro, intento conseguir el flag de usuario (podría haberlo hecho directamente desde el webshell):

Desgraciadamente, no podemos acceder a él, necesitaremos ser el usuario logan, por suerte todavía podemos conectarnos a MySQL:

Y desde ahí buscar las credenciales del usuario logan, que están en la tabla sd4fg_users:

Y crackeamos la contraseña:

Acceso como logan

Al probar a hacer ssh:

Por suerte y por desgracia, la contraseña era tan fácil (La nº1403 en rockyou.txt) que podríamos haberla sacado con hydra desde el principio si hubiésemos esperado, aunque no sería lo común empezar con fuerza bruta.

Desde el shell de logan ejecutamos sudo -l:

apport-cli es una aplicación de troubleshooting de sistemas Linux. Esta versión específica tiene una vulnerabilidad (CVE-2023-1326) que hace que, al producir un reporte de un bug y mostrarlo en pantalla, se haga uso del paginador (generalmente less).

Esto en sí no es peligroso, pero si se ejecuta less como root, todos sus subprocesos se ejecutarán como root, y, por tanto, si durante la ejecución de less el usuario escribe !<comando>, ese <comando> se ejecutará como root.

Dicho esto:

Una vez hecho el reporte:

Se abrirá el reporte con less como paginador, para el que pulsamos ! y escribimos /bin/bash, y finalmente tenemos root:

Última actualización