На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Приложения г Службы: IIS

 

Мы уже достаточно далеко зашли в атаке на Windows Server 2003 И получили точные представления об окружении цели (доступность служб CLFS/SMB, например). Боль­шинство серверов локальной сети Windows Server 2003 должны были быть взломаны еще при изучении главы 5, "Атака на службы Windows".
Тем не менее, как известно, Windows больше не ограничивается простой и надежной средой локальной сети для совместного использования файлов и принтеров. И действительно, по дан­ным службы Netcraft (на момент подготовки книги к печати), Windows остается одной из самых популярных платформ в Internet.
Если на большей части подключенных к Internet серверов были предприняты очевидные меры безопасности, такие как установка промежуточного брандмауэра, отключение служб CIFS/SMB и других потенциально опасных служб, то как же можно провести атаку?
Конечно, простейший ответ —через "парадную дверь". Мир постепенно начинает осозна­вать тот факт, что даже при максимально строгой защите сети и операционной системы (с ис­пользованием представленных рекомендаций) уровень приложений всегда оставляет потен­циальные пути для злоумышленников. Кроме того, еще один вход в систему открывают служ­бы, на основе которых работают приложения. В этой главе мы обсудим наиболее популярный путь проникновения В систему; использование сервера Internet Information Services (IIS).
НАЭАМЕТНУ
Ошибки в программном обеспечении Web-серверов (таких как IIS) представля­ют собой отдельный вид уязвимых мест и отличаются от уязвимых мест в дру­гих запущенных Web-службах. В этой главе рассматриваются только Web-серверы, а подробную инсрормацию о безопасности Web-служб можно получить в книге Секреты хакеров- Безопасность Web-приложвний — готовые реше­ния, (Щжоел Скембрей, Майк Шема, Йен-Минг Чен, Дэвид Bows. Издательский дом 'Вильяме", 2003).
Программы для взлома серверов IIS имеют долгую и богатую историю. От чего только не страдал ведущий Web-сервер компании Microsoft: и от уязвимого места относительно атак по раскрытию кода (например ; ; $data), он допускал утечки информации через простые сцена­рии (например showcode. asp), разрешал выполнение вложенных в запросы к базам данных (MDAC/RDS) привилегированных команд и даже взламывался с помощью простых атак на переполнение буфера (IISHack). Хотя со временем Bqe эти проблемы были решены, вместо них появился новый набор ошибок, так что системным администраторам есть чем заняться даже после перехода на Windows Server 2003. Некоторые наиболее серьезные недостатки сер­вера ITS мы рассмотрим в этой главе. Но сначала проведем краткий обзор технологий взлома сервера 1IS. Эта глава состоит из нескольких частей.
т Основы IIS.
■ Атаки на переполнение буфера для IIS.
■ Использование хакером свойств файловой системы. * Атаки по раскрытию исходного кода.
Те, кто знаком с основами методов взлома в Web, Могут Сразу перейти к основному "блюду" этой главы — начинайте с раздела "Атаки на IIS С помощью переполнения буфера".
Основы IIS
Перед тем как мы опишем некоторые наиболее опасные уязвимые места IIS, напомним основы работы этого Web-сервера. Понимание основ протокола HTTP необходимо для взло­ма любого Web-сервера, и сервер IIS не является исключением. Кроме того, сервер IIS прив­нес собственные уникальные варианты основных протоколов Web, о которых мы тоже рас­скажем. Мы проведем экскурс в историю развития Web, опустив некоторые мелкие детали.
Базовый протокол HTTP
Поскольку протокол HTTP основан на текстовой информации, его достаточно легко по­нять. По существу, протокол HTTP является протоколом для обмена файлами. Запрос файла выполняется с помощью команды GET протокола HTTP, а файл обычно отображается Web-браузером. В браузере вызов метода GET выглядит следующим образом.
http://www.victim.com/files/index.html
Эта команда позволяет запросить файл index, html из виртуального каталога / files систе­мы www.victim.com. Виртуальный каталог /files отображается в действительный каталог на диске заданной системы, например, это может быть каталог С: \inetpub\wwwroot\f iles\. Сервер получает этот запрос втаком виде.
GET /files/index.html HTTP/1.0
При условии, что файл существует и не произошло никаких ошибок, сервер в ответ передает поток данных файла index.html, и эти данные соответствующим образом отображает браузер. В протоколе HTTP существуют и другие методы, POST, PUT, но для целей хакеров обычно хвата­ет одного метода GET. Ответ сервера содержит код HTTP-ответа, соответствующий результату запроса. В случае успешного получения данных выдается ответ HTTP 200 ОК. Существует много разных кодов HTTP-ответа, среди наиболее часто используемых— 404 Not Found (Файл не найден), 403 Access Denied (Доступ запрещен), 302 Object Moved (Объект пе­ремещен; этот ответ используется для перенаправления запросов на страницу входа для аутен­тификации пользователя перед обслуживанием запроса).
Одна из важных разновидностей базового протокола HTTP для запроса файлов — обеспе­чение возможности выполнять программы. На ранней стадии ее разработки было решено, что функции WWW не нужно ограничивать лишь простой статической системой передачи файлов. Так появились возможности для динамической работы, их обеспечивает интерфейс CGI (Common Gateway Interface — единый шлюзовой интерфейс). Приложения этого интер­фейса выполняются на сервере и в ответ на запрос могут не просто отдавать одну и ту же страницу HTML, а динамически генерировать данные. Способность обеспечить ввод данных и генерировать страницы "на лету" существенно расширила функциональные возможности Web-приложений. Приложение CGI можно вызвать через протокол HTTP тем же способом, который был описан выше.
http: //www. victim, com/scripts/cgi .exe? переменная1+ переыенная2
В результате этого запроса приложению cgi. exe будут переданы значения переменных пе­ременная! и переменная2 (в качестве разделителя переменных используется знак "плюс" (+), на­пример, cmd.exe+/c+clir+C: \). Почти любая программа системы семейства Windows NT мо­жет вести себя как серверное приложение CGI и соответствующим образом выполнять коман­ды. Как вы увидите из последующего раздела об атаках с использованием свойств файловой сис­темы, командный интерпретатор Windows cmd.exe очень популярен в качестве цели для хакеров, которые ищут возможности сбора информации через интерфейс CGI.
По своей природе исполняемые сценарии CGI— это отдельные программы, которые по­требляют ресурсы системы при каждом HTTP-запросе, поэтому при обслуживании растущих потребностей Web их использование неэффективно. Эти недостатки компания Microsoft попы­талась исправить, создав для обслуживания базовых Web-приложений две отдельные техноло­гии: ASP (Active Server Pages — активные серверные страницы) и интерфейс ISAPI (Internet
CGI
ASP и ISAPI
Server Programming Interface— интерфейс прикладного программирования Internet-сервера). Наличие двух технологий подчеркивает разделение приложений для 1IS на два основных типа (мы расскажем о следующем поколении ASP — технологии ASP.NET).
Технология ASP работает несколько иначе, чем интерфейс CG1, но по отношению к ко­нечному пользователю ведет себя так же.
http://www.victim.com/scripts/script. Asp? переменна Я1-х.& переменная2=ч
Так же, как и в предыдущем примере, при выполнении этого запроса сценарию ASP script .asp будут переданы два значения переменных: переменной Хи переменной Y. Обычно результатом этого процесса является генерирование страницы HTML с данными, выведенными программой script.asp. Сценарии ASP зачастую пишут на языке, удобном для восприятия человеком, например, на языке Visual Basic, но сама технология почти не зависит от конкрет­ного языка программирования.
Интерфейс ISAPI в общем случае менее заметен для конечного пользователя. Фактически, компания Microsoft использует многие библиотеки 1SAPI для расширения самого сервера IIS, хотя многие об этом и не догадываются (по случайному совпадению, интерпретатор ASP реализован как библиотека ISAPI. Это несколько размывает границу между приложениями, основанными на тех­нологии ASP, и приложениями, основанными на технологии ISAPI, не так ли?). Динамические библиотеки ISAPI — это двоичные файлы, которые не предназначены для чтения человеком. Их можно выполнять внутри или вне процесса самого сервера IIS (inetinfo. exe), а после запуска они остаются резидентными, что в значительной мере снижает затраты на порождение процесса программы CGI для обслуживания поступившего запроса. Если известно имя библиотеки ISAPI, то ее можно вызвать по протоколу HTTP.
http://www.victim.com/isapi.dll?variabiel&variable2
ЩЩщЗ в этой главе мы будем часто использовать названия фильтры ISAPI и рас­ширения ISAPI. Если описать их кратко, то фильтры перехватывают любой запрос, а расширения срабатывают только при запросах к файлам опреде­ленного типа (например к файлам с расширением . htr).

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика