Учебное воспроизведение эксплуатации CVE-2017-7269, переполнение буфера в IIS 6.0 WebDAV, с руководством по настройке, анализом уязвимости и попыткой эксплуатации Metasploit на Windows Server 2003 R2.
Имя : Killian Munt-Buron и Naji Ullah Abbasi
CVE-2017-7269 — это уязвимость переполнения буфера в Microsoft Windows Server 2003 R2.
Уязвимость находится в функции ScStoragePathFromUrl в WebDAV.
Эта уязвимость позволяет выполнять произвольный код через длинный заголовок.
Заголовки начинаются с if: <http://
Используйте iso-файл (ссылка для скачивания : https://archive.org/details/en_windows_server_2003_standard)
Панель управления => Установка и удаление программ => Добавление/Удаление компонентов Windows
Выберите Application Server, после чего нажмите Details.
Выберите Internet Information Services (IIS)
Убедитесь, что Common files и World Wide Web Service выбраны.
Чтобы проверить, что IIS установлен, откройте в Internet Explorer этот URL: http://localhost/
Если вы следовали инструкции, вы увидите этот экран:

Перейдите в Internet Information Services Manager => нажмите на имя устройства => перейдите в Web service extension => щёлкните правой кнопкой мыши по WebDAV и разрешите

У нас есть машина атакующего, с Ubuntu VM :

И жертва, с Windows VM :

С машины атакующего мы можем видеть жертву с помощью Nmap :

Мы попытались воспроизвести уязвимость, но столкнулись с проблемой.
На машине жертвы мы создали каталог /webdav.

И мы добавили разрешения на чтение, запись и просмотр содержимого папки :

С помощью cadaver, клиента WebDAV, мы видим, что связь работает :


Сначала мы используем скрипт, чтобы проверить, отвечает ли сервер на запросы 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())
Мы получаем это :
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
После этого мы используем Metasploit для генерации переполнения буфера :

Но мы столкнулись с проблемой с Internet Information Services (IIS)
В логе мы видим следующее :