> For the complete documentation index, see [llms.txt](https://hacking-3.gitbook.io/barre/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-3.gitbook.io/barre/write-up/dockerlabs/medio/inj3ct0rs.md).

# Inj3ct0rs

## Maquina

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

## Reconocimiento

### Nmap

```bash
sudo nmap -p- --open -sSCV --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oN nmap.txt
```

```
PORT   STATE SERVICE REASON         VERSION
22/tcp open  ssh     syn-ack ttl 64 OpenSSH 9.6p1 Ubuntu 3ubuntu13.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 fd:f8:90:30:73:b2:51:20:2d:cb:7a:77:67:69:dc:e5 (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBExyKJmqP02QSpyCbDMVK8cvWcsJmAHf2WEyjBSElOMDSrdK7mawGufQtAKuf6aCZGWjM8HtOa++iu47gY/224g=
|   256 ad:54:3f:1a:45:7c:b5:97:fb:5b:a8:fb:63:1d:1d:0b (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAxCKvhvk5MXJSo9kabqvQHsuRDOnSE0M+Z6El2r9+4X
80/tcp open  http    syn-ack ttl 64 Apache httpd 2.4.58 ((Ubuntu))
|_http-title: Inj3ct0rs CTF - P\xC3\xA1gina Principal
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.4.58 (Ubuntu)
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
```

### Web

Si entra a la web veremos una pagina de inicio que nos da la bienvenida, lo único que tiene es un botón de inicio de sesión y otro de registrarse

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

Si probamos una simple sql injection en el panel de inicio de sesión nos dará un error, el cual nos indica el tipo de consulta que realiza este login a la base de datos

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

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

Si nos fijamos en el directorio vemos como hay una ruta antes del error&#x20;

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

Me llama la atención el archivo de `welcome.php`

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

Podemos acceder sin necesidad de hacer login, pero no podemos hacer mucho mas, por lo que voy a usar sqlmap para ver que mas puedo sacar

Pero primero tenemos que interceptar el login con burpsuite para pasárselo a sqlmap

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

## Explotación

### Sqlmap

```bash
sqlmap -r peticion.txt --users 
```

{% hint style="info" %}
Sacamos los usuarios
{% endhint %}

<figure><img src="/files/5CHsOH65YiewSVLOoPY7" alt=""><figcaption></figcaption></figure>

```bash
sqlmap -r peticion.txt --dbs
```

{% hint style="info" %}
Sacamos las bases de datos
{% endhint %}

<figure><img src="/files/2Jj3luMVIw47Q4zHB55N" alt=""><figcaption></figcaption></figure>

<pre class="language-bash"><code class="lang-bash"><strong>sqlmap -r peticion.txt --dump -D injectors_db
</strong></code></pre>

{% hint style="info" %}
Sacamos toda la base de datos
{% endhint %}

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

En este caso son los usuarios que tienen acceso a la web, aunque lo que nos interesa de aquí es la password `no_mirar_en_este_directorio`, que tras un rato de pensar descubro que es un directorio de la web que contiene un .zip

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

### John The Ripper

No podemos descomprimirlos por lo que sacamos su hash con `zip2john` para pasarlo por [John The Ripper](/barre/apuntes/red-team/tools/john-the-reaper.md) y así sacar la contraseña de este .zip

```bash
zip2john secret.zip > zip.hash
```

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

Ahora ya podemos descomprimir el .zip y ver su el contenido de `confidencial.txt`, consiguiendo así las credenciales para entrar por ssh

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

## Escalado de privilegios

Miramos los permisos de este usuario

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

Podemos ejecutar todo lo que este en el directorio `/nothing`

Si seguimos mirando que más tiene este usuario encontraremos un archivo `.bash_history`, esta bien mirarlo por si tuviera algo interesante, en este caso nos aligera la búsqueda, ya que **contiene el comando que usaremos** para cambiar de usuario.

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

Miramos los permisos de este otro usuario

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

Podemos ejecutar el comando `cat` como sudo

Miramos que más tiene, y encontramos su contraseña

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

Con permisos de sudo con `cat` una de las cosas que se puede hacer es **leer el contenido de la clave privada de ssh de root para poder usarla**

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

Copiamos el contenido de la clave privada de root y nos conectamos por ssh, de esta forma ya seremos root

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

## Conclusión

Una maquina muy completa, con un buen apartado de inyección sql y una buena implementación del escalado de privilegios
