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

# Injection

## Alternativas

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

**Formato pdf:**&#x20;

{% @github-files/github-code-block url="<https://github.com/RedShenlong/DockerLabs/blob/36a2bb395d170f2df0f29ab930130e345c074031/Muy_Facil/Injection.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/mhiJvNFrmJ0z0I6285Ul" 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/SQ3EbotNh9DbW5Zl5Ei1" alt=""><figcaption></figcaption></figure>

Vemos un formulario de login y, como parece ser vulnerable, probaremos con una inyección SQL: `user' OR 1=1-- -`\
En user ponemos esto y en password cualquier cosa, ya que `-- -` hace que se ignore la contraseña.

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

Al iniciar sesión, aparece un mensaje que muestra el nombre de usuario y la contraseña.

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

Volvemos a la terminar y nos conectamos usando `ssh dylan@172.17.0.2` e ingresamos la contraseña

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

con el comando whoami aparece que usario somos por lo que vemos que no somos root , habrá que 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 
```

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

Para encontrar las vulnerabilidades recomiendo  esta pagina: <https://gtfobins.github.io/>

Y por ejemplo si buscamos el binario env nos aparece la opcion de SUID&#x20;

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

Nos aparece el comando a usar para escalar privilegios

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

Solo necesitamos modificarlo un poco: copiamos la ruta del binario `env` que vimos antes y luego separamos el comando de esta forma:

```
/usr/bin/env /bin/sh -p
```

![](/files/p26M2BvMfjW1pj72jwIS)

Y ya somos usuario root.
