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

# Trust

## Identificación

Para la identificación empezamos con un escaneo de puertos.

### Escaneo de puertos

Empezamos con el siguiente comando de `nmap` para escanear los puertos abiertos:

```bash
sudo nmap -p- -sS -sV -sC --open --min-rate=5000 -n -Pn 172.18.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.

<figure><img src="/files/dkUrM6ug5gJyN6n60MZa" alt=""><figcaption><p>Resultado de NMAP</p></figcaption></figure>

En el resultado de Nmap nos da dos puertos:\
**22**, que es ssh que corre OpenSSH 9.2p1 en Debian\
**80**, que es http que corre Apache httpd 2.4.57

### Descubrimiento de la vulnerabilidad

Para descubrir la vulnerabilidad he visto el puerto **80** en el que estaba la página por defecto del servicio de Apache2.

<figure><img src="/files/YQh0mYl2z4KjF9Wtdcx9" alt=""><figcaption><p>Página principal de apache</p></figcaption></figure>

Entonces voy a realizar un escaneo de directorios con el comando `gobuster`.

```bash
sudo gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-small.txt -u "http://172.18.0.2/" -x .php,.sh,.html,.txt,.py,.xml
```

Con ese comando buscamos de la lista de directorios tambien con archivos con formato `.php .sh .html .txt .py .xml`&#x20;

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

Encontramos el archivo `secret.php` , por lo que accedemos a el por el navegador web:

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

Ya sabemos que un usuario puede ser `Mario`.

Por lo que hacemos un ataque de hydra para intentar descifrar la contraseña.\
Para hacerla usamos el comando hydra de la siguiente manera indicando con el parametro `-P` el listado de contraseñas, y con el parámetro `-l` el nombre de usuario.

```bash
sudo hydra -l mario -P /usr/share/wordlists/rockyou.txt ssh://172.18.0.2
```

<figure><img src="/files/qGzcUS8fvEBdojxp2q5o" alt=""><figcaption><p>Imagen de ataque de hydra</p></figcaption></figure>

Al completar el ataque vemos que se muestra el usuario Mario con la contraseña chocolate.

Y así podemos acceder por **ssh** al servidor.

<figure><img src="/files/duozqxtNtrn4c7o9KUQy" alt=""><figcaption><p>Imagen de conexión ssh realizada</p></figcaption></figure>

## Escalada de privilegios

Para la escalada de privilegios ejecutamos `sudo -l` para ver los permisos que tiene y los comandos que puede ejecutar con permisos elevados.

<figure><img src="/files/WgMXH6sRfKs9wZqlHH55" alt=""><figcaption><p>Imagen de <code>sudo -l</code></p></figcaption></figure>

Al comprobar, el usuario Mario puede ejecutar /usr/bin/vim con todos los permisos, por lo que es un método fácil de escalar los privilegios.

Para eso buscamos en [GTFOBins](https://gtfobins.github.io/), y encontramos el siguiente comando para ejecutar y así escalar los privilegios:

```bash
sudo vim -c ':!/bin/sh'
```

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

Y así logramos estar en el usuario root en el servidor.
