# EvilBox-One

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FLso51IVWWHKQXdIpGkq2%2FSQL%20injection%20vulnerability%20in%20WHERE%20clause%20allowing%20retrieval%20of%20hidden%20data%20(9).png?alt=media&#x26;token=5432152f-8fdc-46cf-8220-fa44f7415e80" alt=""><figcaption></figcaption></figure>

### Enumeración

#### Servicios abiertos

Comenzamos realizando un escaneo rápido de los puertos que tiene abiertos la máquina víctima.&#x20;

```
nmap -p- --open --min-rate 500 -Pn -n -vvv 192.168.147.212
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FbYouEWKQBXYbaUHxdd1y%2Fimage.png?alt=media&#x26;token=5c1cb3fe-ae5b-406a-a5d5-7eb29c7f3b2d" alt=""><figcaption></figcaption></figure>

Dos puertos abiertos, 22 y 80. Seguimos con el escaneo profundo de estos servicios.&#x20;

```
nmap -p22,80 -Pn -n -sVC -vvv 192.168.147.212
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FVOlQWJLsJXqm4Vmx1nRx%2Fimage.png?alt=media&#x26;token=aa733015-5299-4cae-b26c-5f6cf21afb7f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fp8OLPftgEUwNRSZRGxcB%2Fimage.png?alt=media&#x26;token=aa90633e-0d24-4841-9e53-38d9f28472a3" alt=""><figcaption></figcaption></figure>

Servicios abiertos:

* Puerto 22 -> SSH -> OpenSSH 7.9
* Puerto 80 -> HTTP -> Apache httpd 2.4.38

#### Enumeración Web

La máquina objetivo está ejecutando un servidor Web en el puerto 80. Vamos a enumerar su contenido.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FqBRLRYCayZmEhuM1audj%2Fimage.png?alt=media&#x26;token=2170e2f7-a4c9-4407-a9c5-16d313e73515" alt=""><figcaption></figcaption></figure>

Es una página por defecto de un servidor Apache. El siguiente paso será enumerar archivos y directorios interesantes del sitio Web.&#x20;

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F6DTYrNW27hqXwMUqqSZD%2Fimage.png?alt=media&#x26;token=658417a4-6ec5-4654-8144-926dd426c748" alt=""><figcaption></figcaption></figure>

Encontramos un archivo robots.txt y evil.php que pueden ser interesantes. Vamos a ver el contenido de ambos.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fgm5Vphx1yK1L2lcLJF3W%2Fimage.png?alt=media&#x26;token=372c8ef2-dd26-4f9d-be9b-adce4cc69ca7" alt=""><figcaption><p>robots.txt</p></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FffsxHeO2EuEa7BTjXPJH%2Fimage.png?alt=media&#x26;token=6e5ae68f-c33d-4f2c-8d26-069d93f99a35" alt=""><figcaption><p>/secret/evil.php</p></figcaption></figure>

El archivo evil.php nos devuelve una página en blanco. Al haberse encontrado solamente un archivo, existe la posibilidad de que haya un parámetro que vuelva al archivo PHP vulnerable. Por lo tanto, en el próximo paso, se utilizará la técnica de fuzzing de parámetros con el fin de descubrir un parámetro válido para el archivo 'evil.php'.

```
ffuf -c -r -u 'http://192.168.147.212/secret/evil.php?FUZZ=/etc/passwd' -w /usr/share/seclists/Discovery/Web-Content/common.txt -fs 0
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Ftt2bmnMVeCw6jaTSIVWd%2Fimage.png?alt=media&#x26;token=cad53abb-c0db-4c21-b262-6c9541985f77" alt=""><figcaption></figcaption></figure>

Hemos encontrado un parámetro "command". Vamos a ver si podemos extraer información haciendo uso del parámetro encontrado.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQnF46b0HW63UBJ8uzoJE%2Fimage.png?alt=media&#x26;token=983877a9-4247-4529-baa0-dd246832d514" alt=""><figcaption></figcaption></figure>

El sitio es vulnerable a LFI.&#x20;

### Explotación

En el archivo /etc/passwd, encontramos un nombre de usuario "mowree". Vamos a intentar leer algunos archivos de configuración predeterminados de la carpeta del usuario, teniendo en cuenta el nombre de usuario que hemos encontrado.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F6HqxXYPVBe6CTG3mnw4w%2Fimage.png?alt=media&#x26;token=b7fadcc7-ab29-4191-b0fe-ee6ac72c2832" alt=""><figcaption></figcaption></figure>

Tras una inspección más detallada, encontramos la clave SSH privada del usuario "mowree" ubicada en el directorio "/home/mowree/.ssh/id\_rsa"

Vamos a copiar esta clave privada a nuestra máquina de ataque para tratar de descifrarla

A continuación, podemos usar johnpara descifrar la contraseña para el servicio SSH. Para ello, debemos hacer uso de la utilidad ssh2john.

Empezamos cambiando los permisos del archivo "hash "con el siguiente comando:

```
 chmod 600 hash
```

Ahora, ya podemos ejecutar la utilidad ssh2john.

```
 ssh2john hash > hash_john
```

El siguiente paso será descifrar la clave con "john".

```
john --wordlist=/home/elhackeretico/rockyou.txt hash_john
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FO2AkQapPmGsJQS9Um7EF%2Fimage.png?alt=media&#x26;token=64e45f70-bf90-4ae5-83eb-92979437c966" alt=""><figcaption></figcaption></figure>

La contraseña para poder acceder al servicio SSH haciendo uso de la clave privada id\_rsa para el usuario "mowree" es "unicorn". Vamos a comprobar si las credenciales son válidas.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FOZUbfIef0nCWg39YspEw%2Fimage.png?alt=media&#x26;token=2108914e-b8b2-45b4-b52f-5e7de53b4484" alt=""><figcaption></figcaption></figure>

Hemos obtenido acceso a la máquina víctima. Vamos a buscar la flag local.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F3JkTuCotQVTBqq8zLItH%2Fimage.png?alt=media&#x26;token=86943100-5920-4867-87e2-3f35c132922c" alt=""><figcaption></figcaption></figure>

### Elevación de privilegios

En este momento, hemos logrado obtener acceso de usuario en la máquina de destino. Sin embargo, si queremos aumentar nuestros privilegios, necesitamos conocer detalles importantes como el sistema operativo que se está ejecutando, la versión del kernel y los privilegios de sudo. Para obtener esta información, podemos consultar la siguiente captura de pantalla, donde se muestran todos los comandos y su salida correspondiente.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQHKgoYP5hvm42YIUaukk%2Fimage.png?alt=media&#x26;token=363667ed-b170-49be-9c40-902a7b52cf7e" alt=""><figcaption></figcaption></figure>

Al ejecutar el comando, se obtiene información acerca del sistema operativo y la versión del kernel, aunque no se encontró ningún exploit local funcional para conseguir privilegios de root. Al revisar los permisos del archivo, se detectaron debilidades en los permisos del archivo /etc/passwd, los cuales se evidencian en la captura de pantalla que se adjunta.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FyqDZzK1ATlYFcwgwfAF9%2Fimage.png?alt=media&#x26;token=8b28d800-c164-4591-8a1e-5971fcc656c6" alt=""><figcaption></figcaption></figure>

En una fila de la archivo /etc/passwd, la letra "x" indica que el hash de la contraseña del usuario se encuentra almacenado en el /etc/shadow. Si se elimina la "x", se eliminará también la contraseña. Sin embargo, en este caso en particular, esta solución no fue efectiva. Por lo tanto, vamos a actualizar la entrada del usuario "root" con mi propia contraseña personalizada, "elhackeretico". La contraseña se crea de la siguiente manera:

```
openssl passwd -1
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FhGcsZMDrWmmEJ7Lqci9I%2Fimage.png?alt=media&#x26;token=d0ae6896-3838-4a8b-b401-e77e74c365f2" alt=""><figcaption></figcaption></figure>

El siguiente paso será actualizar el archivo /etc/passwd utilizando "nano"

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F63mBJ1LhsnOHmRc7rpev%2Fimage.png?alt=media&#x26;token=9b4b0727-e9bc-497e-8224-a02f98324179" alt=""><figcaption></figcaption></figure>

Una vez guardado el archivo /etc/passwd actualizado, ya podremos iniciar sesión con el usuario "root" y la nueva pass.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F6aEpXTfk9mV7PjbwoWc0%2Fimage.png?alt=media&#x26;token=68553640-4c1c-4f9f-b83a-98f741a43b0b" alt=""><figcaption></figcaption></figure>

Buscamos la flag proof.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FcmjQtsKpL76veqHzp9lG%2Fimage.png?alt=media&#x26;token=aae6166b-191c-44e6-94c0-c2221235ae0b" alt=""><figcaption></figcaption></figure>

Y ya tendríamos la máquina EvilBox-One acabada.

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