> 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

Dificultad: Muy Fácil

## 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="https://2053676619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS7VnO1oTE9Y5yA5TGAUb%2Fuploads%2FQrehpoq2CzuwXUZQMVio%2Fa1.png?alt=media&amp;token=1a5fd997-23f2-4380-b016-baaa167dedea" 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="https://2053676619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS7VnO1oTE9Y5yA5TGAUb%2Fuploads%2Fa5T7PQlOCmQcmP3y3dQL%2Fa2.png?alt=media&amp;token=1013b9be-9299-4fc4-9909-428696edb747" 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="https://2053676619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS7VnO1oTE9Y5yA5TGAUb%2Fuploads%2FAHWifE08KyKq2Ge3RIAK%2Fa3.png?alt=media&amp;token=4c323d87-f1d5-4c01-9c90-86aa2f5b83bc" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2053676619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS7VnO1oTE9Y5yA5TGAUb%2Fuploads%2FQdFt20NNUz2DMaz04Ynv%2Fa4.png?alt=media&amp;token=fbc9db32-fe82-4183-b2c9-515b6fb14277" 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="https://2053676619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS7VnO1oTE9Y5yA5TGAUb%2Fuploads%2FpuEMEcrHHwS5gpg1JJh0%2Fa5.png?alt=media&amp;token=ab215d03-32e2-43bb-822a-ef0b110738d4" 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="https://2053676619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS7VnO1oTE9Y5yA5TGAUb%2Fuploads%2F5W7AQEeKWm5dkHgJkzEU%2Fa6.png?alt=media&amp;token=5943a637-47a7-4204-a50d-d4084e59a284" 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="https://2053676619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS7VnO1oTE9Y5yA5TGAUb%2Fuploads%2FrI9G9aD5iC3e05hhVNKi%2Fa7.png?alt=media&amp;token=22257b29-531a-4d95-bf34-433e9c93039f" 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="https://2053676619-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FS7VnO1oTE9Y5yA5TGAUb%2Fuploads%2FjITFLPnJ2znYKWi5xtiH%2Fa8.png?alt=media&amp;token=df1112b0-29d0-431e-92b2-ce135fbd6c95" alt=""><figcaption></figcaption></figure>

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