
Lehrreiche Exploit-Nachstellung von CVE-2017-7269, einem Pufferüberlauf in IIS 6.0 WebDAV, mit Einrichtungsanleitung, Sicherheitslückenanalyse und Metasploit-Ausnutzungsversuch auf Windows Server 2003 R2.
Name : Killian Munt-Buron und Naji Ullah Abbasi
CVE-2017-7269 ist eine Pufferüberlauf-Schwachstelle in Microsoft Windows Server 2003 R2.
Die Schwachstelle befindet sich in der ScStoragePathFromUrl-Funktion in WebDAV.
Diese Schwachstelle ermöglicht die Ausführung von beliebigem Code über einen langen Header.
Die Header beginnen mit if: <http://
Verwenden Sie eine ISO-Datei (Download-Link : https://archive.org/details/en_windows_server_2003_standard)
Systemsteuerung => Software = > Windows-Komponenten hinzufügen/entfernen
Wählen Sie Anwendungsserver aus, klicken Sie dann auf Details.
Wählen Sie Internetinformationsdienste (IIS)
Stellen Sie sicher, dass Allgemeine Dateien und World Wide Web-Dienst ausgewählt sind.
Um zu überprüfen, ob IIS installiert wurde, öffnen Sie diese URL mit dem Internet Explorer: http://localhost/
Wenn Sie den Anweisungen gefolgt sind, sehen Sie diesen Bildschirm:

Gehen Sie zum Internetinformationsdienste-Manager => klicken Sie auf den Gerätenamen => gehen Sie zu Webdiensterweiterungen => klicken Sie mit der rechten Maustaste auf WebDAV und erlauben Sie es

Wir haben die Angreifermaschine mit der Ubuntu-VM :

Und das Opfer mit der Windows-VM :

Von der Angreifermaschine aus können wir das Opfer mit Nmap sehen :

Wir haben versucht, die Schwachstelle nachzustellen, sind aber auf ein Problem gestoßen.
Auf der Opfermaschine erstellen wir ein Verzeichnis /webdav.

Und wir fügen Lese-, Schreib- und Verzeichnisdurchsuchen-Berechtigungen hinzu :

Mit cadaver, einem WebdAV-Client, können wir sehen, dass die Kommunikation funktioniert :


Zuerst verwenden wir ein Skript, um zu sehen, ob der Server mit einer PROFIND-Anfrage antwortet :
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())
Wir erhalten dies :
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
Danach verwenden wir Metasploit, um den Pufferüberlauf zu erzeugen :

Aber wir sind auf ein Problem mit Internet Information Services (IIS) gestoßen.
Wir haben dies im Log :