# BTRSys2.1

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FGKG2zt1ao3h2blDrnzE0%2FSQL%20injection%20vulnerability%20in%20WHERE%20clause%20allowing%20retrieval%20of%20hidden%20data%20(2).png?alt=media&#x26;token=1ed8332d-81be-464d-a4c3-38a57bfe04a8" alt=""><figcaption></figcaption></figure>

## 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
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FFMSQ3MapAzK1Ll24YoPV%2Fimage.png?alt=media&#x26;token=7de0018d-fbaf-4284-b0bd-0c9aa1b2f194" alt=""><figcaption></figcaption></figure>

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.&#x20;

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F0gzp2jmsoF1XTXoZZoNj%2Fimage.png?alt=media&#x26;token=d17ec663-600c-4a2c-9abc-0e33a53610ab" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fhlp2KFnFEqmSEgozv6oG%2Fimage.png?alt=media&#x26;token=33c2dd26-848d-4529-b05b-2428db5319bf" alt=""><figcaption></figcaption></figure>

### FTP

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FzR5F09YR98YTjfU7DfMq%2Fimage.png?alt=media&#x26;token=5aa55450-fbf0-4357-b0d0-d7a548020436" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Ftrh1iPEnE2Mvn5f0B2TZ%2Fimage.png?alt=media&#x26;token=7850029c-501f-4f21-9e07-0409896ee738" alt=""><figcaption></figcaption></figure>

Vamos a enumerar directorios y archivos interesantes.

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQeEz605LgwDB3kerzLDe%2Fimage.png?alt=media&#x26;token=032b2ea6-c4af-4a66-8dbb-c41ad625204e" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FW6nv68J9myilSxFqIKH1%2Fimage.png?alt=media&#x26;token=1ea06d46-f752-42f3-a507-ebba52e9a751" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FXsEsqmbb7YtcWpxoqCKP%2Fimage.png?alt=media&#x26;token=d875e2ff-76ba-4a41-ab32-93f5f6a5c8d6" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FSqHPBaJpPKCZiUQG6MQU%2Fimage.png?alt=media&#x26;token=5dff9a5c-9e3e-4643-b14e-1c5289dded3e" alt=""><figcaption></figcaption></figure>

## Explotación

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FZuqqRamsX2f2O8NFHgFj%2Fimage.png?alt=media&#x26;token=49ecda01-459f-4cc8-953f-c6d822accdc9" alt=""><figcaption></figcaption></figure>

Accedemos al Panel de Control del CMS.&#x20;

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FuSTrpDbUi87X9obX1cYo%2Fimage.png?alt=media&#x26;token=980bf55c-c536-49f7-9f5a-942a18f34234" alt=""><figcaption></figcaption></figure>

Actualizamos el archivo index.php con el nuevo contenido.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FjlLtagpVpIZIazxjFTfS%2Fimage.png?alt=media&#x26;token=96f436e0-0ec7-4931-a976-92ec8c72eefb" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FlzuLGWof3UIQsZiS5ha7%2Fimage.png?alt=media&#x26;token=d776387f-1770-4e16-9f6a-86ec7862e2bf" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fz3ap31glcHQ9JiQ6muc1%2Fimage.png?alt=media&#x26;token=eac5bdca-f844-4c94-907c-a4b9780d66ae" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F77mDQQ4zRugkAKAqzNkU%2Fimage.png?alt=media&#x26;token=c42ae84d-654b-452e-b0fb-218ec207baad" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F3QXsXECf5JRvcXUQOyTt%2Fimage.png?alt=media&#x26;token=1833c014-b7bd-4c11-b0ad-5a39a0d7dad4" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FMxYoIQVMIobR1AGH5dGP%2Fimage.png?alt=media&#x26;token=fa312ae5-04e8-4813-8110-8abd8fb0638b" alt=""><figcaption></figcaption></figure>

Vemos que hay un servicio MySQL ejecutandose de manera interna.&#x20;

```
mysql -uroot -p
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F01dRqXRv0AtfkpD6Txkn%2Fimage.png?alt=media&#x26;token=76ed3093-32e9-4dfd-8751-541ea0988a89" alt=""><figcaption></figcaption></figure>

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

```
show databases;
use wordpress;
select * from wp_users;
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FZZwcjLK8ARIbzT5B0AkP%2Fimage.png?alt=media&#x26;token=6160ec0b-daa0-4c1d-8aa4-bb6e55dd531d" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fs6QPhz75ZHL6N10qBbJ6%2Fimage.png?alt=media&#x26;token=5ddd8086-395b-4eee-a002-b16a5519e662" alt=""><figcaption></figcaption></figure>

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.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FgyIHpWQlrseVWDf6BOW6%2Fimage.png?alt=media&#x26;token=31f3012b-c981-464e-b060-63fffea6d0ca" alt=""><figcaption></figcaption></figure>

Solo quedará buscar la flag proof.txt.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F7vTANo5tgKGCbHFUSWy7%2Fimage.png?alt=media&#x26;token=46519aa7-1be7-4e77-b3dc-ddad23d9c19b" alt=""><figcaption></figcaption></figure>

{% embed url="<https://www.youtube.com/watch?v=pGZOJrXXOtE>" %}
