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

# Injection

## Identificación

### Escaneo de puertos

Empezamos escaneando los puertos abiertos del servidor con el comando `nmap`

```bash
sudo nmap -p- -sS -sV -sC --open --min-rate=5000 -n -Pn 172.17.0.2
```

Con el comando `nmap` es el comando de escaneo de redes.\
El parámetro `-p-` indica que se escaneen todos los puertos disponibles.\
El parámetro `-sS` hace que sea un escaneo más sigiloso para no ser detectado.\
El parámetro `-sV` hace que se determine la versión del servicio de cada puerto.\
El parámetro `-sC` hace que nmap ejecute scripts para la recolección de información.\
El parámetro `--open` muestra todos los puertos que estén abiertos.\
El parámetro `--min-rate=5000` establece la tasa mínima de paquetes enviados por segundo, por lo que hace un escaneo más rápido.\
El parámetro `-n` indica que no realice la resolución de nombres DNS, sirve para acelerar el escaneo.\
El parámetro `-Pn` hace que no haga ping antes de escanear.

```
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 72:1f:e1:92:70:3f:21:a2:0a:c6:a6:0e:b8:a2:aa:d5 (ECDSA)
|_  256 8f:3a:cd:fc:03:26:ad:49:4a:6c:a1:89:39:f9:7c:22 (ED25519)
80/tcp open  http    Apache httpd 2.4.52 ((Ubuntu))
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-server-header: Apache/2.4.52 (Ubuntu)
|_http-title: Iniciar Sesi\xC3\xB3n
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
```

Como vemos en el texto nos detectó el puerto 22 y el 80 abierto.\
El puerto **22** es el puerto ssh en el que corre la versión OpenSSH 8.9p1 de 3ubuntu0.6.\
El puerto **80** es el puerto http en el que corre la versión Apache httpd 2.4.52 de Ubuntu.

Y como pusimos el parámetro -sC en el comando nos sale mas información como el título del sitio.

### Descubrimiento de la vulnerabilidad

El puerto 22 no parece vulnerable, ya que es una versión algo actualizada.

En el puerto 80 he abierto el navegador de internet en el que me he encontrado un panel de inicio de sesión.

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

Después probé lo básico de inyecciónes SQL en el panel de iniciar sesión comentando el resto del código SQL.

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

Y después de poner lo que sea en la contraseña porque es requerido, me dejó entrar.\
Y al entrar pude ver que había un usuario llamado **Dylan** con la contraseña `KJSDFG789FGSDF78` .

Por lo que abrí una consola y accedí por SSH con el usuario Dylan.

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

Después ya con el usuario Dylan buscamos binarios con permisos SUID con el siguiente comando:

```
find / -perm -4000 -user root 2>/dev/null
```

## Escalada de privilegios

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

Ahí en los vinarios encontramos el "env" por lo que podemos escalar privilegios.

Por lo que ejecutando desde la raíz el siguiente comando obtenemos privilegios como usuario root.

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

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