> For the complete documentation index, see [llms.txt](https://propus.gitbook.io/hackbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://propus.gitbook.io/hackbook/writeups/dockerlabs/winterfell.md).

# 🟩 Winterfell

🧠Dificultad: Fácil | 🔓25/02/2026

## 🕵️ Reconocimiento

Comenzamos con un escaneo de puertos con `nmap`:

```bash
nmap -sC -sV -Pn $IPTARGET | tee nmap
```

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FTpF7poxu9nAKv7RWCOwL%2Fimage.png?alt=media&amp;token=b04e7552-e5ee-40f1-9d08-7ca6df3c4e90" alt=""><figcaption></figcaption></figure>

Vemos abiertos dos sambas, un servicio web y el puerto SSH. Realizamos un escaneo de directorios sobre el servicio web con `ffuf`:

```bash
ffuf -w /usr/share/wordlists/SecLists-2025.2/Discovery/Web-Content/directory-list-2.3-medium.txt:FUZZ -u "http://$IPTARGET/FUZZ" -e .html,.php,.txt,.xml,.js
```

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FEhPPmW7qyq01hyqJETOD%2Fimage.png?alt=media&amp;token=77451813-9f26-4fb9-b3e2-5f8b3831f5d8" alt=""><figcaption></figcaption></figure>

Si nos vamos al directorio `dragon`, encontramos un directory listing. En él vemos un fichero que contiene una posible lista de contraseñas.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F1Pokd078Uob8yQLDVOis%2Fimage.png?alt=media&amp;token=d569b683-14b8-4a32-820d-6b655be407ac" alt=""><figcaption></figcaption></figure>

Con `crackmapexec` podemos enumerar los usuarios del samba.

```bash
crackmapexec smb 172.17.0.2 --users
```

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FKjeFSabO6GdeqNqNYfw6%2Fimage.png?alt=media&amp;token=5d9e135d-5696-4b0c-b751-1ee9dacb6bee" alt=""><figcaption></figcaption></figure>

## 🚪 Ganando acceso

Una vez tenemos el usuario del samba (`jon`), podemos hacer una ataque de diccionario para conseguir las credenciales.

```bash
crackmapexec smb 172.17.0.2 -u users.txt -p passwords.txt
```

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2Fwlzhz7X8LYruY2yD1gdn%2Fimage.png?alt=media&amp;token=144391db-5a5f-4821-915c-4fa9a4799958" alt=""><figcaption></figcaption></figure>

La combinación correcta es `jon:seacercaelinvierno`. Usamos esta información para ganar acceso al samba. Dentro podemos ver un fichero llamado `proteccion_del_reino`. Nos lo llevamos a nuestra máquina y lo leemos.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FBnnVCOTV8v90HiyANaC0%2Fimage.png?alt=media&amp;token=8a86cdae-23d6-43a8-951c-a13a8707c337" alt=""><figcaption></figcaption></figure>

Como se ve a continuación, el fichero menciona una contraseña cifrada. Como termina con un símbolo `=`, se puede deducir que está cifrada en base64, así que podemos descifrarla fácilmente.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FgyBwUsNN0oKFFHOVkwFl%2Fimage.png?alt=media&amp;token=c22322f9-8996-4bf8-b506-b6a00ec8917d" alt=""><figcaption></figcaption></figure>

Con esta contraseña podemos acceder por SSH con el usuario `jon` y obtener acceso directo a la máquina.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FLNY3X8ZQuCSWJ8pLdZwN%2Fimage.png?alt=media&amp;token=468397d8-d40c-4d41-a49d-e3ee50555672" alt=""><figcaption></figcaption></figure>

## 💥 Escalada de privilegios

Una vez dentro del sistema como `jon`, vemos un mensaje en su carpeta personal.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FOzgd6lRB6yPPHM96nWK4%2Fimage.png?alt=media&amp;token=b47495ca-bed5-461e-8f17-4e1af9f79675" alt=""><figcaption></figcaption></figure>

Si revisamos los permisos que tenemos con `sudo`, vemos el script del que se habla en el mensaje. Podemos ejecutarlo como el usuario `aria` sin necesidad de introducir contraseña. El programa es el siguiente.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F0X6uhPGW9gkiyFh0QLn0%2Fimage.png?alt=media&amp;token=f0278a30-3671-4b57-b8dc-1ab2e6561230" alt=""><figcaption></figcaption></figure>

Sobre este programa no tenemos permisos de escritura (no podemos modificarlo), así que tenemos que recurrir a otro método: library hijacking. Podemos secuestrar una librería usada en el programa para que una función determinada (en mi caso, la función `getuser()`) haga lo que queramos.

Vamos a hacer que la función ejecute `/bin/bash` para poder introducir comandos.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2Fx5z8GMEdZtJiHe3y1SOL%2Fimage.png?alt=media&amp;token=a53e4e6f-c778-46a2-a5e4-dd6710915806" alt=""><figcaption></figcaption></figure>

Una vez hecho esto, conseguiríamos una shell como `aria`.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FgQCPyTdQJmybuwkEo4WG%2Fimage.png?alt=media&amp;token=012d8e08-6657-45ac-98ef-b59c22fd673f" alt=""><figcaption></figcaption></figure>

De nuevo, vemos los permisos que tenemos con `sudo`, pero esta vez para el usuario `aria`.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FYq8l6ZBB6uAQmqFDyZsG%2Fimage.png?alt=media&amp;token=775b8f32-7b82-44fa-ba41-780372b9f223" alt=""><figcaption></figcaption></figure>

Podemos listar cualquier directorio y leer cualquier fichero como el usuario `daenerys`. Aprovechamos esto para leer directamente lo que haya en el directorio personal de este usuario.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F1zWO9b3LrQUGkvB5NtiP%2Fimage.png?alt=media&amp;token=dfb12f6b-5d1e-4711-82f5-dda7256eda55" alt=""><figcaption></figcaption></figure>

La contraseña de `daeneris` es `drakaris` (xd).

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FBqdvrPfG41tA2djGqEtA%2Fimage.png?alt=media&amp;token=b9585226-dfad-4af8-9cee-7637c75700f9" alt=""><figcaption></figcaption></figure>

Vamos a revisar esta vez los permisos con `sudo` del usuario `daenerys`.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FlCsiYaz4YboaseI6pWwL%2Fimage.png?alt=media&amp;token=69236115-ed8c-4455-b12f-808eeaec4689" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2Fj4jLyTMKQwKTB4C2kpv6%2Fimage.png?alt=media&amp;token=e831a6e3-8239-4ab9-9176-3ef28c4571b2" alt=""><figcaption></figcaption></figure>

Podemos ejecutar `/usr/bin/bash /home/daenerys/.secret/.shell.sh` directamente como `root` sin contraseña. Además, podemos modificar el script, aunque el trabajo nos lo han dado casi hecho porque es una reverse shell. Simplemente cambiamos la IP y el puerto al de nuestra máquina, ejecutamos el script con `sudo`, y obtenemos una shell como `root`.

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FUZrimEA7M5RPQOm9PUO1%2Fimage.png?alt=media&amp;token=0a45f10c-4f15-42db-95a4-d16f7ccd6850" alt=""><figcaption></figcaption></figure>

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F7F62855t5wvUSsvV3C6F%2Fimage.png?alt=media&amp;token=b9f6f2c3-c035-47df-899e-6894c98b0cae" alt=""><figcaption></figcaption></figure>
