# Dawn

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

### Enumeración

#### Servicios abiertos

Comenzamos realizando un escaneo rápido de los servicios que tiene abiertos está máquina.

```
nmap -p- --open --min-rate 5000 -Pn -n -vvv 192.168.139.11
```

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

4 puertos abiertos. Vamos a realizar el escaneo profundo de estos servicios.&#x20;

```
nmap -p80,139,445,3306 -sVC -vvv 192.168.139.11

```

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

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

Servicios abiertos:

* Puerto 80 -> HTTP -> Apache httpd 2.4.38
* Puerto 139 -> SMB -> smbd 3.X - 4.X
* Puerto 445 -> SMB -> smbd 4.9.5
* Puerto 3306 -> MySQL -> MySQL 5.5.5-10.3.15-MariaDB

#### Enumeración Web

Comenzamos viendo el contenido del puerto 80 en el navegador Web.&#x20;

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

No contiene información interesante. Si abrimos el código fuente del sitio Web, támpoco hay información relevante.&#x20;

Seguimos con la enumeración de directorios.&#x20;

```
dirsearch -u "http://192.168.139.11/" -i200,301
```

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

Tenemos un directorio /logs.&#x20;

<figure><img src="/files/36GrKHIClzMLXKiD6X5p" alt=""><figcaption></figcaption></figure>

Vemos diversos archivos logs. De los 4 archivos solo tenemos permisos para ver el archivo "management.log". Abrimos el archivo.&#x20;

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

Tenemos un archivo de logs. Vemos algunas ejecuciones de archivos que pueden ser interesantes pero de momento, nada concluyente.&#x20;

#### SMB (puerto 139 y 445)

Vamos a comenzar la enumeración de SMB con enum4linux.&#x20;

```
enum4linux 192.168.139.11
```

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

<figure><img src="/files/9WC4hUct6cKhVlDnVaLm" alt=""><figcaption></figcaption></figure>

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

Tenemos un posible directorio al que podemos acceder para ver su contenido.&#x20;

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

Y el nombre de dos usuarios de sistema.&#x20;

Vamos a ver el contenido del directorio /ITDEPT.

```
smbmap -H 192.168.139.11
```

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

En el directorio /ITDEPT, podemos hacer tareas de lectura y escritura.&#x20;

```
smbclient \\\\192.168.139.11\\ITDEPT
```

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

El directorio no contiene ningún archivo ni directorio. Pero podemos aprovechar que podemos escribir en el directorio para cargar archivos maliciosos en el sistema.&#x20;

Volvemos al archivo log que descargamos del sitio Web y vemos dos archivos que deberían estar ejecutándose en el directorio /ITDEPT pero que como vimos, no se encuentran en este directorio.&#x20;

### Explotación

¿Y si pudiésemos crear estos archivos para cargar una Shell maliciosa en el sistema? Vamos a ello. &#x20;

<figure><img src="/files/buNZJyAGa4sE2Yt9w1KM" alt=""><figcaption><p>Archivo web-control</p></figcaption></figure>

<figure><img src="/files/EVmKGu6Qaxu3N8T4oF8v" alt=""><figcaption><p>Archivo product-control</p></figcaption></figure>

Cargamos los dos archivos creados en el equipo objetivo a través utilizando los permisos de escritura que disponemos. Al mismo tiempo, colocamos dos oyentes nc en los puertos 1337 y 4444.&#x20;

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

Transcurrido 1 minuto, tendremos dos Shells reversas.

<figure><img src="/files/0qtevdX2SNVxPsPqb3UL" alt=""><figcaption><p>Shell como www-data</p></figcaption></figure>

<figure><img src="/files/xuP7gaRNqjlOuel4JOvy" alt=""><figcaption><p>Shell como usuario dawn</p></figcaption></figure>

Buscamos la flag de usuario de bajos privilegios.&#x20;

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

### Elevación de privilegios

#### Elevación de privilegios desde www-data

Comenzamos realizando las enumeraciones básicas para la búsqueda de puntos que nos permitan elevar privilegios.&#x20;

Comenzamos comprobando permisos de sudo en la terminal de www-data.

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

Nos permite ejecutar sudo sin contraseña. Vamos a intentar explotar esto.

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

Ya tendremos un usuario con privilegios elevados. Buscamos la flag de usuario con privilegios elevados.&#x20;

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

#### Elevación de privilegios desde el usuario "dawn"

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

Pero...

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

Necesitamos una password.&#x20;

Vamos a continuar enumerando los binarios SUID.

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

<figure><img src="/files/7YQgELIKYPI12wFb5149" alt=""><figcaption></figcaption></figure>

El binario zsh puede ser interesante. Vamos a ver si es útil para elevar privilegios. Consultamos [GTFOBins](https://gtfobins.github.io/gtfobins/zsh/#suid).&#x20;

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

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

Solo quedaría volver a buscar la flag proof.txt

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

Y ya estaría acabado el CTF Dawn de la plataforma Proving Grounds.

{% embed url="<https://youtu.be/s8SMN5RhqZ4>" %}


---

# 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/dawn.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.
