Атаки против IIS 5
По возрастающей популярности с атаками на протоколы NetBIOS или 8MB могут сравниться лишь многочисленные методологии атак на US (Internet Information Server), поскольку это единственная служба, обязательно присутствующая в подключенных к Internet системах под управлением NT/2000. Эта служба встроена в операционные системы семейства Windows 2000. По умолчанию сервер IIS 5.0 и службы Web доступны во всех серверных версиях. И хотя вопросы, связанные с хакингом в Web, будут более подробно рассмотрены в главе 15, мы не можем обойти своим вниманием атаку на Internet Information Server, широко обсуждаемую компьютерной общественностью перед самым выходом в свет этой книги.
Проблема US "Translate: f"
Проблема, связанная со вскрытием кода (showcode) не нова: она была свойственна и более ранним версиям Internet Information Server. Она получила название Translate: f и была описана Даниелем Дочкалом (Daniel Docekal) в бюллетене Bugtraq. Эта проблема является хорошим примером ситуации, когда взломщик направляет Web-серверу неожиданные данные и тем самым заставляет его выполнять неприемлемые в обычных условиях действия. Это классический вид атаки против протоколов обработки документов типа HTTP.
Атака Translate: f состоит в отправке искаженного запроса GET протокола HTTP на выполнение серверного сценария или обработку другого файла аналогичного типа (например, файлов с расширением .ASP (Active Server Pages) или global.asa). Эти файлы предназначены для выполнения на сервере, а не на клиентском компьютере. Видоизменение запроса приводит к тому, что Internet Information Server направляет содержимое файла удаленному клиенту, а не выполняет его с использованием соответствующего механизма обработки сценариев. Ключевым свойством искаженного запроса GET для протокола HTTP является наличие специального заголовка, завершающегося выражением Translate: f, и использование адреса URL, завершающегося символом обратной косой \. Ниже приводится пример такого запроса (строка [CRLF] означает символ возврата каретки/перевода строки, который в шестнадцатеричной системе счисления имеет код ODOA). Обратите внимание на обратную косую после имени файла global .asa и заголовок Translate: f.
GET/global.asa\ HTTP/1.0
Host: 192.168.20.10
User-Agent: SensePostData
Content-Type: application/x-www-form-urlencoded
Translate: f
[CRLF]
[CRLF]
Если путем конвейерной обработки текстовый файл с этой информацией направить (с помощью утилиты netcat) на уязвимый сервер IIS, то в командной строке отобразится содержимое файла /global, as a:
D:\type trans.txtI nc -nw 192.168.234.41 80
(UNKNOWN) [192.168.234.41] 80 (?) open
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Wed, 23 Aug 2000 06:06:58 GMT
Content-Type: application/octet-stream
Content-Length: 2790
Etag: "0448299fcd6bf1:bea"
Last-Modified: Thu, 15 Jun 2000 19:04:30 GMT
Accept-Ranges: bytes
Cache-Control: no-cache
<!-Copyright 1999-2000 bigCompany.com—>
<object RUNAT=Server SCOPE=Session ID=fixit
PROGID="Bigco.object"x/object>
("ConnectionText") = " DSN=Phone;UID=superman;Password=test;"
("ConnectionText") = " DSN=Backend;UID=superman;PWD=test;"
("LDAPServer") = "LDAP://Idap.bigco.com:389"
("LDAPUserlD") = "cn=Admin"
("LDAPPwd") = "password"
Мы слегка модифицировали содержимое файла global.asa, чтобы продемонстрировать наиболее характерную информацию, которую может извлечь из него взлом-шик. К сожалению, на многие узлах до сих пор встраивают пароли приложений в ASP и ASA-файлы, повышая тем самым вероятность последующего проникновения хакеров в свои пенаты. Как видно из этого примера, взломщик, вскрывший содержимое файла global.asa, получает в свое распоряжение пароли многих серверов нижнего уровня, включая систему LDAP.
Готовые сценарии взлома на языке Perl, упрощающие описанную выше процедуру использования команды netcat, можно найти в Internet (авторы этой книги пользовались сценариями tarans.pl Ройлофа Темминга (Roelof Temmingh) и srcgrab.pl Смайлера (Smiler)).
Корни проблемы Translate: f - протокол WebDAV и канонизация
При первом выявлении этой проблемы вокруг ее причин разгорелись бурные споры. Официальная позиция компании Microsoft сводилась к тому, что причиной является некорректное поведение внутреннего обработчика файлов в ядре US (что в прошлом действительно приводило к некоторым проблемам). Эта позиция была обнародована в разделе MSOO-58, посвященном вопросам безопасности по адресу
http: //www.microsoft.com/technet/security/bulletin/fq00-058.asp.
Однако Даниель Дочкал (Daniel Docekal) считает, что причиной проблемы является протокол WebDAV (Web Distributed Authoring and Versioning) — протокол обеспечения стандартов Internet, поддерживаемый преимущественно компанией Microsoft и позволяющий удаленным авторам создавать, удалять, перемещать, находить и изменять атрибуты файлов и каталогов на Web-серверах (чувствуете, с какими проблемами это может быть сопряжено?). Протокол WebDAV Web-сервером IIS 5 поддерживается по умолчанию. И хотя заголовок HTTP Translate: не описан в спецификации протокола WebDAV (RFC 2518) или других известных авторам документах, Даниель Дочкал утверждает, что встречал ссылку на него в библиотеке сети MSDN компании Microsoft. По его словам, там рассказывалось об использовании этого заголовка для получения файлового потока путем указания значения F (false) в поле заголовка Translate.
В процессе обсуждения этого вопроса с группой обеспечения безопасности продуктов Microsoft выяснилось, что это действительно так. По их словам протокол WebDAV реализован в динамической библиотеке httpext.dll в виде фильтра ISAPI, интерпретирующего Web-запросы до их передачи ядру IIS. Заголовок Translate: f предполагает обработку этого запроса, а обратная косая вводит фильтр в заблуждение, и он направляет этот запрос непосредственно операционной системе. Система Win 2000 благополучно возвращает этот файл системе злоумышленника, а не выполняет его на сервере (как положено по всем правилам).
Здесь мы вплотную подошли к вопросу канонизации (canonicalization). Это понятие описано специалистами компании Microsoft в разделе MSOO-57 по адресу
http://www.microsoft.com/technet/security/bulletin/fq00-057.asp. Там говорится следующее: "Канонизация — это процесс приведения различных эквивалентных форм имени к единому стандартному имени, называемому каноническим именем (canonical name) . Например, на данном компьютере имена c:\dir\test.dat и . . \. . \test.dat могут ссылаться на один и тот же файл. Канонизация — это процесс приведения таких имен к виду c:\dir\test.dat."
Использование одной из различных эквивалентных форм канонического имени файла может привести к обработке запроса другими средствами IIS или операционной системы. Хорошим примером проблемы канонизации является вскрытие исходного кода с помощью выражения : :$DATA. Если к некоторому файлу обратиться по специальному имени, то файл будет возвращен броузеру в некорректном виде (Более подробная информация об этом содержится в главе 15).
Подобным образом работает и заголовок Translate: f. Значение f вводит службу WebDAV в заблуждение, в результате чего файловый поток возвращается броузеру.
Контрмеры: решение для проблемы Translate: f
Чтобы уменьшить риск, связанный с проблемой Translate: f и другими попытками вскрытия кода, достаточно просто иметь в виду, что любые исполняемые на сервере файлы могут быть видимы пользователям Internet и никогда не хранить в них секретную информацию. Неизвестно, связано ли это с участившимися попытками вскрытия кода, но компания Microsoft предлагает такой подход в качестве "обычной рекомендации по безопасности" в разделе FAQ
MS00-58, уже упомянутом ранее.
Еще один способ решения этой проблемы сводится к установке сервисного пакета Service Pack 1 к системе Win 2000, упомянутого в том же разделе FAQ. При его установке IIS будет интерпретировать серверные исполняемые сценарии и схожие типы файлов с помощью соответствующего механизма обработки сценариев на сервере независимо от типа заголовка.
Как указывает Расе Купер (Russ Cooper) (бюллетень NTBugtraq), проблема Translate: f существенно связана с версией сервера IIS. Например, модуль обновления для 1IS4 успешно решает эту проблему. Таким образом, решение указанной проблемы сводится к следующему.
1. Аналогичная проблема для IIS4.0/IIS5.0, а также проблема размещения виртуальных каталогов на совместно используемых дисках с именами UNC, решается с помощью MSOO-019. Таким образом, после установки сервисного пакета системы с сервером IIS 4 становятся неуязвимыми для таких атак.
2. Системы на базе IIS 5.0 (с применением MSOO-019 или без) необходимо обновить с помощью сервисного пакета SP1 или
MS00058.
Заметим также, что если для виртуального каталога IIS, содержащего нужный файл, установлено разрешение, отличное от Read, то при атаке Translate: f будет возвращена ошибка "HTTP 403 Forbidden" (даже если установлен режим Show Source Code). Если же для виртуального каталога, содержащего указанные файлы установлено разрешение Read, то эти файлы могут быть доступны взломщику.
Надеемся, этот экскурс в страну 1IS будет полезен читателю и поможет осознать один из способов проникновения в операционную систему. Более подробная информация об атаках на IIS содержится в главе 15.
|