mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-19 01:24:50 +00:00
162 lines
11 KiB
Markdown
162 lines
11 KiB
Markdown
# WebDav
|
|
|
|
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
|
|
|
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. Obtenha acesso hoje:
|
|
|
|
{% 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)
|
|
* Obtenha 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** [**hacktricks-cloud repo**](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 **carregar** algum **webshell** e **executá-lo** a partir do servidor web para assumir o controle do servidor.\
|
|
Normalmente, para **conectar** um servidor WebDav, você precisará de **credenciais válidas**: [**WebDav brute force**](../../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 **executados** pelo servidor web, você deve verificar como **burlar isso:**
|
|
|
|
* **Carregar** arquivos com **extensões executáveis** (talvez não seja proibido).
|
|
* **Carregar** arquivos **sem extensões executáveis** (como .txt) e tentar **renomear** o arquivo (mover) com uma **extensão executável**.
|
|
* **Carregar** arquivos **sem extensões executáveis** (como .txt) e tentar **copiar** o arquivo (mover) com **extensão executável.**
|
|
|
|
## DavTest
|
|
|
|
**Davtest** tenta **carregar vários arquivos com diferentes extensões** e **verificar** 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** pela 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>
|
|
```
|
|
## Requisição PUT
|
|
|
|
---
|
|
|
|
### Description
|
|
|
|
The HTTP PUT method is used to update a resource on a server. In the context of web applications, this method is commonly used to update files on a web server. The PUT method is part of the WebDAV protocol, which is an extension of the HTTP protocol that allows clients to perform remote web content authoring operations.
|
|
|
|
### Descrição
|
|
|
|
O método HTTP PUT é usado para atualizar um recurso em um servidor. No contexto de aplicações web, este método é comumente usado para atualizar arquivos em um servidor web. O método PUT faz parte do protocolo WebDAV, que é uma extensão do protocolo HTTP que permite que clientes realizem operações de autoria de conteúdo web remoto.
|
|
|
|
---
|
|
|
|
### Vulnerability
|
|
|
|
The PUT method can be vulnerable to attacks if the server does not properly validate the input data. An attacker can use the PUT method to upload a malicious file to the server, overwrite an existing file, or modify the content of an existing file. This can lead to a variety of attacks, including remote code execution, file inclusion, and data leakage.
|
|
|
|
### Vulnerabilidade
|
|
|
|
O método PUT pode ser vulnerável a ataques se o servidor não validar corretamente os dados de entrada. Um atacante pode usar o método PUT para fazer upload de um arquivo malicioso para o servidor, sobrescrever um arquivo existente ou modificar o conteúdo de um arquivo existente. Isso pode levar a uma variedade de ataques, incluindo execução remota de código, inclusão de arquivo e vazamento de dados.
|
|
|
|
---
|
|
|
|
### Exploitation
|
|
|
|
To exploit this vulnerability, an attacker can use a web client or a command-line tool to send a PUT request to the server. The request should include the file to be uploaded and the location where the file should be stored on the server. If the server does not properly validate the input data, the file will be uploaded to the server and can be accessed by the attacker.
|
|
|
|
### Exploração
|
|
|
|
Para explorar essa vulnerabilidade, um atacante pode usar um cliente web ou uma ferramenta de linha de comando para enviar uma requisição PUT para o servidor. A requisição deve incluir o arquivo a ser enviado e o local onde o arquivo deve ser armazenado no servidor. Se o servidor não validar corretamente os dados de entrada, o arquivo será enviado para o servidor e pode ser acessado pelo atacante.
|
|
|
|
---
|
|
|
|
### Mitigation
|
|
|
|
To mitigate this vulnerability, the server should properly validate the input data and restrict access to sensitive files. The server should also use access controls to limit the actions that can be performed by users and applications. Additionally, the server should log all PUT requests and monitor for any suspicious activity.
|
|
|
|
### Mitigação
|
|
|
|
Para mitigar essa vulnerabilidade, o servidor deve validar corretamente os dados de entrada e restringir o acesso a arquivos sensíveis. O servidor também deve usar controles de acesso para limitar as ações que podem ser realizadas por usuários e aplicativos. Além disso, o servidor deve registrar todas as requisições PUT e monitorar qualquer atividade suspeita.
|
|
```
|
|
curl -T 'shell.txt' 'http://$ip'
|
|
```
|
|
## Requisição MOVE
|
|
```
|
|
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
|
|
```
|
|
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
|
|
|
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.\
|
|
Obtenha acesso hoje:
|
|
|
|
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
|
|
|
## Vulnerabilidade IIS5/6 WebDav
|
|
|
|
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 upload** do seu shell como um arquivo ".**txt"** e **copiá-lo/movê-lo para um arquivo ".asp;.txt"**. Ao acessar esse arquivo pelo 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, há 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. Estas são as credenciais que o servidor webdav está usando para autenticar 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:
|
|
```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 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**? Confira 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 do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do 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 para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
![](<../../.gitbook/assets/image (9) (1) (2).png>)
|
|
|
|
\
|
|
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente, alimentados pelas 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" %}
|