> For the complete documentation index, see [llms.txt](https://wiki.securiters.com/securiters-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.securiters.com/securiters-wiki/write-ups/proving-grounds/funbox-rookie.md).

# Funbox Rookie

<figure><img src="/files/TC8e5L84TD3SEFjPtX10" alt=""><figcaption></figcaption></figure>

### Enumeración

#### Servicios abiertos

Comenzamos enumerando los puertos que tiene abiertos la máquina objetivo.&#x20;

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

<figure><img src="/files/8n8mWuKJWzq3pna3YiF0" alt=""><figcaption></figcaption></figure>

3 puertos abiertos (21,22,80). El siguiente paso será el escaneo profundo de estos tres servicios.

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

<figure><img src="/files/HiPm4mG7ly7x2Z1h3sHk" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/kyVnGhRrMlWHw2NBNMC6" alt=""><figcaption></figcaption></figure>

Servicios abiertos:

* Puerto 21 -> FTP -> ProFTPD 1.3.5e
* Puerto 22 -> SSH -> OpenSSH 7.6
* Puerto 80 -> HTTP -> Apache httpd 2.4.29

Información de interés obtenida:

* FTP Login Anonymous
* robots.txt -> 1 entrada -> /logs

#### Enumeración FTP

Como hemos visto en la enumeración de servicios abiertos, está disponible la autenticación "anonymous" en el servicio FTP. Vamos a ver el contenido.&#x20;

<figure><img src="/files/wZBe5uDBYYYsBaT45RD5" alt=""><figcaption></figcaption></figure>

#### Enumeración Web

En la enumeración de puerto, hemos visto que se está ejecutando un servidor Apache en el puerto 80. Vamos a enumerar su contenido.&#x20;

<figure><img src="/files/AdPi7XT391fsabQqtyNw" alt=""><figcaption></figcaption></figure>

Vemos la página por defecto de un servidor Apache. El siguiente paso será buscar directorios y archivos interesantes disponibles en este servidor.&#x20;

```
dirsearch -u "192.168.96.107" -i200,301 
```

<figure><img src="/files/VtkfZMw8edOUAKwOL0dV" alt=""><figcaption></figcaption></figure>

Interesante, un archivo robots.txt que ya vimos en la enumeración inicial. Vamos a ver su contenido. Encontramos un directorio /logs/, pero...

<figure><img src="/files/DwiQJKPiE2oCXK1UHbK5" alt=""><figcaption></figcaption></figure>

### Explotación

Recordamos los archivos ZIP dentro del servidor FTP. Vamos a descargar todos los archivos. Primero, utilizamos la herramienta zip2john para generar hashes de todos los archivos. Luego, desciframos solo dos archivos ZIP: cathrine.zip y tom.zip. Extraemos los datos de los archivos ZIP y, después de la extracción, encontramos una clave SSH privada.

```
 zip2john tom.zip > tom.hash
 zip2john cathrine.zip > cathrine.hash
```

<figure><img src="/files/TLqUaTmg0QxhRWyQ1Y5y" alt=""><figcaption></figcaption></figure>

```
john --wordlist=/home/elhackeretico/rockyou.txt tom.hash
john --wordlist=/home/elhackeretico/rockyou.txt cathrine.hash
```

<figure><img src="/files/ckeXsBmEYGJ8lecEiuUa" alt=""><figcaption></figcaption></figure>

Dentro del archivo comprimido del usuario tom, encontramos una clave privada id\_rsa. Vamos a intentar iniciar sesión en el servicio SSH con el usuario "tom" y esta clave privada. Antes debemos dar privilegios al archivo de clave privada.&#x20;

```
chmod +x id_rsa
ssh -i id_rsa tom@192.168.96.107
```

<figure><img src="/files/hwgsuNVr6qfjxUwANM8C" alt=""><figcaption></figcaption></figure>

Buscamos la flag local.txt

<figure><img src="/files/MNwYRldBAL0yQdwCEHVW" alt=""><figcaption></figcaption></figure>

Pero, tenemos una rbash. Salimos de esta conexión y probamos a conectarnos con el siguiente comando.&#x20;

```
ssh -i id_rsa tom@192.168.96.107 -t "bash --noprofile"
```

<figure><img src="/files/DDUCIBSTU8U7xaZ75KCP" alt=""><figcaption></figcaption></figure>

Y ya tendremos la flag local.txt

### Elevación de privilegios

Tras revisar el archivo .mysql\_history, hemos descubierto una contraseña que podría ser válida para el usuario Tom. Al observar el resultado del comando sudo -l, vemos que nuestro usuario tiene permisos para ejecutar cualquier comando proporcionando una contraseña. Procedamos a ejecutar el comando sudo su con el fin de obtener acceso a la cuenta de root.

<figure><img src="/files/sqX8pGzcFNbvdOzmjt4p" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/sfFbykpxAgBK6EcZ2lZp" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/lIA3ur87LMNTQVAzqf6K" alt=""><figcaption></figcaption></figure>

Y ya tendríamos acabada la máquina Funbox Rookie.&#x20;

{% embed url="<https://youtu.be/SNLB4MZT4Xg>" %}
