Riproduzione educativa dell'exploit di CVE-2017-7269, un buffer overflow in IIS 6.0 WebDAV, con guida all'installazione, analisi della vulnerabilità e tentativo di sfruttamento tramite Metasploit su Windows Server 2003 R2.
Nome : Killian Munt-Buron and Naji Ullah Abbasi
CVE-2017-7269 è una vulnerabilità di buffer overflow in Microsoft Windows Server 2003 R2.
La vulnerabilità si trova nella funzione ScStoragePathFromUrl in WebDAV.
Questa vulnerabilità permette di eseguire codice arbitrario tramite un header lungo.
Gli header iniziano con if: <http://
Usa un file iso (link per il download : https://archive.org/details/en_windows_server_2003_standard)
Pannello di controllo => Installazione applicazioni => Aggiungi/Rimuovi componenti di Windows
Seleziona Application Server, poi clicca su Dettagli.
Seleziona Internet Information Services (IIS)
Verifica che Common files e World Wide Web Service siano selezionati.
Per verificare che IIS sia stato installato, apri con Internet Explorer questo URL: http://localhost/
Se hai seguito le istruzioni, vedrai questa schermata:

Vai a Internet Information Services Manager => clicca sul nome del dispositivo => vai a Estensione servizio Web => fai clic con il tasto destro su WebDAV e abilitalo

Abbiamo la macchina attaccante, con la VM Ubuntu :

E la vittima, con la VM Windows :

Dalla macchina attaccante, possiamo vedere la vittima usando Nmap :

Abbiamo provato a riprodurre la vulnerabilità ma abbiamo riscontrato un problema.
Sulla macchina vittima, creiamo una directory /webdav.

E aggiungiamo i permessi di lettura, scrittura e navigazione directory :

Con cadaver, un client WebDAV, possiamo vedere che la comunicazione funziona :


Per prima cosa, usiamo uno script per vedere se il server risponde con una richiesta 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())
Abbiamo questo :
killian@vmlinux:~$ python3 mis3.py
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
Dopodiché, usiamo Metasploit, per generare il buffer overflow :

Ma abbiamo riscontrato un problema con Internet Information Services (IIS)
Abbiamo questo nel log :