hacktricks/network-services-pentesting/pentesting-web/put-method-webdav.md

135 lines
7.5 KiB
Markdown
Raw Normal View History

2022-05-01 13:25:53 +00:00
# WebDav
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
2022-09-01 23:40:55 +00:00
\
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=put-method-webdav) para construir e **automatizar fluxos de trabalho** facilmente com as **ferramentas** da comunidade **mais avançadas** do mundo.\
Acesse hoje:
2022-09-01 23:40:55 +00:00
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=put-method-webdav" %}
2022-09-01 23:40:55 +00:00
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
{% endhint %}
2022-04-28 16:01:33 +00:00
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**, sendo o [**bruteforce WebDav**](../../generic-methodologies-and-resources/brute-force.md#http-basic-auth) 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.
2022-05-01 13:25:53 +00:00
## 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://<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
```
![](<../../.gitbook/assets/image (851).png>)
Isso não significa que **.txt** e **.html extensions estão sendo executadas**. Isso significa que você pode **acessar esses arquivos** através da web.
## Cadaver
Você pode usar essa ferramenta para **conectar ao servidor WebDav** e realizar ações (como **upload**, **mover** ou **deletar**) **manualmente**.
```
cadaver <IP>
```
## Requisição PUT
```
curl -T 'shell.txt' 'http://$ip'
```
## Solicitação MOVE
```
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
```
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
2023-08-29 18:57:50 +00:00
\
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=put-method-webdav) para construir e **automatizar fluxos de trabalho** facilmente com as **ferramentas** da comunidade **mais avançadas** do mundo.\
Acesse hoje:
2022-09-01 23:40:55 +00:00
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=put-method-webdav" %}
2022-09-01 23:40:55 +00:00
## Vulnerabilidade do IIS5/6 WebDav
Essa 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 esqueça o ";"**).
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).
![](<../../.gitbook/assets/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
<Directory /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. Essas 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 <USERNAME> #You will be prompted for the password
```
Para verificar se as novas credenciais estão funcionando, você pode fazer:
```bash
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
```
## Referências
* [https://vk9-sec.com/exploiting-webdav/](https://vk9-sec.com/exploiting-webdav/)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
<summary>Suporte ao HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
</details>
{% endhint %}
2022-09-01 23:40:55 +00:00
<figure><img src="../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
2022-09-01 23:40:55 +00:00
\
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=put-method-webdav) para construir e **automatizar fluxos de trabalho** facilmente, impulsionados pelas **ferramentas** comunitárias **mais avançadas** do mundo.\
Obtenha Acesso Hoje:
2022-09-01 23:40:55 +00:00
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=put-method-webdav" %}