Глава 1. ПРЕДВАРИТЕЛЬНЫЙ СБОР ДАННЫХ
|
Предварительный сбор данных Прежде чем приступить к столь увлекательному занятию, как хакинг, необходимо выполнить рад подготовительных мероприятий. В этой главе рассматривается первый этап подготовки, заключающийся в предварительном сборе данных (footpnntmg) о представляющей интерес сети. Именно так и поступают настоящие преступники, решившие ограбить банк. Они не вваливаются в операционный зал и не начинают требовать денег (за исключением разве что самых примитивных грабителей). Любая по-настоящему опасная группировка, замышляющая ограбление посвятит немало времени сбору информации об этом банке. Они изучат маршруты передвижения бронеавтомобилей, время доставки наличных денег, места расположения видеокамер и служебных выходов, а также все, что может им пригодиться для реализации их преступных замыслов. |
Что такое предварительный сбор данных В результате систематизированного сбора информации хакеры могут получить в свое распоряжение полный профиль системы защиты организации. Начав "с нуля" (например, имея лишь общие сведения о подключении к Internet) и применяя различные средства и технические приемы, взломщик может получить в конце концов совершенно определенный набор доменных имен, адресов подсетей и отдельных компьютеров этой организации, подключенных к Internet. Методов сбора подобной информации очень много, однако все они сводятся к одному - получению информации, имеющей отношение к технологиям Internet, корпоративным сетям (intranet), удаленному доступу (remote access) и экстрасетям (extranet). Все эти технологии, а также важные данные которые взломщики пытаются получить, перечислены в Табл. 1.1. |
Для чего необходим предварительный сбор данных Предварительный сбор данных необходим для того, чтобы систематически и методологически гарантировать получение всей информации, имеющей отношение ко всем из вышеперечисленных технологий, используемых в конкретной организации. Без четко определенной методики выполнения этой работы высока вероятность того, что какая-нибудь часть важной информации не будет получена. Предварительный cбор данных о системе безопасности организации зачастую оказывается одной из наиболее трудных задач, однако в то же время этот процесс является наиболее важным. Его успешное завершение можно обеспечить лишь при четком следовании определенной методике и его контроле. |
Сбор данных о подключении к Internet Для сбора данных о различных технологиях применяются схожие методы (это справедливо, например, по отношению к Internet и корпоративным сетям), поэтому в этой главе подробно рассматриваются лишь методы сбора необходимой информации о подключении организации к Internet. Вопросы сбора данных об удаленном доступе будут подробно рассмотрены в главе 9, "Хакинг удаленных соединений, РВХ, Voice-mail и виртуальных частных сетей". Таблица 1.1. Важная информация, которую могут определить взломщики об используемых технологиях
Строго говоря, сложно дать четкие рекомендации по выполнению процесса сбора информации, поскольку осуществить это можно по-разному. Тем не менее, в данной главе предпринята попытка описать основные этапы, которые обязательно должны быть проведены при анализе информации для создания профиля организации. Многие из описанных приемов можно с успехом применять и для сбора данных о других технологиях, упоминавшихся выше. |
Этап 1. Определение видов деятельности Прежде всего необходимо определить виды деятельности, которые будут осуществляться при сборе информации. Например, нужно ответить на вопрос, планируете ли вы собрать данные обо всей сети организации или же ограничитесь лишь определенными ее сегментами (например, сетью главного офиса)? В некоторых случаях собрать данные обо всей организации может оказаться затруднительным. К счастью, в Internet можно найти множество ресурсов, с помощью которых можно сузить область деятельности, а также получить открытую информацию об организации и ее служащих. Поиск по открытым источникам Прежде всего начните с Web-страницы организации (если, конечно, она существует). Зачастую оказывается, что на таких Web-страницах присутствует информация, которая может помочь взломщику. Однажды нам даже довелось увидеть на одном Web-узле конфигурационные параметры, которые использовались для настройки системы защиты этой организации с помощью брандмауэра. К другим данным, которые можно получить и которые могут представлять интерес, относятся следующие.
Кроме того, попробуйте просмотреть комментарии, содержащиеся в HTML-коде Web-страниц. Зачастую в коде HTML можно найти интересные, с точки зрения взломщика, комментарии, такие как "<", "!" и "--", которые не отображаются на экране при открытии страницы в окне броузера. Просмотр исходного кода Web-страницы в автономном режиме позволит гораздо эффективнее работать в интерактивном режиме. Так что зачастую полезно сохранить полный образ всего Web-узла для дальнейшего просмотра. Впоследствии эту локальную копию можно использовать для поиска комментариев или других важных данных программным способом и, таким образом, значительно повысить эффективность процесса сбора информации. Для создания образа всего Web-узла в системе UNIX можно воспользоваться утилитой Wget (ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/), а в системе Windows — утилитой Teleport Pro (http://www.tenmax.com/teleport/home.htm).
Наконец, можно просто воспользоваться средствами расширенного поиска некоторых ведущих поисковых серверов, таких как AltaVista или Hotbot. Многие из них позволяют найти все Web-страницы, на которых имеются ссылки на домен интересующей вас организации. На первых взгляд эта возможность не представляет собой ничего интересного, но не торопитесь с выводами! Допустим, кто-то из сотрудников организации решил создать собственный Web-узел дома или во внутренней сети организации. Весьма вероятно, что такой Web-узел будет иметь недостаточный уровень защиты или, более того, он может быть создан без ведома руководства. Как показано на рис. 1.1, обнаружить такой Web-узел можно именно с помощью описанного метода. Поиск в базе данных EDGAR Для поиска информации о компании, представляющей собой открытое акционерное общество (publicly traded company), можно воспользоваться базой данных EDGAR, поддерживаемой Комиссией по безопасности и обмену данными (SEC — Securities and Exchange Commission), находящейся по адресу http: //www. sec. gov (рис. 1.3).
Одной из самых больших проблем, с которыми сталкиваются крупные компании, — это управление соединениями с Internet, особенно если они вовлечены в активную деятельность по приобретению других компаний или сами являются объектами приобретения. Именно поэтому так важно обращать внимание на информацию о недавно приобретенных компаниях. Среди документов комиссии SEC можно отметить два особенно важных: 10-Q и 10-К. Документ 10-Q представляет собой краткую сводку о деятельности организации за последний квартал. Кроме всей остальной информации в этом отчете также указывается количество акций компаний, приобретенных организацией за отчетный период, или количество акций организации, приобретенных за этот же период другими компаниями. Отчет 10-К содержит аналогичную информацию, однако он обновляется один раз в год. Поэтому сведения, приведенные в нем, могут потерять актуальность. Можно, например, поискать в этих документах слова subsidiary (дочерняя) или subsequent events (последующие события). В результате вы можете получить представление о недавно приобретенных компаниях или планирующихся слияниях. Зачастую организации подключают сети приобретенных ими компаний, забывая о требованиях безопасности. Поэтому вероятность того, что вы сможете проникнуть в сеть родительской компании, прорвав защиту новоприобретенного подразделения, довольно высока. Это лишний раз доказывает, что взломщики являются приверженцами хаоса и анархии, поскольку они всегда не преминут воспользоваться неразберихой, царящей в организации во время объединении сетей. Контрмеры: обеспечение безопасности общедоступных баз данных Большая часть приведенных выше сведений должна быть общедоступной. Особенно это касается открытых акционерных обществ. Однако в то же время очень важно оценить и классифицировать типы такой информации. Для выполнения такого анализа может оказаться полезным руководство по обеспечению безопасности узла (Site Security Handbook, документ RFC2196). Его можно найти по адресу http://ietf.org/rfc/rfc2196.txt. И наконец, если на Web-страницах вашего узла имеется хоть какая-нибудь информация, которая может помочь взломщику в проникновении в вашу сеть, удалите ее, если только это не является жизненно необходимым. |
Этап 2. Инвентаризация сети Первым шагом в процессе инвентаризации сети (network enumeration) является идентификация имен доменов и сетей, связанных с конкретной организацией. Доменные имена представляют собой адрес компании в Internet и являются Internet-эквивалентами названия компании, например AAAApainting.com или moetavern.com. Таблица 1. 2. Источнйки информации и методы поиска с помощью команды whois
Таблица 1.3. Базы данных, содержащие сведения о военных, правительственных и международных доменах
Регистрационный запрос С появлением совместно используемой системы регистрации (т.е. нескольких компаний-регистраторов) для получения списка доменов и соответствующей регистрационной информации, связанной с данной организацией, необходимо обратиться к серверу whois.crsnic.net. Следует определить компанию-регистратор и, таким образом, базу данных, к которой можно будет обращаться с последующими запросами на получение более подробных данных. В данном случае в качестве целевой будет использоваться компания Acme Networks, а запрос будет выполняться из командной оболочки системы UNIX (Red Hat 6.2). В используемой версии команды whois с помощью параметра @ можно задать альтернативную базу данных. В некоторых системах из ряда BSD (например, OpenBSD или FreeBSD) для этого можно воспользоваться параметром -а. Для получения более подробной информации об использовании клиента whois для генерации запросов воспользуйтесь командой man whois. [bash]$ whois "acme."@whois.crsnic.net Если о домене acme. net необходимо получить дополнительную информацию, то поиск можно продолжить и определить компанию-регистратор. [bash]$ whois "acme.net"@whois.crsnic.net Из полученных результатов видно, что для данной организации компанией-регистратором является Network Solutions, что является достаточно обычным для любой организации, зарегистрированной до ввода в действия новой системы регистрации. В дальнейшем последующие запросы должны быть адресованы соответствующей компании-регистратору, поскольку именно на ее сервере содержится требуемая информация. Организационный запрос После идентификации компании-регистратора можно приступать к формированию организационного запроса. Такой тип запроса позволяет выполнить поиск компании-регистратора для всех экземпляров имен рассматриваемой организации. Он гораздо шире, чем просто поиск имени домена. Организационный запрос должен содержать ключевое слово name и быть отправлен компании Network Solutions. [bash]$ whois " Из полученного списка видно, что к компании Acme Networks имеет отношение много доменов. Однако пока неясно, представляют ли они реальные сети или же зарегистрированы для будущего использования либо для зашиты торговых марок. Для получения ответов на эти вопросы необходимо продолжить исследования, пока не будут обнаружены реальные сети. Доменный запрос Проанализировав результаты организационного запроса, приходим к выводу, что наиболее вероятным кандидатом для изучения является домен Acme.net, поскольку он представляет саму компанию Acme Networks (естественно, все реальные имена и адреса были изменены). [bash]$ whois acme.net@whois.networksolutions.com Подобный запрос позволяет получить следующую информацию.
Теперь пришло время проявить способности детектива. Для того чтобы проанализировать полученную информацию и извлечь из нее что-то полезное, необходимо иметь определенные знания. Обычно мы называем такого рода информацию "нюансами", поскольку она уточняет имеющиеся в распоряжении взломщика сведения и позволяет осуществить более сфокусированную атаку. Давайте подробнее рассмотрим приведенные в примере данные. С помощью директивы server, примененной к записи HST, информация о которой получена из запроса whois, можно установить другие домены, обслуживаемые заданным DNS-сервером. Для этого необходимо выполнить следующие действия. Сетевой запрос Для идентификации сетей, ассоциированных с конкретным доменом, может использоваться база данных ARIN (American Registry for Internet Numbers). В ней содержатся конкретные диапазоны адресов, которыми обладает данная организация. Сгенерировать такой запрос очень важно, поскольку он позволит определить, действительно ли конкретный адрес принадлежит заданной организации, а не относится к другой организации, например провайдеру услуг Internet. [bash]$ whois "Acme Net."@whois.arin.net С использованием определенного адреса (10.10.10.0) можно сформировать более специализированный запрос. [bash]$ whois 10.10.10.08whois.arin.net База данных ARIN предоставляет удобный Web-ориентированный механизм обработки запросов, показанный на рис. 1.4. Возвращаясь к полученным результатам, можно заключить, что сеть интересующей нас компании Acme Networks адресуется главным провайдером Major IPS USA как сеть класса А (полное изложение основ протокола TCP/IP можно найти в книге Ричарда Стивенса (Richard Stevens) TCP/IP Illustrated, Volume 1). Таким образом, можно заключить, что эта сеть и является внутренней сетью компании Acme Networks.
Контактный запрос Поскольку технический служащий, чьи данные указаны в регистрационных данных, может заниматься администрированием нескольких организаций, имеет смысл обратиться к базе whois с контактным запросом по пользовательскому дескриптору базы данных. В данном случае воспользуемся дескриптором WB9201, полученным в предыдущем доменном запросе. Таким образом можно выявить домен, о существовании которого вы даже не подозреваете. [bash]$ whois "HANDLE WB9201"@whois.networksolutions.com Можно также попробовать поискать записи, содержащие часть адреса @Acme.net, и получить список всех адресов электронной почты данного домена. Для краткости мы приведем лишь часть полученных данных. [bash]$ whois "@Acme.net"@whois.internic.net
Контрмеры: обеспечение безопасности общедоступных баз данных Большая часть информации, хранящейся в описанных базах данных, открыта для свободного доступа. Когда организация намеревается зарегистрировать собственный домен, она обязана предоставить контактную информацию, сведения о выделенных ей блоке сетевых адресов и серверах DNS. Однако для того чтобы усложнить задачу взломщикам, необходимо придерживаться определенных принципов обеспечения безопасности. |
Этап 3. Прослушивание серверов DNS После установления всех доменов можно приступать к работе с серверами DNS. DNS — это распределенная база данных, предназначенная для преобразования IP-адресов в имена узлов и наоборот. Если сервер DNS не настроен на обеспечение максимальной степени защиты, то с его помощью можно получить информацию о внутренней сети организации. Перенос зоны Одна из самых серьезных ошибок администратора при настройке параметров сети состоит в предоставлении возможности взломщику осуществить перенос зоны DNS. [bash]$ nslookup Первая введенная команда — это запуск утилиты nslookup в интерактивном режиме. После запуска утилита сообщает, какой сервер им,ен в данный момент используется по умолчанию. Обычно таким сервером является DNS-сервер вашей организации или DNS-сервер провайдера. Поскольку используемый в данном примере DNS-сервер (10.10.20.2) не обслуживает интересующий нас домен, нам нужно перейти на другой сервер, на котором мы сможем найти необходимую информацию о внутренней сети. Таким образом, утилите nslookup необходимо явно сообщить о том, к какому серверу DNS ей нужно обратиться. В нашем примере мы будем использовать основной сервер сети Acme Networks с адресом 10.10.10.2. Вспомните, что его адрес мы узнали из регистрационной базы данных доменов на предыдущем этапе. Затем мы устанавливаем тип записи any, что означает, что в список выбранных записей будут отобраны все записи из базы данных DNS-сервера. (Подробнее о параметрах утилиты nslookup можно узнать с помощью команды man nslookup (UNIX) или nslookup ? (NT).) [bash]$ more zone_out Мы не будем рассматривать подробно каждый элемент всех найденных записей, а остановимся лишь на некоторых важных типах информации, которую можно получить таким образом. Как видно из приведенного выше листинга, для каждого узла имеется запись типа 'А, содержащая IP-адрес узла, имя которого указано в левом столбце. Кроме того, каждый узел имеет запись типа HINFO, идентифицирующую используемую платформу или операционную систему (описание см. в RFC 952). Информация записей HINFO не используется операционными системами, однако очень часто оказывается полезной для взломщиков. Поскольку результаты переноса зоны сохранены в файле, то его содержимое без особых проблем можно отсортировать с помощью таких программ UNIX, как grep, sed, awk или perl. [bash]$ grep -i Solaris zone_out |wc -1 388 Таким образом, взломщик имеет 388 записей, в которых присутствует слово Solaris, и каждый из этих 388 компьютеров может стать потенциальной жертвой. [bash]$ grep -i test /tmp/zone_out |wc -1 96 Итак, в нашем распоряжении около сотни записей файла зоны, в которых содержится слово test. Как правило, это количество примерно соответствует количеству реальных тестовых систем сети. Приведенные примеры — лишь малая часть того, что можно при известной доле настойчивости и изобретательности получить из файла зоны. Опытный взломщик, "просеяв через сито" полученные данные, рано или поздно выявит самый уязвимый компьютер сети, с которого он сможет начать вторжение. >>host -l acme.net |cut -f 4 -d" " » /tmp/ip_out В процессе предварительного сбора данных использовать команды системы UNIX для выполнения всех задач нет необходимости. Существует довольно много продуктов для Windows, которые позволяют получить ту же информацию (рис 1.5). [bash]$ axfr Acme.net Для того чтобы обратиться с запросом к полученной с помощью утилиты axf r базе данных, необходимо ввести следующую команду. [bash]$ axfrcat Acme.net Получение записей обмена почтой (MX) Определение компьютера, на котором обрабатывается почта,— это один из наиболее удачных способов выявления сетевого брандмауэра представляющей интерес организации. Как правило, в коммерческих компаниях почта обрабатывается на том же компьютере, который служит в качестве брандмауэра, или по крайней мере на компьютере, который находится в том же сегменте сети. Для получения более подробной информации можно воспользоваться командой host. [bash]$ host Acme.net
Если команда host применяется без параметров либо только с именем домена, то сначала она попытается найти записи А, а затем записи MX. Приведенная выше информация пересекается с той информацией, которую ранее была получена при поиске в базе данных ARIN с использованием утилиты whois. Это лишний раз подтверждает, что мы правильно определили адрес нужной нам сети. Контрмеры: обеспечение безопасности базы данных DNS Информация DNS представляет для хакера очень большой интерес, поэтому очень важно уменьшить объем данных, доступных через Internet. С точки зрения настройки узла, необходимо ограничить возможность переноса зоны, разрешив ее лишь определенным серверам. В современных версиях службы BIND для этих целей можно использовать директиву xfernets файла named.boot. Для того чтобы ограничить возможность переноса зоны службы DNS компании Microsoft, необходимо использовать параметр Notify (более подробную информацию по этому вопросу можно найти по адресу http://support.-microsoft.eom/support/kb/articles/ql93/8/37.asp). Для настройки служб имен других разработчиков необходимо обратиться к соответствующей документации. |
Этап 4. Зондирование сети Установив возможные сетевые адреса, можно попытаться определить топологию сети, а также возможные пути проникновения в нее. Отслеживание маршрутов Эта задача может быть выполнена с помощью утилиты traceroute (ftp://ftp.ee. lbl.gov/traceroute.tar.Z), которая входит в комплект поставки практически всех версий UNIX и Windows NT. В системе Windows NT название утилиты адаптировано к формату 8.3 — tracert. [bash]$ traceroute Acme.net На основании полученной информации можно проследить путь, по которому пакеты, прошедшие через маршрутизатор (шлюз), проследовали, миновав три узла (2—4), к точке назначения. На всем пути следования пакеты нигде не были заблокированы. На основании ранее полученной информации известно, что МХ-запись домена Acme. net указывает на узел gate.acme.net. Следовательно, можно предположить, что этот узел является не логическим устройством, а реальным компьютером сети, а сегмент, через который пакет прошел на предыдущем шаге (4), — это пограничный маршрутизатор организации. Сегмент 4 может быть реализован как в виде выделенного программного брандмауэра, так и в виде простого фильтрующего маршрутизатора. На данном этапе об этом пока трудно судить. Как правило, именно на устройство, находящееся на сегменте, непосредственно за которым находится реальный компьютер сети, возлагается задача маршрутизации (например, маршрутизатор или брандмауэр). [bash]$ traceroute 10.10.10.2 Из листинга видно, что попытка использования утилиты traceroute, которая по умолчанию отсылает пакеты UDP, была заблокирована брандмауэром. [bash]$ traceroute -S -p53 10.10.10.2 Поскольку теперь пакеты не вызывают подозрения у устройства управления доступом (сегмент 4), они без проблем его преодолевают. Таким образом, мы можем зондировать узлы, находящиеся за устройством управления доступом, просто отправляя запросы по протоколу UPD в порт 53. Кроме того, если вы будете зондировать систему, которая опрашивает порт 53 на предмет поступления сообщений по протоколу UDP, вы не получите обычного сообщения ICMP о том, что данная система недоступна. Таким образом, если вы не увидели информации об узле, это означает, что пакеты дошли до цели. Существуют специальные приемы, позволяющие уточнить данные о списке ACL, используемом для конкретного устройства управления доступом. Одним из таких методов является сканирование протокола брандмауэра (firewall protocol scanning), о чем пойдет речь в главе 11, "Брандмауэры". Контрмеры: как пресечь зондирование сети В данной главе мы лишь слегка затронули такую обширную тему, как методы зондирования сети. В последующих главах мы снова вернемся к ней и поговорим о более серьезных методах. Однако уже сейчас можно сформулировать некоторые соображения о том, как предотвратить рассмотренные выше попытки зондирования. Во-первых, многие коммерческие системы выявления вторжений (NIDS — Network Intrusion Detection Systems) позволяют выявлять попытки зондирования такого рода. Кроме того, подобные вторжения можно выявить с помощью бесплатной программы Марти Рош (Marty Roach) (http://www.snort.org/). Если вы хотите принять меры и защититься от зондирования сети с помощью утилиты traceroute, обратите внимание на утилиту RotoRouter, написанную Хамблом (Humble) (http://packet storm, securify .com/linux/trinux/src/rr-l.0 . tgz). Эта утилита позволяет не только регистрировать входящие от утилиты traceroute запросы, но и генерировать ложные ответы. И наконец, в зависимости от общей политики безопасности вашей организации можно настроить пограничные маршрутизаторы таким образом, чтобы ограничить поток данных по протоколам ICMP и UDP только строго определенными узлами. Такой подход позволит свести риск проникновения во внутреннюю сеть посредством зондирования к минимуму. |
Резюме Итак, в распоряжении злоумышленника имеется целый ряд приемов, с помощью которых он может зондировать сеть или собирать о ней предварительную информацию. В данной главе мы лишь слегка затронули самые распространенные и типичные из этих приемов, поскольку новые средства и инструменты появляются чуть ли не ежедневно и любые детали могут быстро устаревать. Кроме того, все основные принципы предварительного сбора информации рассматривались на упрощенных примерах. На практике специалистам, возможно, придется столкнуться гораздо с более сложной задачей, состоящей в противостоянии сбору данных о десятках или сотнях доменов и их идентификации. Именно по этой причине мы в своей работе стараемся автоматизировать выполнение как можно большего числа задач, комбинируя сценарии оболочки, программы на языке Perl и другие средства. В Internet постоянно "рыщет" множество квалифицированных и опытных взломщиков, которых еще никто и никогда не ловил за руку. Поэтому не забывайте о том, что чем меньше информации о внутренней архитектуре будет доступно в глобальной сети и чем тщательнее будет выполняться мониторинг всех событий, тем сложнее взломщику будет проникнуть в сеть. |