# WebDav {{#include ../../banners/hacktricks-training.md}} Ao lidar com um **Servidor HTTP com WebDav** habilitado, é possível **manipular arquivos** se você tiver as **credenciais** corretas, geralmente verificadas através da **Autenticação Básica HTTP**. Ganhar controle sobre tal servidor muitas vezes envolve o **upload e execução de um webshell**. O acesso ao servidor WebDav normalmente requer **credenciais válidas**, com [**bruteforce WebDav**](../../generic-hacking/brute-force.md#http-basic-auth) sendo um método comum para adquiri-las. Para superar restrições em uploads de arquivos, especialmente aquelas que impedem a execução de scripts do lado do servidor, você pode: - **Fazer upload** de arquivos com **extensões executáveis** diretamente se não houver restrições. - **Renomear** arquivos não executáveis enviados (como .txt) para uma extensão executável. - **Copiar** arquivos não executáveis enviados, mudando sua extensão para uma que seja executável. ## DavTest **Davtest** tenta **fazer upload de vários arquivos com diferentes extensões** e **verifica** se a extensão é **executada**: ```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>) Isso não significa que **as extensões .txt e .html estão sendo executadas**. Isso significa que você pode **acessar esses arquivos** pela web. ## Cadaver Você pode usar essa ferramenta para **conectar ao servidor WebDav** e realizar ações (como **fazer upload**, **mover** ou **deletar**) **manualmente**. ``` cadaver ``` ## Solicitação PUT ``` curl -T 'shell.txt' 'http://$ip' ``` ## MOVE request ```bash curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt' ``` ## Vulnerabilidade do WebDav no IIS5/6 Esta vulnerabilidade é muito interessante. O **WebDav** **não permite** **carregar** ou **renomear** arquivos com a extensão **.asp**. Mas você pode **contornar** isso **adicionando** no final do nome **";.txt"** e o arquivo será **executado** como se fosse um arquivo .asp (você também poderia **usar ".html" em vez de ".txt"**, mas **NÃO se esqueça do ";"**). Então você pode **carregar** seu shell como um arquivo ".**txt"** e **copiá-lo/movê-lo para um arquivo ".asp;.txt"**. Ao acessar esse arquivo através do servidor web, ele será **executado** (o cadaver dirá que a ação de mover não funcionou, mas funcionou). ![](<../../images/image (1092).png>) ## Credenciais pós Se o Webdav estiver usando um servidor Apache, você deve verificar os sites configurados no Apache. Comumente:\ _**/etc/apache2/sites-enabled/000-default**_ Dentro dele você pode encontrar algo como: ``` ServerAdmin webmaster@localhost Alias /webdav /var/www/webdav DAV On AuthType Digest AuthName "webdav" AuthUserFile /etc/apache2/users.password Require valid-user ``` Como você pode ver, há os arquivos com as **credenciais** válidas para o servidor **webdav**: ``` /etc/apache2/users.password ``` Dentro deste tipo de arquivos, você encontrará o **username** e um **hash** da senha. Estas são as credenciais que o servidor webdav está usando para autenticar usuários. Você pode tentar **crack**-á-los, ou **adicionar mais** se por algum motivo você quiser **acessar** o servidor **webdav**: ```bash htpasswd /etc/apache2/users.password #You will be prompted for the password ``` Para verificar se as novas credenciais estão funcionando, você pode fazer: ```bash wget --user --ask-password http://domain/path/to/webdav/ -O - -q ``` ## Referências - [https://vk9-sec.com/exploiting-webdav/](https://vk9-sec.com/exploiting-webdav/) {{#include ../../banners/hacktricks-training.md}}