> 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/vacaciones.md).

# Vacaciones

## Alternativas

**Formato Video:**

{% embed url="<https://youtu.be/4wEdV7Wnrc0?si=OYj4nWD4jCUJNgi8>" %}

**Formato pdf:**&#x20;

{% @github-files/github-code-block url="<https://github.com/RedShenlong/DockerLabs/blob/5248f93d82e040d298ab8926eff4224a5b612891/Muy_Facil/Vacaciones.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/aC5Pq9q7R9jvh3JfXDIC" alt=""><figcaption></figcaption></figure>

el puerto 22 corre un openSSH en un version <7.7 pero no se puede enumerar los usuarios con metasploit por lo que al tener el puerto 80 nos inidica que hay una pagina wed

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

La pagina no nos dice nada por lo que intento buscar subdominios ocultos con gobuster pero no encuentra nada, por lo que me quedaría mirar el codigo fuente de la pagina

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

Dos posibles usuarios podrían ser juan o camilo por lo que intentamos sacar la contraseña de los dos por fuerza bruta utilizando  hydra y este solo nos encuentra la contraseña de camilo.

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

Nos contectamos por el puerto ssh con el siguiente comando : `ssh camilo@172.17.0.2` y vemos que no somos root así que habrá que escalar privilegios.&#x20;

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`

No encontramos ningún binario pero recordemos el mensaje de juan a camilo, decía que le había enviado un email por lo que vamos a la carpeta donde se encuentran los email: `cd /var/mail` entramos a la carpeta camilo y vemos un archivo `correo.txt` hacemos un cat para visualizarlo y tenemos que

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

Tenemos la contraseña de juan asi que nos conectaremos por ssh con: `ssh juan@172.17.0.2` y de la misma manera buscamos escalar privilegios con algun binario. con `sudo -l` encontramos el binario ruby,para encontrar las vulnerabilidades recomiendo  esta pagina: <https://gtfobins.github.io/>

En nuestro caso  buscamos el binario ruby nos aparece la opción de Sudo

<figure><img src="/files/4Ezw9PzkL1VQXnY45oRw" alt=""><figcaption></figcaption></figure>

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

Ahora simplemente copiamos y pegamos el comando:

```
sudo ruby -e 'exec "/bin/sh"' 
```

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

Y ya somos usuario root.
