> 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/hedgehog.md).

# 🟦 Hedgehog

🧠Dificultad: Muy fácil | 🔓28/07/2025

## 🕵️ Reconocimiento

Comenzamos con un escaneo de puertos usando `nmap` :

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FzheqIuz8akZ9PuRQJzkZ%2Fimage.png?alt=media&amp;token=2af8480a-0adb-41ba-a444-62fdc01b5047" alt=""><figcaption></figcaption></figure>

Si accedemos a la página que aloja el servidor desde el navegador, nos muestra un simple mensaje en texto plano:

```
tails
```

Aparentemente no nos dice nada, pero puede ser un nombre de usuario de otro servicio de la máquina, como el `ssh`.

El escaneo de directorios no nos muestra nada relevante (solo el directorio `server-status` que da un `403` ).

## 🚪 Ganando acceso

Al probar a hacer fuerza bruta al servicio `ssh` con `rockyou.txt` con el usuario `tails` , no obtenemos nada, algo que parece raro. El nombre de usuario me recordó al comando en linux `tail` que muestra la últimas líneas de un fichero. Intentando hacer fuerza bruta con las últimas 100 líneas del `rockyou.txt` , no he conseguido nada. Por ello, para no estar probando con `n` líneas cada vez, podemos generar una wordlist revertida de la que hayamos escogido. Con el comando `tac` (`cat` al revés) podemos leer las líneas de un fichero al revés:

```bash
tac /usr/share/wordlists/rockyou.txt > reversed_rockyou.txt
```

También nos damos cuenta que, especialmente, en las últimas líneas del `rockyou` hay muchas líneas con espacios seguidos de la contraseña, por lo que eliminaremos dichos espacios:

<div align="left"><figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FVtGFCc4owULoeHMVfEd5%2Fimage.png?alt=media&amp;token=81288fbc-8f19-47bb-8e03-ba95c6c842e9" alt=""><figcaption></figcaption></figure></div>

```bash
tr -d ' ' < reversed_rockyou.txt > reversed_filtered_rockyou.txt
```

<div align="left"><figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FeSstlsvd6OtKrKd6RqSt%2Fimage.png?alt=media&amp;token=cde889ee-1125-45e1-98ab-4520c1b4ae1a" alt=""><figcaption></figcaption></figure></div>

Ahora sí, probamos la wordlist con `hydra`:

```bash
hydra -l tails -P reversed_filtered_rockyou.txt ssh://$IPTARGET
```

<figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2F9aT2NATIcxA1dcTuxh5T%2Fimage.png?alt=media&amp;token=a7dd7de9-c98f-4bc5-a32c-7d6fc7628cb1" alt=""><figcaption></figcaption></figure>

## 💥 Escalando privilegios

Vemos con `sudo -l` que tenemos permisos para ejecutar cualquier binario como el usuario `sonic` sin necesidad de contraseña:

<div align="left"><figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FTuE3lX2VLfDB9FxBUnJ5%2Fimage.png?alt=media&amp;token=54bb7d9b-23c6-4e45-8d26-1e14aa246082" alt=""><figcaption></figcaption></figure></div>

Así que podemos abrir un `bash`:

<div align="left"><figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FY56dAJmoUC1pzDPymf77%2Fimage.png?alt=media&amp;token=6cbe7d77-3cc1-4d2a-899e-fcd006d039db" alt=""><figcaption></figcaption></figure></div>

Con el usuario `sonic`, tenemos permisos para ejecutar todos los binarios como `root` sin necesidad de contraseña, así que iniciamos otra sesión en `bash`:

<div align="left"><figure><img src="https://3832202623-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhaHYQaFsZAHOyVtSUS1x%2Fuploads%2FOF3vADAEXz8VumhnYKYx%2Fimage.png?alt=media&amp;token=e6c5f215-1472-46cf-96f1-070d81f898b2" alt=""><figcaption></figcaption></figure></div>
