# Vacaciones

### 🔍 **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="/files/S8zHnBQZ5spwgUOw0ZeH" 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

![](/files/pkLmHzoGjYWa84CfIPCk)

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

### 🔎 **EXPLORACIÓN**

Se utiliza el comando:

```bash
sudo nmap -sCV -p22,80 -v 172.17.0.2
```

para obtener más información sobre esos puertos específicamente.

<figure><img src="/files/Q5AjeLVTJh4diL5IWJhM" 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 aparezca vacía.

![](/files/jtsCwciStGukRFj0tWkk)

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

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

Al parecer, hemos descubierto nombres que posiblemente sean los usuarios, por lo que intentaremos conectarnos a través de **SSH**.

### 🚀 **EXPLOTACIÓN**

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

```bash
hydra -l camilo -P /usr/share/wordlists/rockyou.txt ssh://172.17.0.2 -t 5
```

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**. Hemos probado varios usuarios, pero el que da respuesta es **camilo**.

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

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

```bash
ssh camilo@172.17.0.2
```

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

![](/files/SSupANZ2voLLDb2Dcwzc)

Como no somos **root**, debemos hacer una escalada de privilegios, pero antes revisaremos el correo que le envió **Juan** a **Camilo**.

![](/files/O9Wo0n8upHaSv5Ui66MT)

Por lo que **Juan** nos ha dado su contraseña, seguramente él sea un usuario del grupo **sudo**, por lo que nos conectaremos a él.

![](/files/4ippH3KC8Nh0ltiKaujt)

Observamos que podemos escalar privilegios con **ruby** usando el comando:

```bash
sudo /usr/bin/ruby -e 'exec "/bin/bash"'
```

Tras eso, ponemos:

```bash
whoami
```

y ya somos **root**.

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


---

# 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/dockerlabs/vacaciones.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.
