Introduction
Resumen
En esta máquina nos encontramos con un CMS Joomla. Después de listar la versión y buscar vulnerabilidades, nos encontramos con una SQLi con varios PoCs.
Ejecutar uno nos da el nomrbe de usuario y hash del super usuario de Joomla. Crackeando el hash obtenemos la contraseña.
Una vez entramos en el administrador de Joomla, editamos un tema para obtener una shell. Desde esa shell podemos leer credenciales hardcodeadas que han sido reutilizadas en otro usuario. Con ellas iniciamos sesión y leemos la primera flag.
Un análisis sencillo de la máquina nos deja ver un comando con capacidad de sudo por todos los usuarios. Buscando en GTFOBins encontramos el vector y lo explotamos para conseguir una shell como root.

Compromete un CMS Joomla via SQLi, practica tu habilidad de crackeo de hashes y escala privilegios aprovechándote de yum.
Getting the Flags
Reconocimiento Inicial
Comenzamos realizando un escaneo de puertos abiertos.

Ahora vamos a analizar dichos puertos más a fondo.

Vamos a ver qué posibles directorios hay en la web.

Vamos a ver cómo es la web.

Una página tratando a "SpiderMan" de criminal, que raro xD. Aprovechando que es un Joomla, vamos a realizar un escaneo también con joomscan.
joomscan -u http://dailybugle.thm
Profundización
Vamos a mirar los directorios. De ellos el único interesante es:

Vamos a buscar vulnerabilidades para Joomla 3.7.0.
Explotación
SQLi on Joomla 3.7.0 - CVE-2017-8917
Ahora vamos a GitHub, buscamos un PoC y lo ejecutamos:

Obtenemos un username y un hash. Vamos a intentar crackerarlo. Primero tenemos que identificarlo.

Ahora vamos a crackearlo.

Una vez tenemos las credenciales vamos a iniciar sesión en Joomla.

RevShell via Template Editing
Vamos a Templates, igual que en Wordpress.

Vemos cuál está puesta. Vamos a Templates y la seleccionamos.

Copiamos el contenido de /usr/share/webshells/php/php-reverse-shell.php editando la IP y puerto en index.php y le damos a Save.

Ahora nos ponemos en escucha.
rlwrap nc -lvnp 9999
Y cargamos la página principal.

Ahora estabilizamos la shell y buscamos la flag.

Parece que tenemos que pivotar hacia jjameson.
Pivoting via Hardcoded Credentials - Credential Reuse
Después de buscar un poco encontramos un archivo de configuración con credenciales para la base de datos.

Nos metemos en la base de datos y vamos a buscar.

En mysql encontramos lo siguiente:

Vamos a probar la reutilización de contraseñas.

Escalada de Privilegios
YUM Leverage - Arbitrary Package Installation
Haciendo el análisis básico de escalada de privilegios inicial, nos encontramos con lo siguiente.

Si vamos a GTFOBins y buscamos, vemos que efectivamente es un vector de escalada:

Ahora seguimos los pasos:

Si no tienes fpm de ruby instalado en tu máquina puedes utilizar los comandos:
sudo apt update && sudo apt install -y ruby ruby-dev rubygems build-essential sudo gem install --no-document fpm
Ahora compartimos el archivo con la máquina víctima y lo ejecutamos.

Ahora leemos la flag de root.

Conclusión
Una máquina divertida, aunque poco difícil. El vector de foothold es un CVE con miles de PoCs. Y el vector de escalada es difícil dentro de lo fácil, pero es fácil. En fin, si quieres dificultad real coge una máquina Medium de HTB hahah.
¡Hemos conseguido todas las flags!
