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

 

 

Использование свойств файловой системы

Хотя для описанных выше уязвимых мест были выпущены заплаты для IIS 5, но мы все еще встречаем системы, на которых работают уязвимые версии HS. Более того, хотя Microsoft и устранила основные причины возникновения уязвимых мест, которые мы рассмотрим в этом разделе, они вполне могут послужить примером для описания классических методов хакинга сервера I1S и средств Противодействия этим атакам.
Далее МЫ рассмотрим две программы атаки, которые позволяют пройти через файловую систему, — это атака Unicode и атака двойного декодирования (излишнего декодирования). Сначала представим подробное описание этих атак, а затем расскажем, как их использовать для получения полного контроля над всей системой.
Атака Unicode

Популярность
10
Простота
8
Опасность
7

Степень риска
8

Первое упоминание об этой ошибке появилось в форумах Packetstorm в начале 2001 года, формально она была изучена хакером Rain Forest Puppy (RFP). Суть проблемы проще всего описать собственными словами RFP: "Значения %c0%af и %cl%9c являются длинными представ­лениями символов '/' и Л' в формате UNICODE, Существуют и более длинные (больше 3 байтов) представления этих символов. Вероятно, сервер IIS выполняет перекодировку из формата UNICODE после проверки пути, а не до этого".
Таким образом, HTTP-запрос, аналогичный приведенному далее, позволяет выполнять на сервере произвольные команды.
GET /scripts/..%c0%af../winnt/system32/cmd.ехе?+/c+dir+'с:\' HTTP /1.0
Заметим, что длинное представление Unicode %с0%а£ и %cl%9c делает возможным использование строк в виде "точка-точка-косая черта" для перехода в системный каталог и загрузки входных данных в интерпретатор командной строки, что обычно невозможно сделать с использованием лишь символов таблицы ASCII. Среди других "запретных" подставлений символов"/" и "\" комбинации: %cl%lc, %cl%9c, %cl%lc, %c0%9v, %cO%af, %c0%qf, %cl%8s, %cl%9c и %cl%pc.
Ясно, что такое поведение сервера нежелательно, но применение базовой программы атаки ограничено наличием следующих факторов.
Т Первый виртуальный каталог запроса (в нашем примере это каталог /scripts) должен выполняться пользователем, который делает запрос. Это ограничение обычно никого не сдерживает, поскольку сервер ITS имеет несколько каталогов, относительно которых пользователю IUSR по умолчанию разрешено действие Execute (выполнить), а именно: scripts, iissamples, iisadmin, iishelp, cgi-bin, msadc, _vti_bin, certsrv, certcoritrol и certenroll.
■ Если начальный виртуальный каталог не расположен на системном разделе диска, перейти на другой раздел диска невозможно, в настоящее время неизвестны способы сделать это. Поскольку программа cmd. exe расположена на системном разделе диска, то в этом случае с помощью программы Unicode ее запустить не удастся. Конечно, это не значит, что на разделе, в котором находится корневой каталог Web-сервера, отсутствуют другие мощные программы. А найти их при использовании ошибки Unicode не представляет особого груда.
А Команды, которые запускаются через строку, заданную в формате Unicode, выполняются в контексте удаленного пользователя, который отправляет HTTP-запрос. Обычно это учетная запись тзя_имл_машины, которая используется для выполнения анонимных запросов к Web-службам и является членом встроенной группы Guests. Группе Guests по умолчанию предоставлены весьма ограниченные права в системах Windows NT/2000/2003.
Хотя вначале эффект от взлома ограничивается перечисленными факторами, другие ошибки, обнаруженные на уже взломанном сервере, могут привести к осложнению ситуации. Как станет понятно совсем скоро, ошибка Unicode может привести к возникновению очень серьезных проблем в системе безопасности.
О Защита от программы атаки Unicode
Бюллетень
MS00-057, 078, 086

BID
1806

Исправлено в SP
Windows 2000 SP 2

Фиксируется
Да


Существует несколько мер противодействия "путешествию" хакера по файловой системе при использовании ошибки Unicode.
Использование заплаты из бюллетеня MS00-086
В соответствии с информацией, представленной компанией Microsoft (бюллетень MS00-057), возможность пройти файловую систему с использованием символов в формате Unicode появилась из-за ошибок в процедурах канонизации сервера IIS:
"Канонизация — это процесс, при котором все эквивалентные формы имени приводятся к одному стандартному имени — так называемому каноническому имени. Например, на определенной машине имена С : \dir\test. dat и . . \ . . \test. dat могут ссылаться на один и тот же файл. Канонизация — это процесс, во время которого все такие имена будут приведены к имени вида С: \dir\test. dat (по причине ошибок канонизации в сервере IIS)... При запросе некоторых типов файлов с использованием специально подготовленного хакером адреса URL, канонизация приводит лишь к частично верному результату. Процедура канонизации дает верное имя файла, но приводит к выводу о том, что он расположен не в том каталоге, в котором он находится на самом деле. В результате для файла используются разрешения, установленные для другого каталога".
Компания Microsoft выпустила исправление соответствующих ошибок канонизации в бюллетене MSO0-057 за два месяца до того, как широкой общественности была представлена программа атаки Unicode. Наличие уязвимого места для проведения атаки Unicode вызвало такое возбуждение в сообществе хакеров, что компания Microsoft выпустила второй и третий бюллетени, посвященные этой теме, MS0O-78 и MS0O-86, чтобы подчеркнуть важность представленного ранее исправления и нейтрализовать недостатки двух первых заплат. Эта заплата заменяет библиотеку w3sve.dll. Английская версия исправления имеет представленные ниже атрибуты (разумеется, подойдут и более поздние версии). Date Time Version Size File name
11/27/2000 10:12p 5.0.2195.2785 122,640 Iisrtl.dll 11/27/2000 10:12p 5.0.2195.2 784 357,136 W3svc.dll
Hft ЗАМЕТКУ
Для автоматической проверки наличия новейших заплат для сервера IIS можно воспользоваться программой, подобной Network Security Hotfix Checker (hfnetchk, см. приложение А, "Перечень мер по защите Windows Server 2003").
Кроме использования выпущенной заплаты, администраторы сервера IIS 5 для защиты от ошибки Unicode и других подобных уязвимых мест (например, ошибки, связанной с двойным перекодированием рассмотренной ниже) должны прислушаться к нескольким практи­ческим советам. Следующая подборка рекомендаций была создана на основе рекомендаций компании Microsoft из бюллетеня MSOO-078 И дополнена исходя из нашего опыта.
Не устанавливайте Web-каталоги на системный раздел диска
Как уже стало понятно, программы атаки, использующие ошибки канонизации, аналогичные ошибке Unicode, ограничены правилами синтаксиса для адреса URL. По этой причине в настоящее время, используя URL-алрес, невозможно перейти на другой раздел диска. Таким образом, перемещение корневого каталога Web сервера TIS 5 на тот раздел диска, где нет таких мощных средств, как программа cmd. exe, делает подобные программы атаки бесполезными. Для сервера IIS 5 и более поздних версий физическое расположение корневого каталога Web контролируется диспетчером Internet Services Manager (iis.msc). Для этого нужно выбрать Properties (пункт меню Свойства) Web-узла по умолчанию (Default Web Site), выбрать закладку Home Directory (Домашний каталог) и изменить настройку Local Path (Катапогустановки).
При копировании корневого каталога Web на другой раздел диска лучше использовать специальную программу, например Robocopy из пакета Windows 2000 Resource Kit, которая позволяет сохранить целостность записей ACL файловой системы NTFS. В противном случае записи в списках ACL останутся в значении по умолчанию: неограниченный доступ для всех пользователей (Everyone)! Не допустить этого поможет параметр программы Robocopy /SEC.
Для разделов Web-сервера всегда используйте файловую систему NTFS и ограничивайте разрешения доступа в списках ACL
При использовании файловых систем FAT или FAT32 контроль доступа на уровне файлов и каталогов становится невозможным, а учетная запись IUSR дает возможность читать и загружать на сервер файлы. При настройке контроля доступа к каталогам NTFS, доступным из Web, действуйте по принципу предоставления наименьших привилегий. Для сервера 1IS 6 по умолчанию в списках контроля доступа установлены намного более жесткие ограничения.
Переместите, переименуйте или удалите все утилиты командной строки, которые могут помочь взломщику, установите ограниченные права на доступ к этим программам
Эрик Шульц (Eric Schulizc), известный гуру в области безопасности информационных систем, и Дэвид ЛсБланк (David LeBlanc), главный специалист по технологиям безопасности компании Microsoft, рекомендуют пред оста влять неограниченный доступ к программе cmd.exe и нескольким другим мощным программам в списках контроля доступа системы NTFS только для учетных записей Administrator и SYSTEM. Они продемонстрировали, что эта простейшая мера предосторожности останавливает большинство манипуляций, подобных использованию ошибки Unicode, поскольку пользователь IUSR лишается прав доступа к программе cmd. exe. Шульц и ЛеБланк рекомендуют для глобального ограничения прав доступа использовать встроенную утилиту cacls.
Рассмотрим пример того, как утилиту cacls можно использовать дли настройки прав доступа к исполняемым файлам в системном каталоге. Поскольку в системном каталоге находится слишком много исполняемых файлов, будет проще использовать для примера не­сколько фа1глов из каталога testl, в котором есть подкаталог test2. Используя утилиту calcs в режиме отображения состояния файлов, можно увидеть достаточно либеральные ог-
раничения на доступ к нашим тестовым файлам (2).

Листинг 10.2. Утилита call доступа
zb выводит сведения об установленных правах

СЛ>сас1в testl /Т.
C:\testl Everyone:(OI)(CIIF С:\testl\testl.exe Everyone


C:\testl\testl.txt Everyone:F C:\testl\test2 Everyone:(01)fCI)F C:\testl\test2\test2.exe Everyone:F C:\testl\test2\test2.txt Everyone:F
Пусть теперь нужно изменить права доступа ко всем исполняемым файлам каталога testl и всех его подкаталогов, записи о правах доступа должны быть такими; System: Full, Administrators : Full. Для этого воспользуемся следующей командой.
С:\>еас1н tastl\*.exe /Т /G SyetemiF Administrators:F
Are you sure [Y/N)?y
processed file: C:\testl\testl.exe
processed file: С:\testl\test2\test2.exe
Теперь можно запустить утилиту calcs и проверить результаты. Обратите внимание, что файлы с расширением . txt во всех каталогах остались с исходными правами доступа, а для исполняемых файлов права были изменены.
C:\>dacls testl /Г
C:\testl Everyone: (01) [CDF C:\testl\testl.exe NT AUTHORITY\SYSTEM:F
BUILTIN\Administrators:F C:\testl\testl.txt Everyone:F C:\testl\test2 Everyone: (01) [CDF C:\testl\test2\test2.exe NT AUTHORITY\SYSTEM:F
EDILTIN\Administrators:F C:\testl\test2\test2.txt Everyone:F
В обычном Web-сервере рекомендуется установить ограничения SystenuFull, Administrators : Full для всех исполняемых файлов в каталоге %systemroot%.
C:\>caclE %systemroot%\*.exe /Т IG System:F Administrators:F
Приведенная выше команда позволяет заблокировать использование программ для пользователей, не имеющих прав администратора, которые теперь не смогут применять программы атаки типа Unicode, основанные на непривилегированном доступе к программам.
Утилита xcalcs из пакета Resource Kit почти ничем не отличается от программы calcs, но обеспечивает некоторые дополнительные возможности, например, разрешает устанавливать дополнительные права доступа. Можно также использовать шаблоны безопасности Windows 2000 Security Templates для автоматизации конфигурирования записей списков контроля доступа в NTFS (см. главу 16, "Возможности и средства защиты в системах Windows").
Конечно, такие программы можно также переместить, переименовать или удалить, т.е. еще надежнее скрыть их от хакеров.
Удалите права записи и исполнения для групп Everyone и Users из списков ACL сервера
Членами групп Everyone и Users являются пользователи Т.иЗ'В._имя_машины и ~ткк_имя_машины. Убедитесь в том, что для учетных записей IOSR и IWAM не предоставлено право записи (Write) для любых файлов и каталогов системы — мы показали, кчему может привести возможность записи даже в один каталог! Также тщательно рассмотрите права выполнения (Execute) программ для непривилегированных групп, а особенно — не предоставляйте непривилегированным пользователям права записи и чтения для одного и того же каталога! Не забывайте, что в сервере IIS6 рабочие процессы по умолчанию запускаются от имени учетной записи Network Service, поэтому следует проверить ограничения списков контроля доступа и для этой учетной записи. Также должны быть проверены и другие учетные записи, включенные в группу 1IS_WPG. Кроме
того, при установке платформы asp.net на Windows 2000 проверке должна подвергнуться учетная запись aspnet или другая учетная запись, от имени которой запускаются приложения asp.net.
Умейте выявлять признаки атаки
Как всегда, относитесь к расследованию происшествий так же серьезно, как и К ИХ предотвращению — особенно это касается "хрупких" Web-серверов. Определить, что сервер стал жертвой атаки Unicode, можно по четырем признакам: по портам, по процессам, по инфор­мации о файловой системе и реестре, а также по записям в журналах.
В операционной системе Windows ХР и следующих версиях Microsoft реализовала поддержку параметра -о для команды netstat, с помощью которого можно узнать, какие процессы связаны с конкретными открытыми портами или установленными соединениями. Более подробно эту тему мы рассмотрели в главе 9, "Сокрытие следов".
Что касается файлов и реестра Windows, то в сети Internet доступно множество программ атаки, основанных на ошибке Unicode. Здесь будут описаны такие файлы, KaKsensepost.exe, unicodeloader.pl, upload.asp, upload.inc и cmdasp.asp, которые играют главную роль в использовании данного уязвимого места. Даже простое переименование этих файлов часто позволяет блокировать атаки неквалифицированных нарушителей. Особенно нужно следить, чтобы эти программы не попали в каталоги, для которых предоставлены права чтения/записи, например каталог \scripts. Некоторые другие широко используемые программы атаки размещают файлы с именами root. exe (переименованный командный интерпретатор), е. asp, dl.exe, reggina.exe, regit.exe, restsec.exe, makeini.exe, newgina.dll, f iredaemon. exe, mmtask. exe, sud. exe И sud. bak.
В системных журналах сервер iis записывает длинные символы Unicode "/"и"\''в формате ascii, что усложняет выявление вредоносных действий против сервера. Ниже показаны некоторые характерные записи из журналов реального Web-сервера, который был взломан с использованием программы атаки Unicode (звездочки используются в качестве универсальных символов).
GET /scripts/.. \ .. /winnt/system32/cn\d.exe /с+dir 200 GET /scripts/../../wiimt/system32/tftp.exe* GET /naughty_real_ - 404 GET /scripts/sensepost.exe /c+echo* "Olifante%20onder%20my%20bed* * sensepos t.exe *
POST /scripts/upload.asp - 200 POST /scripts/cmdasp.asp - 200
POST /scripts/cmdasp.asp |-|ASP_0113|Script_timed_oue 500

 

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