# Los 40 ladrones

### 🔍 **RECONOCIMIENTO**

En primer lugar, tras conectarnos a la máquina, utilizamos el comando:

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

para verificar la conectividad de red.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F1S9FW2gu2tBLw187hYxl%2Fimage.png?alt=media&#x26;token=2e7e69e3-913a-459c-a575-46479f716e4d" alt=""><figcaption></figcaption></figure>

A continuación, se realiza el comando:

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

para realizar un escaneo de puertos y servicios detallado en la dirección IP.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FeqPm6OeiqFAT8Uz3wxfP%2Fimage.png?alt=media&#x26;token=1b570cd2-1861-484c-b04c-88e183d519ba" alt=""><figcaption></figcaption></figure>

Como podemos observar durante el escaneo el puerto **80** perteneciente al servicio **HTTP** está abierto, por lo que se procederá a indagar más.

### 🔎 **EXPLORACIÓN**

Se utiliza el comando:

```bash
sudo nmap -sCV -p80 -v 172.17.0.2
```

para obtener más información sobre ese puerto específicamente.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FExNWroRMpZEA5qA5vCGa%2Fimage.png?alt=media&#x26;token=31d3dd64-7f0a-4103-86df-1317e2b1c2ea" alt=""><figcaption></figcaption></figure>

Seguimos indagando más sobre los puertos y ahora exploramos el servicio **HTTP**. Se ingresó la dirección IP en el navegador, lo que llevó a que la página web sobre la página por defecto Apache2.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F2Eke1nz5OefIdFDy0R1U%2Fimage.png?alt=media&#x26;token=a4520602-2e3e-4cd9-9e78-c887d25428f3" alt=""><figcaption></figcaption></figure>

De primeras, no se nos muestra nada, por lo que revisamos el código fuente por si hay alguna información oculta relevante pero no vemos nada.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FXj7pilHDlz5sd5ftBndE%2Fimage.png?alt=media&#x26;token=d11188e2-81fe-4293-94ac-1a4e27aef0c2" alt=""><figcaption></figcaption></figure>

Ahora buscaremos directorios con la herramienta **Gobuster** a través de:&#x20;

```bash
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,htm,php,txt,xml,js -u http://172.17.0.2
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FWPyBwsIll3uO7YGVTV66%2Fimage.png?alt=media&#x26;token=53805ef8-6611-4421-87c7-387c44886f08" alt=""><figcaption></figcaption></figure>

Hemos encontrado un archivo de texto llamado `qdefense.txt`. A continuación, procederemos a visualizar su contenido en la página web.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FdQiL4fEgJyB9iopwUpKx%2Fimage.png?alt=media&#x26;token=8230ce21-5cbf-492d-81ce-11a0bd821f09" alt=""><figcaption></figcaption></figure>

En el archivo `qdefense.txt` encontramos información relevante, como un posible usuario del sistema llamado "toctoc" y una serie de números que parecen corresponder a una secuencia de puertos (7000, 8000, 9000). Esta secuencia sugiere el uso de una técnica conocida como **port knocking**. En esta técnica, un firewall está configurado para abrir un puerto específico solo si se detecta una conexión en una secuencia de puertos predefinida.

Para llevar a cabo este ataque, utilizamos la herramienta `knock`. Dado que `knock` no está incluida por defecto en Kali Linux, primero debemos instalarla. Luego, ejecutamos el siguiente comando en la terminal para enviar la secuencia de puertos:

```bash
knock 172.17.0.2 7000 8000 9000
```

Para verificar si se ha abierto algún puerto adicional tras realizar el port knocking, volvemos a realizar un escaneo de puertos. Utilizamos `nmap` para este propósito. Aquí están los comandos para hacerlo:

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

Este comando escaneará todos los puertos de la dirección IP `172.17.0.2` para identificar cualquier puerto adicional que se haya abierto.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FCzo4v65IOcC5JZIS5wnn%2Fimage.png?alt=media&#x26;token=0af27513-2f66-499e-afca-7b4ab0d015c6" alt=""><figcaption></figcaption></figure>

Ahora que el puerto **SSH** (puerto 22) está abierto, podemos intentar obtener la contraseña del usuario **toctoc** utilizando un ataque de fuerza bruta con `Hydra`.

### 🚀 **EXPLOTACIÓN**

Con la información obtenida anteriormente, realizamos el comando:

```bash
hydra -l toctoc -P /usr/share/wordlists/rockyou.txt ssh://172.17.0.2 -f
```

que utiliza la herramienta **Hydra** para realizar un ataque de fuerza bruta contra el servicio **SSH** de una máquina con la IP **172.17.0.2**.&#x20;

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Fc7ITbCu3Sk6bLiN3CMkh%2Fimage.png?alt=media&#x26;token=fad39d02-020d-4a2d-8e01-43a6ebba6f58" alt=""><figcaption></figcaption></figure>

Al realizar el ataque de fuerza bruta, hemos descubierto el **usuario** de esa contraseña. Sabiendo esto, nos conectamos a través de **SSH** al usuario con el comando:

```bash
ssh toctoc@172.17.0.2
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FqilX774QKc88nd4zQ8bU%2Fimage.png?alt=media&#x26;token=3d6013bb-9638-4652-83e6-2408bbf8f021" alt=""><figcaption></figcaption></figure>

### 🔐 **PRIVILEGIOS**

Al estar dentro y ejecutar:

```bash
whoami
```

aún no somos **root**, por lo que hacemos:

```bash
sudo -l
```

para ver si hay algo para explotar.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FCM6UCenQ9LcSLwwScKZN%2Fimage.png?alt=media&#x26;token=cb6fca4f-6292-4b8e-ad72-742ac68c4d22" alt=""><figcaption></figcaption></figure>

Hemos encontrado dos archivos que podríamos utilizar para escalar privilegios y obtener acceso como usuario **root**. De estos, nos centraremos en `/opt/bash`, ya que parece simular el intérprete de comandos de Linux utilizado para interpretar el código introducido por el usuario en la línea de comandos.

Para ejecutarlo, escribimos el siguiente comando en la terminal:

```bash
sudo /opt/bash
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FtCIKzCkb0zJMhbjAsWIF%2Fimage.png?alt=media&#x26;token=9271e7ac-f6a3-4616-898d-3adb60e3ca3e" alt=""><figcaption></figcaption></figure>

Finalmente, hemos logrado obtener acceso como usuario **root**, lo que nos concede todos los privilegios disponibles en el sistema.
