Глава 3. ИНВЕНТАРИЗАЦИЯ
|
Инвентаризация Собрав полное "досье" на исследуемую сеть и "прощупав" систему ее защиты, хакер, скорее всего, на этом не остановится. Следующим шагом на пути к проникновению в систему будет получение информации о пользовательских учетных записях или плохо защищенных совместно используемых ресурсах. Для сбора такой информации существует много различных способов, которым дали общее название — инвентаризация (enumeration). В данной главе подробно рассматриваются основные методы, используемые в процессе инвентаризации.
Методика инвентаризации в значительной степени зависит от операционной системы (именно поэтому так важна информация, полученная на этапе сканирования портов и установления типа и версии операционной системы, о чем шла речь в главе 2). Зная, какая информация может заинтересовать хакера и насколько хорошо ваша система ее скрывает, вы можете предпринять ответные меры, которые позволят защитить самые уязвимые участки. |
Инвентаризация Windows NT/2000 За все время своего существования Windows NT заслужила репутацию системы, которая предоставляет общедоступную информацию по любому удаленному запросу. В основном это осуществляется через протоколы передачи данных CIFS/SMB (Common Internet File System/Server Message Block), от которых в значительной степени зависит работа сетевых служб. Хотя в Win 2000 имеется возможность автономного использования протокола TCP/IP без протокола NetBIOS, она получила в наследство все недостатки своей предшественницы. Система Win 2000 содержит также несколько новых возможностей, которые могут заинтересовать случайного сборщика информации. В данной главе будут обсуждаться и старые, и новые особенности, а также рекомендуемые действия, с помощью которых можно защитить ценную информацию еще до того момента, когда кто-либо соберет достаточное количество информации для крупномасштабной атаки. Windows NT/2000 Hacking Kit Начиная с версии Windows NT 3.1 компания Microsoft предлагает за отдельную плату дополнительный комплект документации и компакт-диск, на котором собрано множество утилит для администрирования сетей на базе Windows NT — Windows NT Resource Kit (как в варианте Workstation, так и в варианте Server). В комплект NTRK (так мы будем называть его далее в этой книге) входит обширная подборка различных утилит, начиная от частично реализованного интерпретатора популярного языка сценариев Perl, позволяющего перенести на платформу NT многие популярные утилиты UNIX, и заканчивая утилитами удаленного администрирования, не входящими в стандартный комплект поставки Windows NT. Без данного комплекта не может обойтись ни один серьезный администратор NT. Интерпретатор языка Perl, имеющийся в комплекте NTRK, предоставляет не такие широкие возможности, как комплект для Windows от компании ActiveState, который можно найти по адресу http://www.activestate.com. В комплект W2RK компанией Microsoft включена версия ActivePerl Build 521 компании ActiveState. Если вы планируете использовать язык Perl в Windows, мы советуем обратиться именно к этой реализации, поскольку многие из рассматриваемых в книге утилит, реализованных на этом языке, в случае применения интерпретатора Perl из набора NTRK работают некорректно.Хотя сознательным администраторам NT/2000 мы настоятельно рекомендуем приобретать все комплекты NTRK и отслеживать все новшества, не устанавливайте их на действующих серверах. В противном случае вы обратите оружие против себя! Для обеспечения требуемой функциональности устанавливайте лишь наиболее важные утилиты. Для хранения поместите на съемный или сетевой диск все утилиты NTRK и используйте их лишь при необходимости.
Нулевые соединения: "Священный Грааль" инвентаризации Как уже упоминалось, системы Windows NT/2000 имеют ахиллесову пяту при использовании протоколов CIFS/SMB и NetBIOS в режиме, используемом по умолчанию. В состав стандартов CIFS/SMB и NetBIOS входят программные интерфейсы, возвращающие различную информацию о компьютере через порт TCP с номером 139. Такие данные смогут получить даже те пользователи, которые не были аутентифицированы. Первым шагом на пути получения удаленного доступа к этим интерфейсам является создание простого, без аутентификации, соединения с системой NT/2000 с помощью так называемого нулевого сеанса (null session). Предполагается, что в результате ранее выполненного сканирования портов было установлено, что TCP-порт 139 находится в состоянии ожидания запросов. Такое соединение можно установить с помощью следующей команды. Нулевой сеанс: контрмеры При установке нулевого соединения требуется доступ к TCP-порту 139, так что наиболее правильный путь предотвращения такой опасности состоит в фильтрации запросов по протоколу NetBIOS к портам TCP и UDP с номерами от 135 до 139 по всему периметру сетевых устройств управления доступом. Необходимо также запретить использование протокола NetBIOS поверх TCP/IP и на отдельных узлах, отсоединив клиент WINS (TCP/IP) от соответствующего интерфейса с помощью аплета Network панели управления. В системе Windows 2000 для этого нужно запустить аплет соответствующего сетевого подключения, открыть диалоговое окно Advanced TCP/IP Settings, перейти во вкладку WINS и отключить режим Disable NetBIOS Over TCP/IP. В системе Win 2000 используется еще порт 8MB с номером 445, который позволяет получить аналогичную информацию. Более подробные сведения и описание методов защиты содержатся в главе 6. Начиная с третьего сервисного пакета системы NT компания Microsoft предложила механизм, позволяющий предотвратить опасность извлечения важной информации с помощью нулевых соединений без отключения режима использования протокола NetBIOS поверх TCP/IP (хотя мы по-прежнему рекомендуем сделать это, если в службах NetBIOS нет необходимости). Этот механизм был назван RestrictAnonymous — по названию соответствующего параметра системного реестра. Для его использования выполните следующие действия.
Одним из самых примечательных исключений из этого правила является утилита sid2user (описываемая в разделе "Инвентаризация Пользователей И Групп NT/2000"), которая продолжает функционировать даже при включенном режиме RestrictAnonymous. Более подробную информацию можно найти в статье Q143474 системы Knowledge Base компании Microsoft по адресу http://search.support.microsoft.com. Для получения более подробного технического описания можно обратиться к статье о хакинге служб NetBIOS CIFS: Common insecurities Fail Scrutiny Хобита, которую можно найти по адресу http://www.avian.org или в документах RFC 1001 и 1002, где содержится спецификация передачи данных по протоколам NetBIOS и TCP/UDP. |
Инвентаризация сетевых ресурсов NT/2000 Первое, что может попробовать осуществить удаленный взломщик после скрупулезного изучения сети, — это получить представление об имеющихся в ней ресурсах. Сначала мы рассмотрим инвентаризацию ресурсов NetBIOS, а затем перейдем к инвентаризации служб TCP/IP, которые в большинстве случаев функционируют в системах NT/2000. Инвентаризация NetBIOS Средства и приемы, которые можно применять к изучению ресурсов сети с протоколом NetBIOS, можно найти без труда — большинство из них встроено в саму операционную систему! Именно с них мы и начнем. Затем вы познакомитесь с некоторыми утилитами сторонних производителей. Возможные контрмеры лучше рассматривать в самом конце обсуждения, поскольку одновременно решить все проблемы гораздо проще. Инвентаризация доменов NT/2000 с помощью команды net view В качестве одного из самых ярких примеров встроенных инструментов можно привести команду net view. Это чрезвычайно простая утилита командной строки систем NT/2000, которая позволяет просмотреть все домены сети, а также практически все компьютеры доменов. Вот как выполнить инвентаризацию доменов в сети с использованием команды net view: C:\>net view /domain С помощью следующей команды будут перечислены все компьютеры определенного домена. C:\>net view /domain:corleone He забывайте о том, что можно использовать информацию, полученную с помощью ping-прослушивания (глава 2), и подставить IP-адреса вместо имен NetBIOS отдельных компьютеров. Обычно IP-адреса и имена NetBIOS взаимозаменяемы (например, \\192.168.202.5 эквивалентно \\SERVER_NAME). Для удобства взломщики зачастую добавляют соответствующие записи с ключевым словом #PRE В свой файл %systemroot%\system32\drivers\etc\LMHOSTS, а затем запускают в командной строке команду nbtstat -R, чтобы перезагрузить буфер таблицы имен. С этого момента при атаке можно без проблем использовать имя NetBIOS, которое автоматически будет преобразовываться в соответствующий IP-адрес, заданный в файле LMHOSTS.
Получение дампа таблицы имен NetBIOS с помощью команд nbtstat и nbtscan Другой мощной встроенной утилитой является nbtstat, которая позволяет получить таблицу имен NetBIOS удаленной системы. Как видно из следующего примера, в этой таблице содержится важная информация. C:\>nbtstat -A 192.168.202.33 Фрагмент листинга указывает, что с помощью команды nbtstat было получено имя компьютера (SERVR9), домен, в котором он расположен (9DOMAIN), имена зарегистрированных пользователей (ADMINISTRATOR), все запущенные службы (inet-Services) и МАС-адрес. Всю эту информацию можно узнать по кодам службы NetBIOS (числа из двух цифр, расположенные справа от имени), частично представленным в табл. 3.1. Таблица 3. 1. Стандартные коды служб NetBIOS
Двумя основными недостатками команды nbtstat являются возможность ее применения к одному узлу одновременно и несколько непонятные выходные данные. Обоих этих недостатков лишена свободно распространяемая утилита nbtscan Аллы Безручко (Alia Bezroutchko), которую можно найти по адресу http://www.abb.aha. ru/software/nbtscan.html. Эта утилита позволяет быстро выполнить те же действия, что и команда nbtstat, над всей сетью и при этом предоставляет прекрасно отформатированные результаты. D:\Toolbox\nbtscanl02> Утилита nbtscan позволяет быстро получить данные об узлах сети, на которых используется система Windows. Попробуйте запустить ее для сети класса С из Internet, и вы поймете, что именно мы хотели сказать. Инвентаризация контроллеров доменов Для того чтобы проникнуть в структуру сети Windows NT немного глубже, понадобится инструмент, входящий в комплект NTRK. В следующем примере мы увидим, как с помощью средства NTRK nltest можно узнать, какие контроллеры доменов являются первичными (РОС — Primary Domain Controller), а какие — вторичными (ВDC — Backup Domain Controller). C:\> nltest /dclist:corleone Для дальнейшего продвижения вперед нам необходимо воспользоваться нулевым соединением. (Помните о нем? Если нет, то вернитесь к началу данной главы.) Достаточно установить нулевой сеанс с одним из узлов представляющего интерес домена, чтобы затем с помощью команды вида nltest /server :<имя_сервера>, а также параметра /trusted_ domains узнать всю информацию о доменах NT, в которые входит данный компьютер. Инвентаризация совместно используемых ресурсов NetBIOS с помощью команды net view и утилит NTRK Установив нулевой сеанс, можно снова взяться за старую добрую команду net view и провести инвентаризацию ресурсов удаленной системы, предоставленных для совместного доступа: C:\>net view \\vito В состав комплекта NTRK входят три утилиты, которые могут оказаться полезными для инвентаризации совместно используемых ресурсов, — rmtshare, srvcheck и srvinfo (с параметром -s). Утилита rmtshare выводит результат примерно в том же виде, что и команда net view. Утилита srvcheck отображает сведения о совместно используемых ресурсах и авторизованных пользователях, включая скрытые ресурсы. Однако для этого необходимо получить доступ к удаленной системе в качестве привилегированного пользователя. Наконец, утилита srvinfo с параметром -s позволяет просмотреть перечень совместно используемых ресурсов, а также получить об исследуемой системе множество другой полезной информации. Инвентаризация совместно используемых ресурсов NetBIOS с помощью утилиты DumpSec (ранее DumpACL) Одним из лучших инструментов для инвентаризации совместно используемых ресурсов NT (причем этим возможности .не ограничиваются), является пакет DumpSec (ранее DumpACL), основное диалоговое окно которого показано на рис. 3.1. Он распространяется бесплатно компанией Somarsoft (http://www.somarsoft.com). Вряд ли можно найти другой инструмент, который заслуживал бы такого же внимания администратора NT. Программа DumpSec выполняет чрезвычайно широкий аудит, начиная от разрешений на использование файловой системы удаленного узла и заканчивая перечнем запущенных на ней служб. На рис. 3.1 показан пример работы программы DumpSec для получения информации о совместно используемых ресурсах удаленной системы. Основная информация о пользователях может быть получена даже через нулевое соединение. Кроме того, эту программу можно запускать из командной строки, что позволяет без особых проблем применять ее при автоматизации процесса сбора и обработки информации, а также при написании сценариев.
Поиск совместно используемых ресурсов с помощью утилит Legion и NAT Открытие нулевого сеанса и использование описанных выше инструментов в ручном режиме прекрасно подходят для прямого вторжения, однако большинство хакеров предпочитают использовать сканер NetBIOS, чтобы быстро проверить целую сеть на предмет наличия незащищенных ресурсов. Одной из наиболее популярных утилит является Legion (ее можно найти во многих архивах Internet), диалоговое окно которой показано на следующем рисунке. Утилита Legion может обследовать сеть класса С и представить в своем окне перечень всех обнаруженных совместно используемых ресурсов. Ее версия 2.1 поддерживает режим подбора пароля "в лоб", при использовании которого утилита пытается подключиться к определенному ресурсу с помощью предоставленного пользователем списка паролей. Более подробная информация о подборе паролей Windows 9x и Windows NT приведена в главах 4 и 5 соответственно.
Еще одним популярным сканером совместно используемых ресурсов Windows является утилита NetBIOS Auditing Tool (NAT), работа которой основывается на коде, написанном Эндрю Тридгеллем (Andrew Tridgell). Эту утилиту можно найти на Web-узле книги по адресу http://www.hacking exposed.com. Участники ныне уже не существующей группы Rhino9 Security Team Неон Сурж (Neon Surge) и Хамелеон (Chameleon) написали графический интерфейс для утилиты NAT (рис. 3.2). Утилита NAT не только находит совместно используемые ресурсы, но и пытается подключится к ним с помощью списков пользовательских имен и паролей. Другие средства инвентаризации сети NT/2000 Необходимо упомянуть еще несколько программ, предназначенных для инвентаризации ресурсов NT: epdump компании Microsoft (ее можно найти по адресу http: //www.ntshop.net/security/tools/def.htm), getmac и netdom (из комплекта NTRK), а также утилиту netviewx Джеспера Лорицена (Jesper Lauritsen) http://www.ibt.ku.dk/jesper/NTtools). Утилита epdump посредством обращения :< интерфейсу RPC отображает перечень служб, связанных с IP-адресами и номерами портов (при этом результаты отображаются далеко не лучшим образом). Утилита getmac, используя нулевой сеанс, отображает МАС-адреса и имена устройств, присвоенных сетевым адаптерам удаленных узлов. Эта информация имеет особый интерес только для хакера, который ищет систему с несколькими сетевыми адаптерами. Утилита netdom более полезна, поскольку она выдает информацию обо всех связанных доменах, включая сведения о принадлежности к домену и его резервных контроллерах. Утилита netviewx также является мощным инструментом, позволяющим получить информацию об узлах домена и запущенных на них службах. Мы часто используем netviewx для проверки наличия службы удаленного доступа NT (RAS— Remote Access Service), чтобы получить представление о количестве серверов в сети, обеспечивающих удаленный доступ. Для этого можно воспользоваться представленной ниже командой. С помощью параметра -T задается имя исследуемого домена, а параметр -т позволяет задать тип компьютера или службы. C:\>netviewx -D CORLEONE -Т dialin_server Имена служб, запущенных на этом сервере, представлены между символами %. Кроме того, утилита netviewx является хорошим средством для поиска компьютера, который не является контроллером домена. Это не лишено смысла, поскольку вероятность того, что такой компьютер не будет иметь надежной защиты гораздо выше, чем у контроллера домена. Универсальное средство инвентаризации: утилита еnum Эта утилита была разработана группой Razor компании Bindview. В ней реализованы возможности всех других средств инвентаризации NetBIOS. Разработчики назвали эту программу enum, и это очень подходит для данной главы. Утилиту enum можно найти по адресу http://razor.bind-view.com. В приведенном ниже листинге представлены возможные Параметры командной строки. Из листинга видно, насколько всесторонние возможности предоставляет эта утилита. D:\Toolbox>enum Утилита enum позволяет автоматически устанавливать и завершать нулевой сеанс. Отдельного упоминания заслуживает параметр -Р, предоставляющий информацию о принятой политике шифрования паролями. С его помощью взломщики могут оценить возможность удаленного определения пользовательских паролей (с помощью параметров -о, -и и -£) до того момента, как будет найден наиболее легкий из них. Более подробно утилита еnum будет рассматриваться в следующем разделе, посвященном инвентаризации учетных записей пользователей NT/2000. Инвентаризация NetBIOS: контрмеры Практически во всех рассмотренных выше приемах задействуется механизм передачи данных NetBIOS, так что при запрещении доступа к портам TCP и UDP с 135 до 139 все попытки получения информации окажутся неудачными. Для этого лучше всего заблокировать доступ к этим портам с использованием маршрутизатора, брандмауэра или любого другого устройства управления доступом. В разделе, посвященном нулевым сеансам, вы узнали, как запретить использование протокола NetBIOS поверх TCP/IP и нужным образом настроить параметр системного реестра RestrictAnonymous. Это позволит предотвратить опасность извлечения важных данных посредством установки анонимных соединений. Однако правильное конфигурирование параметра RestrictAnonymous не способно заблокировать запросы, сгенерированные с использованием команд net view и nbtstat. Кроме того, не забывайте о том, что в системе Win 2000 некоторую информацию можно получить и через порт TCP/UDP с номером 445, так что доступ к этом порту также целесообразно заблокировать. Инвентаризация SNMP NT/2000 Даже если вы сделали все, чтобы предотвратить доступ к службам NetBIOS, с компьютера NT/2000 по-прежнему можно получить аналогичную информацию, если на нем запушен агент SNMP (Simple Network Management Protocol). Доступ к этому агенту можно получить с помощью строки доступа public, используемой по умолчанию. В таких случаях инвентаризация пользователей NT через протокол SNMP с помощью программы sranputil из комплекта NTRK превращается в увеселительную прогулку как в прямом (от английского слова walk ("пройтись"), фигурирующего в качестве параметра), так и в переносном смысле. С:\>snmputil walk 192.168.202.33 В приведенном выше примере запуска утилиты snmputil последний параметр (.1.3.6.1.4.1.77.1.2.25)— это идентификатор объекта (OID — Object Identifier), который в соответствии с требованиями протокола SNMP определяет ветвь информационной управляющей базы (MIB — Management Information Base) компании Microsoft. База MIB — это иерархическое пространство имен, поэтому "прогулка" по всему дереву (т.е. использование менее точного значения, например .1.3.6.1.4.1.77) приведет к получению слишком больших объемов информации. Запомнить все номера довольно сложно, поэтому взломщик, скорее всего, ограничится их строковыми эквивалентами. Ниже перечислены некоторые сегменты MIB, с помощью которых можно получить соответствующую информацию (для этого необходимо добавить тот или иной сегмент к .iso.оrg.dod.internet.private.enterprises.lanmanager.lanmgr-2).
Конечно, можно избавиться от рутинной работы по вводу столь длинных параметров. Для этого достаточно найти в Internet (например, по адресу http: //www.solar winds.net) прекрасный SNMP-броузер с именем IP Network Browser, предоставляющий всю перечисленную выше информацию в наглядной форме. На рис. 3.3 показано, как программа IP Network Browser проверяет сеть на наличие в ней компьютеров, на которых используется протокол SNMP.
Контрмеры: защита протокола SNMP Самый простой способ предупреждения такой деятельности состоит в удалении агента SNMP или в отключении службы SNMP с помощью аплета Services панели управления. Если данный вариант вам не подходит, то как минимум убедитесь в том, что доступ к данной службе правильно настроен и используется строка доступа private, а не установленная по умолчанию строка public. Можно также отредактировать системный реестр, чтобы разрешить только санкционированный доступ к службе SNMP и запретить передачу информации NetBIOS о системе. Для этого запустите программу regedt32 и найдите параметр HKLM\ SystemNCurrentControlSet\Services\ SNMP\Paramaters\ValidConununities. Выберите команду Permissions>Security и установите в открывшемся диалоговом окне значение таким образом, чтобы разрешить доступ только аутентифицированным пользователям системы. Затем перейдите к разделу HKLM\System\CurrentControlSet\ Services\SNMP\ ParametersNExtensionAgents, удалите значение, содержащее строку LANManagerMIB2Agent, а затем переименуйте остальные параметры, чтобы восстановить правильную последовательность. Например, если вы удалили параметр с номером 1, переименуйте параметры 2, 3, 4 и т.д. в 1, 2, 3 и т.д. Перенос зоны DNS Win 2000 Как было показано в главе 1, одной из основных целей предварительного сбора информации является получение данных о системе доменных имен (DNS), используемой в Internet, и преобразование IP-адресов узлов в дружественные имена, такие как amazon.com. Поскольку пространство имен активного каталога основывается на использовании службы DNS, компания Microsoft полностью обновила реализацию сервера DNS в Win 2000, чтобы удовлетворить всем новым потребностям. D:\Toolbox>nslookup Согласно спецификации RFC 2052, запись SRV имеет следующий формат. Блокирование переноса зоны DNS Win 2000 К счастью, в системе Win 2000 служба DNS реализована таким образом, что можно без проблем ограничить перенос зоны, как показано ниже на рисунке. На нем представлено диалоговое окно свойств зоны поиска в прямом направлении (в данном случае для сервера labf arce. org). Для того чтобы открыть это окно, запустите консоль управления Computer Management и откройте элемент Server Applications and Services\DNS\<имя_cepверa>\Forward Lookup Zones\[имя_зоны], а затем выберите команду Properties. Нетрудно догадаться, что по умолчанию в системе Windows 2000 разрешен перенос зоны по любому запросу. Можно полностью запретить перенос зоны, просто сбросив флажок Allow zone transfers, однако более реалистично было бы предположить, что на резервных серверах DNS информация должна регулярно обновляться. Так что в диалоговом окне свойств зоны можно установить и менее ограничивающий режим. |
Инвентаризация приложений и идентификационных маркеров Выше были рассмотрены вопросы инвентаризации сети и учетных записей пользователей. При этом для достижения требуемого результата применимы различные средства, встроенные в саму операционную систему. А как насчет получения списка приложений, установленных на компьютере NT/2000? Подобная информация способна значительно расширить знания об исследуемой системе. Процесс подключения к удаленным приложениям и наблюдение за результатами их использования часто называется сбором маркеров (banner grabbing) и может оказаться неожиданно информативным для взломщиков. Если говорить кратко, то в процессе сбора маркеров можно идентифицировать программное обеспечение, запущенное на сервере, и его версию. А этого во многих случаях будет вполне достаточно, чтобы начать поиск уязвимых мест. Основы процесса сбора маркеров: утилиты telnet и netcat Испытанным и надежным инструментом инвентаризации идентификационных маркеров и приложений как в мире NT, так и в мире UNIX, является утилита telnet. Установив с ее помощью соединение с известным портом исследуемого сервера, нажмите несколько раз клавишу <Enter> и посмотрите полученный результат. C:\>telnet www.corleone.com 80 Этот метод срабатывает для многих популярных приложений, использующих указанный порт (попробуйте его для порта HTTP 80, SMTP 25 или FTP 21, который особенно информативен при исследовании сервера под управлением Windows). C:\>nc -v www.corleone.com 80 В таких ситуациях ввод даже небольшого количества данных приводит к получению отклика со стороны удаленного узла. В данном случае, при нажатии клавиши <Enter> мы получим следующие результаты. НТТР/1.1 400 Bad Request Полученная информация способна существенно сузить область поиска подходов к проникновению в исследуемую систему. Теперь, когда известен производитель и версия программного обеспечения Web-сервера, взломщики могут сосредоточиться на методах, специфичных для данной платформы, и перебирать хорошо проверенные приемы до тех пор, пока один из них не достигнет цели. Таким образом, время начинает работать на злоумышленника, а не в пользу администратора. Мы еще не раз остановимся на методах применения утилиты netcat, в том числе и для извлечения дополнительной информации при инвентаризации UNIX. Этот вопрос будет рассматриваться в следующем разделе. Сбор идентификационных маркеров NT/2000: контрмеры Защита от такого рода попыток проведения инвентаризации требует от администратора некоторой доли изобретательности. Однако мы не можем определить с достаточной степенью определенности, насколько важна для взломщиков информация о приложениях и службах, работающих в вашей сети. Инвентаризация системного реестра NT/2000 Другой механизм получения информации о приложениях NT/2000 подразумевает получение копии содержимого системного реестра исследуемого компьютера. Практически все современные приложения, корректно установленные на компьютере NT, оставляют более или менее заметные "следы" в системном реестре. Требуется лишь знать, где производить поиск требуемой информации. Кроме того, злоумышленник, получивший доступ к системному реестру, может почерпнуть из него немало сведений о пользователях и параметрах конфигурации. Запасшись изрядной долей терпения, в лабиринте ульев можно обнаружить сведения, которые позволят получить доступ к нужной информации. К счастью, в системе NT/2000 доступ к системному реестру по умолчанию разрешен лишь администраторам (по меньшей мере в ее версии для сервера). Таким образом, описываемый ниже метод обычно неприменим при использовании анонимных нулевых соединений. Однако из этого правила существует одно исключение, когда в ключе HKLM\System\Current-ControlSet\Control\SecurePipeServer\ Winreg\AllowedPaths заданы другие параметры, открытые для доступа посредством нулевых сеансов. В этом случае по умолчанию доступ разрешен к ключу HKLM\software\Microsoft\windowsNT\ CurrentVersion. С:\> regdmp -m \\192.168.202.33 Программа DumpSec позволяет получить результат в более привлекательной форме (рис. 3.6), однако в большинстве случаев он ничем не отличается от результатов применения утилиты regdmp. В отчете утилиты DumpSec содержатся сведения обо всех службах и драйверах ядра Win32 удаленной системы, как работающих, так и не работающих (в соответствии с установленными разрешениями). Полученная информация может подсказать злоумышленнику, в каком направлении необходимо сосредоточить усилия при планировании вторжения и его реализации. Не забывайте о том, что при использовании программы DumpSec требуется открытие нулевого сеанса.
Контрмеры против сбора идентификационных маркеров и инвентаризации системного реестра Убедитесь, что системный реестр заблокирован и к нему нельзя получить доступ с использованием удаленных соединений. Для этого необходимо проверить возможность удаленного доступа к ключу HKLM\System\CurrentControlSet\SecurePipe Servers \winreg и всем связанным с ним подключам. Если этот ключ присутствует, то по умолчанию удаленный доступ к реестру разрешен лишь администраторам. Этот ключ по умолчанию присутствует только в версии Win NT/2000, предназначенной для сервера, но не для рабочей станции. В дополнительных подключах задаются определенные пути системного реестра, разрешающие доступ независимо от политики обеспечения безопасности, принятой для ключа winreg. Более подробная информация об этом приведена в статье Q155363 базы данных компании Microsoft, которую можно найти по адресу http://search.support.microsoft.com. Кроме того, воспользуйтесь каким-нибудь хорошим средством, например программой DumpSec, и удостоверьтесь в отсутствии утечки информации. |
Позвольте сценариям выполнить всю работу Вы подробно познакомились с ручными методами, которые взломщик может предпринять для инвентаризации сети, пользователей и получения данных о приложениях. Вполне понятно, что многие после прочтения материала, приведенного выше, забеспокоились и сразу же приступили к тестированию своих сетей на предмет поиска уязвимых мест. Однако это может оказаться трудноразрешимой задачей, если ваша сеть большого размера с множеством серверов. К счастью, большинство из описанных в данном разделе средств можно запускать из командной строки и, следовательно, легко автоматизировать их использование с помощью простых командных сценариев или других приемов. C:\>for /L %i Полученные результаты можно сократить, подав их на вход фильтра и оставив таким образом лишь список имен пользователей. Конечно, среда написания сценариев не ограничивается лишь командной оболочкой системы NT. Для этих целей удобно пользоваться также языками Perl, VBScript или другими средствами. Еще стоит упомянуть о том, что с помощью приведенного сценария можно успешно извлечь список пользователей, если на исследуемом узле открыты TCP-порты 139 или 445, а также не установлено значение для параметра RestrictSnonymous. |
Инвентаризация Novell Система Windows NT/2000 не одинока в наличии такого "порока", как нулевой сеанс. У сетевой операционной системы Novell NetWare имеется еще более серьезная проблема. Она состоит в том, что NetWare практически не заботится о защите информации, предоставляя ее кому угодно без какой-либо аутентификации сервером или деревом. Серверы NetWare 3.x и 4.x (с включенным контекстом Bindery (связки)) имеют так называемый изъян "присоединения" (attach), позволяющий любому желающему получить информацию о серверах, деревьях, группах, принтерах и пользовательских именах без регистрации на каком-либо сервере. В данном разделе мы покажем на практике, как это сделать, а затем дадим рекомендации по устранению этих недостатков. |
Сетевое окружение Первый этап инвентаризации сети NetWare состоит в получении данных о соединенных друг с другом серверах и деревьях. Это можно сделать различными способами, однако проще всего воспользоваться средством Network Neighborhood систем Windows 95/98/NT. Эта удобная утилита просмотра сетевых ресурсов обеспечивает возможность опрашивания всех серверов NetWare и деревьев NDS, с которыми имеется физическое соединение (рис. 3.7), хотя необходимо отметить, что вы не сможете просмотреть структуру дерева, не зарегистрировавшись в самом дереве. Конечно, данный факт сам по себе не угрожает информации, однако он показывает, что если каждый шаг можно выполнить столь просто, то и вся дистанция не покажется такой уж сложной.
Соединения с использованием клиента Client32 Программа управления службами Novell NetWare Services, представленная пиктограммой в системной области панели задач, позволяет управлять подключениями к NetWare с помощью команды NetWare Connections, как показано ниже.
Просмотр серверов NetWare с помощью On-Site Admin Не проходя аутентификации ни на одном сервере, можно просмотреть состояние любого сервера сети, воспользовавшись утилитой Novell On-Site Admin (ftp://ftp.cdrom.com). Вместо широковещательной рассылки сообщений эта утилита отображает сведения о серверах, хранящиеся в локальном буфере утилиты просмотра сетевого окружения. Эта утилита периодически обновляет свой буфер, рассылая по сети широковещательные сообщения серверам' NetWare. На рис. 3.9 показан пример того, как много информации можно получить с помощью утилиты On-Site Admin.
Программа On-Site Admin позволяет выполнять также и анализ, как показано на рис. 3.10. Выбрав сервер и щелкнув на кнопке Analyze, можно получить исчерпывающую информацию о томе NetWare.
|
Просмотр дерева с помощью утилиты On-Site Admin С помощью утилиты On-Site Admin можно также просмотреть всю информацию большинства деревьев NDS вплоть до их листьев. В этом случае клиент Client32 просто подключается к выбранному в дереве серверу (см. рисунок выше). Возможно это потому, что по умолчанию NetWare 4.x позволяет просматривать дерево любому желающему. Эту опасность можно устранить, добавив в корень дерева фильтр наследования прав (IRF — inheritance rights filter). Содержащаяся в дереве NDS информация является очень важной, поэтому нельзя разрешать просматривать ее кому попало, поскольку при его просмотре можно получить сведения о пользователях, группах, серверах и томах (рис. 3.11).
Получив всю информацию, о которой говорилось в данном разделе, злоумышленник может перейти к активным действиям по проникновению в систему, о которых мы поговорим в главе 7. |
Инвентаризация UNIX Большинство современных реализаций системы UNIX основываются на стандартных средствах обеспечения сетевой безопасности протокола TCP/IP. Благодаря этому они не так щедро раздают всем желающим информацию о сети, как система NT, в которой используется унаследованный от предыдущих версий интерфейс NetBIOS, или система NetWare, работа которой основывается на собственном механизме безопасности компании Novell. Естественно, это вовсе не означает, что система UNIX является неуязвимой, а ее сетевые ресурсы не могут подвергнутся инвентаризации. Все зависит от конфигурационных параметров системы. Например, службы RFC (Remote Procedure Call — удаленный вызов процедур), N1S (Network Information Service — сетевая информационная служба) и NFS (Network File System — сетевая файловая система), преимущества которых очень часто используют разработчики, являются излюбленными "мишенями" для взломщиков на протяжении уже многих лет. Ниже вы познакомитесь с некоторыми классическими методами инвентаризации UNIX (другими словами, старые и проверенные способы, которые, по-видимому, практически всегда будут срабатывать). Инвентаризация сетевых и совместно используемых ресурсов UNIX Лучшими источниками информации о сети UNIX являются базовые методы исследования стека протоколов TCP/IP, которые рассматривались в главе 2. Среди других средств можно выделить утилиту showmount, которую можно использовать для инвентаризации экспортируемых в сети файловых систем NFS. Например, предположим, что в результате сканирования стало известно, что на исследуемом компьютере в состоянии ожидания запросов находится порт 2049 (NFS). В этом случае с помощью утилиты showmount можно выяснить, какие именно каталоги являются совместно используемыми. showmount -e 192.168.202.34 Использование параметра -е позволяет получить список экспортируемых файловых систем сервера NFS. К сожалению, архитектура NFS в данном случае не позволяет противопоставить каких-либо защитных мер запросам такого рода. Можно лишь посоветовать, чтобы доступ к экспортируемой файловой системе выполнялся в соответствии с установленными разрешениями (операции чтения и записи должны быть разрешены только для строго определенных узлов), а доступ к NFS блокировался бы извне с помощью брандмауэра (порт 2049). Запросы утилиты showmount тоже можно регистрировать в системе. Это облегчает обнаружение взломщика. Инвентаризация пользователей и групп UNIX Возможно, самым старым приемом инвентаризации учетных записей пользователей, описанных в данной книге, является утилита finger. Эта утилита предоставляла простой и удобный способ получения информации о пользователях удаленного узла еще в те времена, когда сеть Internet не была настолько большой и простой в использовании. Мы упоминаем здесь об этой утилите в основном для того, чтобы акцентировать ваше внимание на основных способах ее использования. Многие средства проникновения в сеть по-прежнему базируются на использовании этой утилиты, поскольку нерадивые системные администраторы зачастую запускают системный процесс fingerd без каких-либо мер обеспечения безопасности. Как и прежде, мы предполагаем, что в процессе сканирования портов была получена информация о том, что на исследуемом узле запущена служба finger (порт 79). [root$]finger -I @target.hackme.com Команда finger 0@имя-узла также позволяет получить интересный результат. [root$]finger 00192.168.202.34 Как легко заметить, большая часть информации, которая отображается утилитой finger, не имеет особого значения (она выбирается из соответствующих полей файла /etc/password). Можно сказать, что с точки зрения безопасности самой опасной является информация об именах пользователей, зарегистрированных в системе, а также о времени, в течение которой пользователь не выполняет каких-либо операций (idle). Это поможет хакеру определить, кто в данный момент "присматривает" за машиной (возможно, пользователь root?) и насколько внимательно он это делает. Некоторая дополнительная информация может использоваться при попытке проникновения в сеть с помощью приемов социальной инженерии. (Социальная инженерия (social engineering) — термин из словаря хакера, обозначающий попытку с помощью психологических приемов установить контакт с нужными людьми с целью получения от них информации для проникновения в систему. Более подробная информация об этом содержится в главе 14, "Расширенные методы".) Как показано в этом примере, пользователи, которые помещают в свой рабочий каталог файлы .plan или .project, могут дать очень хорошую наводку хакеру (содержимое этих файлов выводится командой finger). rwho 192.168.202.34 При использовании параметра -1 утилита rusers позволяет получить более подробную информацию. Кроме сведений о пользователях она предоставляет данные о времени, прошедшем после последнего нажатия пользователем клавиш на клавиатуре, rusers -1 192.168.202.34 Еще один классический метод инвентаризации основан на использовании универсального средства почтовой доставки Internet — протокола SMTP (Simple Mail Transfer Protocol). Этот протокол поддерживает две встроенные команды, которые позволяют выполнять инвентаризацию пользовательских учетных записей. Команда VRFY подтверждает, что введенное имя имеется в системе, а команда EXPN отображает реальный адрес доставки письма вместо псевдонима или списка рассылки. Хотя в настоящее время многие компании и так достаточно свободно предоставляют информацию об электронных адресах, разрешение подобной деятельности на почтовом сервере может дать взломщику ценную информацию о пользователях, а также предоставить ему возможность фальсификации. telnet 192.168.202.34 25 Это еще один пример того, что нужно всегда помнить о старых хакерских приемах и вовремя отключать соответствующие режимы. Популярная программа sendmail, предназначенная для обмена информацией с использованием протокола SMTP (http://www.sendmail.org), начиная с версии 8, поддерживает синтаксис, который позволяет поместить в файл mail.cf параметры, запрещающие подобные команды или требующие аутентификации. Другие реализации SMTP-сервера должны предоставлять аналогичные возможности. Если это не так, замените программу! tftp 192.168.202.34 Помимо того, что в данном примере взломщику удалось получить файл паролей, которые он может попытаться взломать в любой момент, прямо из этого файла он может получить информацию о пользователях. Решение данной проблемы состоит в том, чтобы вообще отказаться от протокола TFTP. В тех же случаях, когда это действительно необходимо, упаковывайте передаваемые по этому протоколу пакеты данных, ограничьте доступ к каталогу /tftpboot и убедитесь, что протокол заблокирован на уровне пограничного брандмауэра. Инвентаризация приложений и идентификационных маркеров Как и любой другой сетевой ресурс, приложения должны иметь возможность обмениваться друг с другом информацией по сети. Одним из самых популярных протоколов, разработанных для обеспечения этого процесса, является протокол RPC (Remote Procedure Call). На основе RPC работает программа rpcbind, основная задача которой состоит в посредничестве между запросами клиентов и портами, которые эта программа динамически назначает находящимся в режиме ожидания приложениям. Несмотря на постоянную головную боль, которую много лет вызывают у администраторов брандмауэров подобные программы, служба RPC остается чрезвычайно популярным механизмом. Существует утилита rpcinfo, которая, подобно программе finger, может применяться для инвентаризации приложений RPC, находящихся в состоянии ожидания запроса на удаленном узле. Обычно для того чтобы воспользоваться этой утилитой, во время сканирования достаточно установить, что открыт порт 111 (rcbind) или 32771 (вариант утилиты от компании Sun). rpcinfo -p 192.168.202.34 Из полученных результатов можно заключить, что на данном узле запущен системный процесс rusersd, программное обеспечение служб NFS и NIS (ypserv — сервер службы NIS). Таким образом, с помощью команд rusers, shomount -e и pscan -n можно попытаться получить более подробную информацию. Кроме того, для инвентаризации можно также воспользоваться утилитой pscan (упоминавшейся выше) с параметром -г. D:\Toolbox>rpcdump 192.168.202.105 Существует и несколько других приемов использования службы RPC, с помощью которых хакеры могут получать требуемую информацию. Так, в системе Solaris компании Sun используется вторая утилита, необходимая для работы с портами с номерами выше 32771. Следовательно, модифицированная версия утилиты rpcinfo при обращении к этому порту позволит получить приведенную выше информацию, даже если порт 111 заблокирован. nc -nw -о banners.txt
Если в качестве параметра утилиты netcat используется IP-адрес исследуемого компьютера, то нужно указать также параметр -n. Контрмеры против сбора идентификационных маркеров Конечно, мы коснулись лишь нескольких из самых популярных приложений, поскольку ограничения по времени и объему не позволяют нам подробнее рассмотреть все многообразие существующего сетевого программного обеспечения. Однако, отталкиваясь от описанных в данном разделе общих подходов, необходимо по крайней мере "заткнуть рот" слишком "болтливым" приложениям вашей сети. Дополнительные сведения об устранении имеющихся изъянов можно поискать на Web-узле канадской консультационной компании PGCI. специализирующейся в области защиты информации, по адресу http://www.pgci.ca/p_fingerprint.html. Помимо интересной дискуссии о защите от попыток выявления типа и версии операционной системы (см. главу 2), на этом Web-узле приведены сведения о контрмерах, позволяющих предотвратить инвентаризацию идентификационных маркеров с помощью таких средств как программы sendmail, telnet, и протокол FTP. Там же вы найдете список адресов других Web-серверов, на которых содержится аналогичная информация. |
Резюме Если не считать времени, информация — это наиболее мощное оружие, которое может попасть в распоряжение хакера. К счастью, эта же информация может пригодиться и при обеспечении безопасности. В этой главе вы познакомились с несколькими источниками утечки информации, используемыми хакерами, а также узнали о некоторых способах устранения подобных проблем, вкратце перечисленных ниже.
|