> 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

### 🔍 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="/files/DLaK8xQV4dbC9sBkizRS" 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.

![](/files/puUOdgX7wSITFK6MquD3)

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="/files/Rn0SKR4ZjBdbkDkjasGO" 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**.

![](/files/Xnqqq8TMB7d6Dbho2ttU)

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="/files/Nq3jH9nTvZLI6q4KaiyY" 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
```

![](/files/F3iXz53fkSaJV4FQT3jH)

![](/files/tvEtTdGoCyhpoOZO34Po)

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="/files/4YUm8736Jj1tqrb7bYRN" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/JMeVN3GToxynynpupYAc" 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**.

![](/files/lsIkX5Z2c1NPPBvZOBWu)

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.

![](/files/rvap84GFWgnFWDTt7JlQ)

<figure><img src="/files/2Np9ZZxe6s0HJTt4KVCr" 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**.

![](/files/nXIjvdGNEmnRch8kAQQH)

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="/files/fAxM13kN1oZylFMbGLEy" alt=""><figcaption></figcaption></figure>

![](/files/kRZ1zCgk8z1W4WMkJ9la)

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.

![](/files/ZcoI7tpXN8FCIYdbNhoi)

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

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