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

# Hedgehog

## Alternativas

**Formato Video:**&#x20;

{% embed url="<https://youtu.be/833uo6wSRb8?si=hwdBpTm4l_DcTowv>" %}

**Formato pdf:**&#x20;

{% @github-files/github-code-block url="<https://github.com/RedShenlong/DockerLabs/blob/b5a85b10d83cc7156b07f1f0decff30e7c276ac3/Muy_Facil/Hedgehog.pdf>" %}

## WriteUp

Una vez desplegada la maquina haremos un escaneo de puertos abiertos con nmap.

En mi casa utilizo el siguiente comando:

```
nmap -p- -sS -sC -sV --min-rate 5000 -n -vvv -Pn 172.17.0.2
```

* **`-p-`**: Escanea todos los puertos .
* **`-sS`**: Realiza un escaneo sigiloso (SYN Scan) para detectar puertos abiertos.
* **`-sC`**: Ejecuta scripts predeterminados para recopilar más información del sistema.
* **`-sV`**: Detecta las versiones de los servicios en ejecución.
* **`--min-rate 5000`**: Acelera el escaneo enviando al menos 5000 paquetes por segundo.
* **`-n`**: No realiza resolución DNS, trabaja directamente con direcciones IP.
* **`-vvv`**: Muestra información detallada y actualizaciones constantes durante el escaneo.
* **`-Pn`**: Salta el "ping" previo y fuerza el escaneo, incluso si el objetivo no responde.

una vez realizado el escaneo vemos que tenemos dos puertos abiertos

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

El puerto 22 tiene SSH, pero como su versión es alta, nos enfocaremos en el puerto 80, que tiene HTTP. Esto significa que si ponemos la IP en el navegador, nos llevará a una página web.

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

En la pagina wed solo nos aparece un nombre extraño por lo que supondre que se trata de un nombre de usuario asi que le realizaré un ataque de fuerza bruta con hydra utilizando el siguiente comando:&#x20;

```
hydra -l tails -P /usr/share/wordlists/rockyou.txt ssh://172.17.0.2
```

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

Después de un tiempo vemos como el ataque todavía no ha encontrado la contraseña.

Despúes de una pequeña investigación me doy cuenta que la palabra tail signfica extremo de cola en ingles por lo que el problema podria estar en que la contraseña esta al final del diccionario y por ende tardaríamos mucho en encontrar la contraseña. Una soluciòn a esto sería darle la vuelta al diccionario para que que empiece por el final con los siguiente comandos:

```
cp /usr/share/wordlists/rockyou.txt /home/kali
tac rockyou.txt >>invertido.txt
sed -i 's/ //g' invertido.txt
```

Y realizamos ahora el ataque de hydra con el nuevo diccionario

`hydra -l tails -P /home/kali/invertido.txt ssh://172.17.0.2`

```
hydra -l tails -P /home/kali/invertido.txt ssh://172.17.0.2
```

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

Ahora nos encuentra la contraseña rápido por lo que nos conectamos con:

```
ssh tails@172.17.0.2
```

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

Ya estamos dentro y con el comando `whoami` vemos que no somos root , habrá que escalar privilegios.

Una forma sencilla es buscar binarios SUID que podamos aprovechar para escalar privilegios con el comando :&#x20;

```
find / -perm -4000 2>/dev/null 
```

o binarios Sudo con `sudo -l`

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

No hemos encontrado ningun binario SUID para escalar privilegios pero al hacer `sudo -l` nos topamos con que el usuario sonic puede ejecturar cualquier comando por lo que nos cambiamos al usuario sonic con :               `sudo -u sonic /bin/bash` y cuando seamos sonic nos cambiamos a root con `sudo -u root /bin/bash`. ya somos root.
