Reprodução educacional do exploit de CVE-2017-7269, um buffer overflow no IIS 6.0 WebDAV, com guia de configuração, análise de vulnerabilidade e tentativa de exploração com Metasploit no Windows Server 2003 R2.
Nome : Killian Munt-Buron e Naji Ullah Abbasi
CVE-2017-7269 é uma vulnerabilidade de estouro de buffer no Microsoft Windows Server 2003 R2.
A vulnerabilidade está na função ScStoragePathFromUrl no WebDAV.
Esta vulnerabilidade permite executar código arbitrário por meio de um cabeçalho longo.
Os cabeçalhos começam com if: <http://
Use um arquivo ISO (link para download : https://archive.org/details/en_windows_server_2003_standard)
Painel de Controle => Adicionar ou Remover Programas = > Adicionar/Remover Componentes do Windows
Selecione Servidor de Aplicativos e, depois, clique em Detalhes.
Selecione Internet Information Services (IIS)
Verifique se Arquivos Comuns e Serviço World Wide Web estão selecionados.
Para verificar se o IIS foi instalado, abra este URL com o Internet Explorer: http://localhost/
Se você seguiu as instruções, verá esta tela:

Vá para o Gerenciador do IIS => clique no nome do dispositivo => vá em Extensões de Serviços Web => clique com o botão direito em WebDAV e selecione Permitir

Temos a máquina do atacante, com a VM Ubuntu :

E a vítima, com a VM Windows :

A partir da máquina do atacante, podemos ver a vítima usando o Nmap :

Tentamos reproduzir a vulnerabilidade, mas encontramos um problema.
Na máquina da vítima, criamos um diretório /webdav.

E adicionamos à pasta permissões de leitura, gravação e navegação em diretórios :

Com o cadaver, um cliente WebDAV, podemos ver que a comunicação funciona :


Primeiro, usamos um script para verificar se o servidor responde a uma requisição PROFIND :
import socket
host = "192.168.79.153"
port = 80
request = (
"PROPFIND /webdav/ HTTP/1.1\r\n"
"Host: {host}\r\n"
"Content-Length: 0\r\n"
"Content-Type: text/xml\r\n"
"Depth: 0\r\n"
"Translate: f\r\n"
"\r\n"
).format(host=host)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.send(request.encode())
response = s.recv(4096)
s.close()
print(response.decode())
Temos isto :
HTTP/1.1 207 Multi-Status
Date: Sun, 18 Jan 2026 19:22:56 GMT
Server: Microsoft-IIS/6.0
Content-Type: text/xml
Transfer-Encoding: chunked
Depois disso, usamos o Metasploit para gerar o estouro de buffer :

Mas encontramos um problema com Internet Information Services (IIS)
Temos isto no log :