🟠BTRSys2.1

Write-up de la máquina BTRSys2.1 de Proving Grounds #writeup #walkthrough

Enumeración

Enumeración de servicios disponibles

Comenzamos haciendo la enumeración de los servicios que tiene abiertos la máquina BTRSys2.1.

nmap -p- --open --min-rate 1000 -Pn -n -vvv 192.168.98.50

Existen tres servicios abiertos en la máquina víctima, puertos 21, 22 y 80. El siguiente paso será la enumeración detenida de estos tres servicios.

nmap -p21,22,80 -Pn -n -sVC -vvv 192.168.98.50

FTP

El servicio FTP ejecutado en esta máquina permite el login anonymous. Veamos si podemos encontrar información interesante.

Podemos acceder al servidor FTP pero no tenemos acceso a nada interesante.

Enumeración Web

Otro servicio que se está ejecutando en la máquina es un servicio Web en el puerto 80. Vamos a enumerar su contenido.

Vamos a enumerar directorios y archivos interesantes.

feroxbuster -u http://192.168.98.50 -s200,301 -x html,txt,php -n

Dos directorios interesantes, además del archivo robots.txt.

Está permitido el acceso al directorio /wordpress. Veamos su contenido.

Sabiendo esto, ejecutamos wp-scan para enumerar infomración interesante de este CMS.

 wpscan --url http://192.168.98.50/wordpress/ -t 40 -e u1-1000 --passwords /usr/share/wordlists/rockyou.txt --force 

Explotación

Obtenemos las posibles credenciales del usuario admin para el Panel de Control del CMS. Vamos a comprobar que son correctas.

Accedemos al Panel de Control del CMS.

Wordpress está basado en PHP para programar sus archivos. Vamos a tratar de modificar uno de estos archivos que forman los Temas de WP, para tratar de subir una reverse Shell escrita en PHP. Ahora nos dirigimos a "Appearance > Editor" y seleccionamos el archivo index.php.

Configuramos nuestra reverse shell

Actualizamos el archivo index.php con el nuevo contenido.

Una vez que hayamos actualizado, podemos configurar un listener de netcat y luego recargar la página principal en: http://192.168.98.50/wordpress/index.php. Esto debería bloquear la página y luego deberíamos recibir una shell inversa.

Ya tenemos acceso a la máquina víctima. También, hemos interactiva la tty.

python3 -c 'import pty; pty.spawn("/bin/bash")'

Localizamos la flag local.txt en el directorio "/home/btrisk"

Elevación de privilegios

Como estamos ante un sistema donde se está ejecutando un CMS WordPress, vamos a enumerar los archivos del directorio /var/www/html/wordpress.

Un archivo interesante es "wp-config.php".

Dentro de este directorio, obtenemos un posible nombre de usuario y password para la base de datos. Recordamos que en la enumeración inicial de NMAP no había ningún puerto MySQL así que deberemos hacer esto desde la terminal de comandos de la máquina víctima.

Vemos que hay un servicio MySQL ejecutandose de manera interna.

mysql -uroot -p

Ahora vamos a extraer información de la base de datos.

show databases;
use wordpress;
select * from wp_users;

Obtenemos dos posibles usuarios y sus respectivos hashes de contraseña, posiblemente cifradas en MD5. Vamos a tratar de descifrarlas con la herramienta https://crackstation.net/. El usuario "admin" es aquel que descubrió la herramienta "wp-scan" durante la enumeración del CMS. Vamos a descifrar el hash de la contraseña del usuario "root".

Para el usuario "root" la contraseña es "roottoor".

Vamos a comprobar si estas credenciales nos permite conectarnos al sistema como usuario "root" con privilegios máximos.

Solo quedará buscar la flag proof.txt.

Last updated