> For the complete documentation index, see [llms.txt](https://shinki-organization.gitbook.io/dw/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shinki-organization.gitbook.io/dw/write-ups/quickstart/maquinas-medio/stranger-write-up.md).

# Stranger write-up

## **Verificamos conexión con la máquina víctima**

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

## **Escaneo de puertos abiertos y explotación de vulnerabilidades**

Utilizamos **Nmap** para escanear los puertos abiertos de la máquina víctima con el siguiente comando:

```bash
sudo nmap -p- -sCVS --min-rate=5000 -vvv -Pn -n -O 172.17.0.2
```

<figure><img src="/files/80w5O74aHIHJoLLfUd09" alt=""><figcaption></figcaption></figure>

El escaneo indica que el puerto 21 (FTP), 22 (SSH) y 80 (HTTP) están abiertos. Así que vamos a ingresar la IP de la máquina víctima en el navegador.

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

Observamos a un posible usuario llamado `mwheeler`, pero como no es suficiente utilizaremos la herramienta **Gobuster** para enumerar rutas ocultas con el siguiente comando:

```bash
gobuster dir -u http://172.17.0.2/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -x txt,html,php,py,bak
```

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

Esto revela el directorio `strange`, así que ahora enumeraremos el directorio con **Gobuster**:

```bash
gobuster dir -u http://172.17.0.2/strange -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -x txt,html,php,py,bak
```

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

Esto indica la existencia del archivo `/private.txt` y `/secret.html`. Así que ingresamos primero la ruta <http://172.17.0.2/strange/secret.html> en el navegador y observamos lo siguiente:

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

Esto indica un usuario del servicio FTP, el cual es `admin`, y además indica también que su contraseña esta en el rockyou, por lo tanto haremos un ataque de fuerza bruta con ayuda de Hydra. Para ello ejecutamos lo siguiente:

```bash
hydra -l admin  -P ../rockyou.txt ftp://172.17.0.2 -V -I -u -t 64
```

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

Esto revela que la contraseña del usuario `admin` es `banana`. Así que iniciamos sesión y encontramos con lo siguiente:

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

Encontramos el archivo llamado `private_key.pem`, así que lo descargamos.

```bash
get private_key.pem
```

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

Ahora inspeccionaremos el archivo `/private.txt` ingresando la ruta <http://172.17.0.2/strange/privete.txt> en el navegador. Esto descargará el archivo, pero al imprimir su contenido observamos lo siguiente:

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

Esto significa que está encriptado, por lo tanto vamos a intentaremos desencriptarla con la clave que obtuvimos del servio FTP de la siguiente manera:

```bash
openssl pkeyutl -decrypt -inkey private_key.pem -in private.txt -out sorpresita_desencriptada.txt
```

Esto devuelve el archivo `sorpresita_desencriptada.txt`, la cual contiene lo siguiente:

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

Esto revela una posible contraseña del servicio SSH, así que intentamos iniciar sesión con las credenciales `mwheeler:demogorgon`.

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

Una vez dentro, observamos que dentro de la máquina víctima está el usuario `admin`, así que vamos a iniciar sesión con la mismo contraseña que utilizaba en el servicio FTP, la cual sería `banana`.

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

Una vez que somos el usuario `admin`, ejecutamos el comando `sudo -l`, el cual indica que podemos ejecutar todos los comandos como cualquier usuario.

<figure><img src="/files/6BsPWk0zUvAUZCNVNbpt" alt=""><figcaption></figcaption></figure>

Por lo que podemos ejecutar el comando `sudo su` para iniciar sesión como usuario `root`.

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