XUT_ / MACHINES / THM

0109

Daily Bugle

THMMACHINENONEHARD
ApacheBrute ForceCommand ExecutionCVEDatabaseEnumerationHTTPJoomlaLinuxPassword CrackingPHPPivotingPort ScanningPrivilege EscalationRCEReverse ShellSQL InjectionSSHWebWeb Enumerationyum

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.


Introduction

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.

Getting the Flags

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

Getting the Flags

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

Getting the Flags

Vamos a ver cómo es la web.

Getting the Flags

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.

bash
joomscan -u http://dailybugle.thm

Profundización

Vamos a mirar los directorios. De ellos el único interesante es:

Getting the Flags

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:

Getting the Flags

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

Getting the Flags

Ahora vamos a crackearlo.

Getting the Flags

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

Getting the Flags

RevShell via Template Editing

Vamos a Templates, igual que en Wordpress.

Getting the Flags

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

Getting the Flags

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.

Getting the Flags

Ahora nos ponemos en escucha.

bash
rlwrap nc -lvnp 9999

Y cargamos la página principal.

Getting the Flags

Ahora estabilizamos la shell y buscamos la flag.

Getting the Flags

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.

Getting the Flags

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

Getting the Flags

En mysql encontramos lo siguiente:

Getting the Flags

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

Getting the Flags


Escalada de Privilegios

YUM Leverage - Arbitrary Package Installation

Haciendo el análisis básico de escalada de privilegios inicial, nos encontramos con lo siguiente.

Getting the Flags

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

Getting the Flags

Ahora seguimos los pasos:

Getting the Flags

NOTE

Si no tienes fpm de ruby instalado en tu máquina puedes utilizar los comandos:

bash
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.

Getting the Flags

Ahora leemos la flag de root.

Getting the Flags


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.

SUCCESS

¡Hemos conseguido todas las flags!