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 un escaneo de la dirección IP y podemos observar que tenemos 2 puertos.
Si vamos al navegador podemos observar que es la página default de apache2
Revisando el código podemos observar lo siguiente.
Ingresamos el nombre del cmsms en el directorio y podemos observar que accedemos.
Revisando la página observamos que hay un usuario admin
y que la versión es la 2.2.19
.
Realizamos un escaneo de los directorios de este directorio y podemos observar varios.
El más prometedor es el login.
Probando diversas credenciales esta no nos bloquea así que podemos usar fuerza bruta. Podemos probar directamente con burpsuite y usar intruder.
En payloads cargamos una versión corta del rockyou
y luego de ello damos es start attack
.
Luego de unos segundos podemos observar que el valor que varía es cuando prueba chocolate
.
La otra manera es usar hydra de la siguiente manera, en nuestra captura con burpsuite le damos a change request
y cambiará la petición por lo que se verá así y esto copiamos en hydra.
También debemos tener en cuenta que al enviar una respuesta erróneo tenemos el siguiente texto que agregaremos a la consulta.
Teniendo todo ello en cuenta nuestra consulta será de la siguiente manera.
hydra -l admin -P /usr/share/wordlists/rockyou.txt 172.17.0.2 http-post-form "/cmsms/admin/login.php:username=^USER^&password=^PASS^&loginsubmit=Submit:User name or password incorrect"
Luego de unos segundos podemos observar que también obtuvimos el password de chocolate
.
Nos logueamos y ya estamos dentro.
Si revisamos en content
, tenemos la posibilidad de subir un archivo. Probamos subiendo una shell en PHP, pero no nos deja, pero si cambiamos la extensión a .phar
podemos observar que se subió con éxito.
Indicamos nuestro listener
Abrimos nuestro el archivo usando la dirección URL o simplemente podemos dar clic en el archivo.
http://172.17.0.2/cmsms/uploads/images/test/rvshell.phar
Al dirigirnos a nuestro listener podemos observar que obtuvimos 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.
Realizamos un sudo -l
y podemos observar que no tenemos acceso.
Revisamos permisos SUID y capabilities, pero no encontramos nada.
Como no encontramos vamos a la carpeta de usuarios, pero no podemos acceder.
Buscando en las configuraciones de la página encontramos el config.php
y observamos unas credenciales de cms
que era el usuario en home.
Probamos loguearnos con las credenciales, pero son erróneas para cambiar de sesión. Probamos revisando la base de datos y solo contamos con 2.
Comprobando solo tenemos el usuario admin
del cual sabemos su password.
Como no tenemos más pistas, probaremos haciendo fuerza bruta para ello copiaremos el archivo corto de rockyou
y usaremos este script al crear le damos permisos de ejecución.
usuario="cms"
for password in $(cat minirockyou.txt); do
echo $password | su -c "exit" $usuario 2>/dev/null
if [ $? -eq 0 ]; then
echo "Encontrado: la contraseña de $usuario es $password"
break
fi
done
En nuestra máquina iniciamos el servidor
descargamos el minirockyou.txt
Ejecutamos el archivo con el usuario cms
, pero no obtenemos ninguno válido. Probamos usando root
y notamos que estaban reutilizando el password de admin
.
Ingresamos las credenciales y podemos observar que ya somos root. Culminando de manera exitosa esta máquina.