Автор: Пользователь скрыл имя, 12 Июня 2012 в 15:50, курсовая работа
В IIS 6.0 строгая изоляция была представлена в качестве подхода к осуществлению защиты по умолчанию. Это был существенный шаг в строну по сравнению с другими версиями IIS, которые устанавливали и активировали почти все функции, присутствующие в установочном пакете, в результате чего пользователь получал полностью укомплектованный веб-сервер по умолчанию.
Как разработчик Макс хорошо знал, что ТСР-порт 1433 по умолчанию используется для подключения к серверу SQL в библиотеке для работы с сокетами по протоколу TCP/IP. Он запустил утилиту osql.ехе, которая поставляется с пакетом MSDE (Microsoft Data Engine), и попытался подключиться, использовав пароль, который существовал во время его работы в компании.
C:\5-oeql.exe -S 10.2.3.13 -U dev -Р М34яЗк35
Login failed for user "dev.
He вышло. Администраторы подготовились заранее и сменили пароли после увольнения Макса, следуя политике безопасности компании. Но Макс не остановился, а задумался, что же делать дальше. Ему нужен был способ получить пароль учетной записи sa. Эта учетная запись дает административный доступ к серверу SQL, а в конфигурации по умолчанию прямая атака даже не оставит следов в журналах. Макс поискал в Internet и обнаружил утилиту sqlbf, которая обещала найти пароль, если он присутствует в используемом словаре. Настроенный несколько скептически, Макс установил и запустил утилиту, хотя, зная политику безопасности компании X, предполагал, что пароль должен быть очень сложным, — не лучшая цель для атаки по словарю.
Он помнил, что данные учетной записи sa хранятся в файле global.asa каталога Webroot. Конечно, запросы файла global.asa через браузер обычно запрещены, но Макс просмотрел свою любимую базу программ атаки и попробовал использовать для получения исходного текста файла недостаток нескольких версий сервера IIS, связанный с наличием ошибки + . htr. На втором сервере в ответ на запрос была возвращена пустая страница, но когда он просмотрел источник страницы, увидел следующий текст.
"Provider-SOLOLEDB.1;Persist Security Info-True:
u.id=sa;pvjd=
Макс не мог поверить своим глазам. Конечно, он сразу запустил утилиту osql и ввел только что полученные данные (Имя пользователя: sa, Пароль= m2ryh2dallttleLanib). Он проверил сервер, просто чтобы убедиться в наличии доступа к базе пользовательских запросов. Пользуясь хранимой процедурой xp_cmdshell, Макс получил возможность узнать, какие соединения может устанавливать сервер.
C:\soBql.exe -S 10.2.3.12 -П аа. -V m2ryh2dallttleLanib -Q % "jcp^emdahell 'cemte print'"
В результате выполнения запроса он получил таблицу маршрутизации сервера, к которому он подключился, и понял, что это машина с несколькими сетевыми адаптерами, один из которых соединен с внутренней сетью. Естественно, пакеты из Internet не могли напрямую попадать во внутреннюю сеть, но сервер SQL должен иметь возможность устанавливать внутренние соединения. Почему бы и нет? Персонал обслуживания клиентов должен иметь доступ к запросам клиентов, а значит, они должны иметь доступ к соответствующей базе.
Теперь Макс должен был подтвердить привилегии для системы безопасности операционной системы, он воспользовался следующей командой:
C:\i-osql.exe -S 10.2.3.12 -О sa -Р m2ryn2dallttleLamb -Q Ч> "хр_спк1вЬа11 'net config workstation,л
Computer name WSQL-DMZ Full Computer name SQL-DMZ User name Administrator
Workstation active on
KetbiosSmb (000000000000)
NetBT_Tcpip_(9F09B6FC-BBF2-
Software version Windows 2000
Workstation domain WORKGROUP Workstation Domain DNS Name (null) Logon domain SQL-DM2
COM Open Timeout (sec| 0 COM Send Count {byte] 16 COM Send Timeout (msec) 250
По значению поля с именем пользователя Макс понял, что сервер SQL работает от имени локальной учетной записи Administrator. Вполне возможно, что это переименованная учетная запись пользователя с более ограниченными правами, поэтому Макс проверил, действительно ли учетная запись принадлежит локальному администратору.
C:\sosql.exe -S 10.2.3.12 -О ва -Р tt2ryh2dellttlaLamb -Q Ь Bxp_emdshell 'net localgroup administrators'"
Alias name administrators
Comment Administrators have complete and unrestricted access
to the computer/domain
Members
Administrator
The command completed successfully.
Теперь он точно знал, что эта учетная запись добавлена в группу локальных администраторов и не является подложной для обмана незадачливых хакеров.
Можно и дальше следить за путешествием Макса в недра компании X, но в этом нет необходимости. С тем уровнем прав, который получил Макс, его ничто не ограничивает внутри системы. Итак, урон нанесен, а теперь разберемся, как компания X могла предотвратить эту катастрофу.
Несмотря на политику безопасности в компании X и попытки следовать этой политике, в разработанных правилах есть несколько серьезных просчетов. Наиболее важные проблемы:
Правильная настройка
Другая ошибка — использование приложением учетной записи администратора и хранение ее данных в файле global.asa. Это очень распространенная ошибка, которая в большинстве случаев обусловлена элементарной ленью разработчиков. При использовании учетной записи sa разработчики никогда не должны требовать дополнительных прав или разрешений. Это может быть допустимо во время разработки, но впоследствии обязательно необходимо создать учетную запись с как можно более низким уровнем прав, достаточным для работы приложения.
В рассмотренном примере Макс смог получить данные учетной записи сервера SQL через сервер IIS, поскольку администратор не соблюдал необходимых правил применения "горячих исправлений" и/или пакетов обновления. Когда приходится работать в системе с закрытым исходным кодом, такой как система семейства Windows NT, невозможно самостоятельно исправлять ошибки защиты. Это кажется некоторым ограничением, но компания Microsoft прилагает все усилия, обеспечивая оперативный выпуск исправлений и обновлений своих программ. Все, что теперь нужно, — использовать их. Даже несмотря на то, что это вполне логично, администраторы снова и снова не следят за обновлениями. Это стратегическая ошибка, в политику обеспечения безопасности обязательно должно входить своевременное и упорядоченное использование всех выпускаемых исправлений и обновлений, связанных с защитой.
В случае ошибки + . htr даже не требовалось устанавливать обновление. В списках обязательных действий для обеспечения безопасности от Microsoft (Microsoft's IIS Security Checklists) есть подробные инструкции по отключению связей файлов сценариев с неиспользуемыми библиотеками ISAPI, этими действиями блокируется использование ошибки + .htr.
И наконец, слишком опасно устанавливать сервер SQL на машине с двумя сетевыми адаптерами, подключенной к двум физическим сетям, так как внутренняя сеть может стать доступной в результате взлома узла демилитаризованной зоны. Нужно всегда серьезно рассматривать необходимость разрешения инициации соединений с внутренней сетью для машины из демилитаризованной зоны и использовать несколько сетевых адаптеров только в тех случаях, когда это необходимо для обеспечения связи.
Сетевые библиотеки (Network libraries, netlibs) — это механизмы, посредством которых клиенты и серверы SQL обмениваются пакетами данных. Один экземпляр сервера SQL Server может поддерживать одновременно несколько сетевых библиотек, ожидающих подключения, а версия программы SQL Server 2000 может теперь поддерживать несколько экземпляров сервера SQL Server одновременно — все они могут ожидать соединения с разными сетевыми библиотеками. По умолчанию включены и ожидают соединения протокол TCP/IP и именованные каналы (как и в многопротокольном сервере SQL Server 7.0). Это значит, что стандартную инсталляцию программы SQL Server можно легко обнаружить с помощью сканирования портов по используемому по умолчанию ТСР-порту 1433.
2.5.2 Базовые утилиты запроса SQL
Следующие утилиты либо поставляются
с официальным набором
Самое сложное в использовании утилиты Query Analyzer — сконфигурировать ее для работы с нужной сетевой библиотекой перед подключением к серверу. Это делается посредством утилиты Client Network Utility (файл cliconfig.ехе, устанавливаемый с клиентским пакетом SQL) — необходимо запустить ее, выбрать и подключить нужную сетевую библиотеку. Подключен протокол TCP/IP, наиболее часто используемая для атак сервера SQL Server сетевая библиотека (так как все сейчас работают по протоколу TCP/IP). Программа SQL Client Network Utility проверяет доступность сетевой библиотеки до того, как подключаться к атакуемому серверу SQL с помощью других утилит SQL.
После того как включена необходимая сетевая библиотека, запустите утилиту Query Analyzer и попытайтесь установить соединение с выбранным сервером (меню File->Connect..., если при запуске не появится диалог подключения).
После того как хакер подключится под видом пользователя с соответствуют им уровнем прав, он может использовать утилиту Query Analyzer для отправки запросов или команд на атакуемый сервер с использованием выражений Transact-SQL, хранимых процедур и/или файлов сценариев.
Настоящее "веселье" в SQL начинается после применения расширенных хранимых процедур. Пока достаточно знать, что программу Query Analyzer можно использовать для соединения с сервером SQL Server, подбора пароля и выполнения простых манипуляций с данными на сервере и параметрами конфигурации — все это делается через простой графический интерфейс.
Альтернативой использования Query Analyzer является программа SQL Server Management Studio 2008, интерфейс первоначальной загрузки которой представлен на рисунке 41. Эта программа послужила заменой программе Query Analyzer, начиная с версии SQL Server 2005. Это прекрасная программа, позволяющая запрашивать источники данных OLE DB, проверять SQL-сценарии, возвращать результаты запросов в табличной форме и одновременно выполнять несколько SQL-сценариев или хранимых процедур.
Рисунок 41 – Microsoft SQL Server Management Studio
Рисунок 42 – Утилита osql
Утилита osql позволяет отсылать выражения Transact-SQL, хранимые процедуры и файлы сценариев атакуемому серверу через интерфейс ODBC (Open DataBase Connectivity). Эта программа во всех случаях работает так же, как и уже рассмотренная утилита Query Analyzer (только в режиме командной строки).
2.5.3 Улучшенные средства хакинга SQL
Программ, созданных специально для работы с SQL Server, не так много, как программ для хакинга IIS. Большая их часть имеет достаточно маленький размер, чтобы войти в набор инструментов хакера при атаке на несчастные необновленные серверы IIS. Поскольку многие HS-серверы работают как посредники между клиентом и защищенным брандмауэром (желательно) SQL сервером, взломанный сервер ITS становится прекрасной стартовой площадкой для атаки на главную цель в Web — на данные. Рассмотрим некоторые инструменты хакинга SQL Server.
Нужно сказать, что рассматриваемая утилита полезна не только для взлома пароля учетной записи sa, но и для поиска других учетных записей с правами системного администратора, которые могут быть защищены слабее. Мы создали длинный список пользователей, который содержит не только имя sa, но и другие возможные имена, такие как test, admin, dev, sqlagent и подобные им, которые могли появиться на некотором этапе разработке и не были удалены.
Вот некоторые наиболее популярные
имена учетных записей в
Информация о работе Построение защищенных Web-приложений на основе IIS и MS SQL Server