mirror of
https://github.com/carlospolop/hacktricks
synced 2025-01-11 04:38:53 +00:00
185 lines
12 KiB
Markdown
185 lines
12 KiB
Markdown
# WebDav
|
|
|
|
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
\
|
|
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
|
Acesse hoje mesmo:
|
|
|
|
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? Ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
Um servidor **HTTP com WebDav** ativo é um servidor onde você provavelmente pode **atualizar, excluir, mover, copiar** arquivos. Às vezes, você precisa ter **credenciais válidas** (geralmente verifique com Autenticação Básica HTTP).
|
|
|
|
Você deve tentar **fazer upload** de algum **webshell** e **executá-lo** a partir do servidor web para assumir o controle do servidor.\
|
|
Normalmente, para **conectar** a um servidor WebDav, você precisará de **credenciais válidas**: [**WebDav bruteforce**](../../generic-methodologies-and-resources/brute-force.md#http-basic-auth) _(Autenticação Básica)_.
|
|
|
|
Outra configuração comum é **proibir o upload** de arquivos com **extensões** que serão **executadas** pelo servidor web, você deve verificar como **burlar isso:**
|
|
|
|
* **Fazer upload** de arquivos com **extensões executáveis** (talvez não seja proibido).
|
|
* **Fazer upload** de arquivos **sem extensões executáveis** (como .txt) e tentar **renomear** o arquivo (mover) com uma **extensão executável**.
|
|
* **Fazer upload** de arquivos **sem extensões executáveis** (como .txt) e tentar **copiar** o arquivo (mover) com **extensão 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://<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
|
|
```
|
|
Saída de exemplo:
|
|
|
|
![](<../../.gitbook/assets/image (19) (1).png>)
|
|
|
|
Isso não significa que as extensões **.txt** e **.html estão sendo executadas**. Isso significa que você pode **acessar esses arquivos** através da web.
|
|
|
|
## Cadaver
|
|
|
|
Você pode usar essa ferramenta para **conectar-se ao servidor WebDav** e realizar ações (como **upload**, **mover** ou **excluir**) **manualmente**.
|
|
```
|
|
cadaver <IP>
|
|
```
|
|
## Pedido PUT
|
|
|
|
The PUT method is used to update or create a resource on a server. In the context of web applications, it is commonly used to upload files or modify existing data.
|
|
|
|
O método PUT é usado para atualizar ou criar um recurso em um servidor. No contexto de aplicações web, é comumente usado para fazer upload de arquivos ou modificar dados existentes.
|
|
|
|
### WebDAV and PUT
|
|
|
|
WebDAV (Web Distributed Authoring and Versioning) is an extension of the HTTP protocol that allows for more advanced file management capabilities. One of the features provided by WebDAV is the ability to use the PUT method to upload files to a server.
|
|
|
|
WebDAV (Web Distributed Authoring and Versioning) é uma extensão do protocolo HTTP que permite recursos avançados de gerenciamento de arquivos. Uma das funcionalidades fornecidas pelo WebDAV é a capacidade de usar o método PUT para fazer upload de arquivos para um servidor.
|
|
|
|
### Exploiting PUT Requests
|
|
|
|
In some cases, the PUT method may be misconfigured, allowing unauthorized users to upload files to a server. This can lead to various security issues, such as the ability to upload malicious files or overwrite existing files.
|
|
|
|
Em alguns casos, o método PUT pode estar mal configurado, permitindo que usuários não autorizados façam upload de arquivos para um servidor. Isso pode levar a várias questões de segurança, como a capacidade de fazer upload de arquivos maliciosos ou sobrescrever arquivos existentes.
|
|
|
|
To exploit this vulnerability, an attacker can send a specially crafted PUT request to the target server, containing a payload that will be executed upon upload. This can be used to gain unauthorized access, execute arbitrary code, or perform other malicious activities.
|
|
|
|
Para explorar essa vulnerabilidade, um atacante pode enviar um pedido PUT especialmente criado para o servidor alvo, contendo uma carga útil que será executada durante o upload. Isso pode ser usado para obter acesso não autorizado, executar código arbitrário ou realizar outras atividades maliciosas.
|
|
|
|
### Mitigating PUT Exploits
|
|
|
|
To prevent unauthorized file uploads and other PUT-related exploits, it is important to properly configure the server and implement security measures. Some recommended steps include:
|
|
|
|
- Disable the PUT method if it is not needed for the application's functionality.
|
|
- Implement proper authentication and authorization mechanisms to control access to the server.
|
|
- Validate and sanitize user input to prevent malicious file uploads.
|
|
- Regularly update and patch the server software to fix any known vulnerabilities.
|
|
|
|
Para evitar uploads de arquivos não autorizados e outros tipos de exploração relacionados ao PUT, é importante configurar corretamente o servidor e implementar medidas de segurança. Alguns passos recomendados incluem:
|
|
|
|
- Desativar o método PUT se não for necessário para a funcionalidade da aplicação.
|
|
- Implementar mecanismos adequados de autenticação e autorização para controlar o acesso ao servidor.
|
|
- Validar e sanitizar a entrada do usuário para evitar uploads de arquivos maliciosos.
|
|
- Atualizar regularmente o software do servidor e corrigir quaisquer vulnerabilidades conhecidas.
|
|
```
|
|
curl -T 'shell.txt' 'http://$ip'
|
|
```
|
|
## Pedido MOVE
|
|
|
|
The MOVE request is used in WebDAV to move a resource from one location to another. It is similar to the HTTP `PUT` request, but instead of creating a new resource, it moves an existing resource to a new location.
|
|
|
|
O pedido MOVE é usado no WebDAV para mover um recurso de uma localização para outra. É semelhante ao pedido HTTP `PUT`, mas em vez de criar um novo recurso, move um recurso existente para uma nova localização.
|
|
|
|
### Syntax
|
|
|
|
```
|
|
MOVE /source-resource HTTP/1.1
|
|
Host: example.com
|
|
Destination: /destination-resource
|
|
```
|
|
|
|
### Example
|
|
|
|
```
|
|
MOVE /files/document.txt HTTP/1.1
|
|
Host: example.com
|
|
Destination: /archive/document.txt
|
|
```
|
|
|
|
In this example, the `MOVE` request is used to move the `document.txt` file from the `/files` directory to the `/archive` directory.
|
|
|
|
Neste exemplo, o pedido `MOVE` é usado para mover o arquivo `document.txt` do diretório `/files` para o diretório `/archive`.
|
|
```
|
|
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
|
|
```
|
|
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
\
|
|
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
|
|
Acesse hoje:
|
|
|
|
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
|
|
|
## Vulnerabilidade do WebDav no IIS5/6
|
|
|
|
Essa vulnerabilidade é muito interessante. O **WebDav** **não permite** o **upload** ou **renomeação** de arquivos com a extensão **.asp**. Mas você pode **burlar** isso **adicionando** ao final do nome **";.txt"** e o arquivo será **executado** como se fosse um arquivo .asp (você também pode **usar ".html" em vez de ".txt"**, mas **NÃO esqueça do ";"**).
|
|
|
|
Então você pode **fazer o upload** do 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 movimento não funcionou, mas funcionou).
|
|
|
|
![](<../../.gitbook/assets/image (18) (1) (1).png>)
|
|
|
|
## Postar credenciais
|
|
|
|
Se o Webdav estiver usando um servidor Apache, você deve procurar nos 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, aqui estão os arquivos com as **credenciais** válidas para o servidor **webdav**:
|
|
```
|
|
/etc/apache2/users.password
|
|
```
|
|
Dentro deste tipo de arquivos, você encontrará o **nome de usuário** e um **hash** da senha. Essas são as credenciais que o servidor webdav está usando para autenticar os usuários.
|
|
|
|
Você pode tentar **quebrá-las**, 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 o seguinte:
|
|
```bash
|
|
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
|
|
```
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
<figure><img src="/.gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
\
|
|
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
|
|
Obtenha acesso hoje:
|
|
|
|
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|