Моя визитка
Урок 1. Хакинг
Урок 2. Антихакинг
Урок 3. Инструменты хакинга
Урок 4. Защита Windows 2000/XP
Урок 5. Проникновение в систему
Урок 6. Реализация цели вторжения
Урок 7. Сокрытие следов
Урок 8. Хакинг браузеров Web
Урок 9. Хакинг почтовых клиентов
Урок 10. Деструкция почтового клиента
Урок 11. Хакинг Web-сайтов
Урок 12. Атаки DoS
Урок 13. Хакинг компьютеров Windows 2000/XP
Урок 14. Хакинг средств удаленного управления
Урок 15. Хакинг брандмауэров
Урок 16. Перехват сетевых данных
Урок 17. Хакинг коммутируемого доступа
Приложение А
Приложение В
Приложение С
Приложение D
Приложение E

Xakинг брандмауэров

Что такое брандмауэр
Компоненты брандмауэра
Настройка шлюзов с фильтрацией пакетов
Уязвимости шлюзов с фильтрацией пакетов
Программные посредники
Шлюзы с сохранением состояния и канальные шлюзы
Настройка экспериментальной сети
Хакинг брандмауэра WinRoute Pro
Заключение

В этой главе мы поговорим о брандмауэрах - защитных программах, которые ныне считаются чуть ли не панацеей от всех бед, которые подстерегают беспечных пользователей компьютеров, подсоединенных к сети - локальной или Интернету. Функции брандмауэра просты - он должен встретить на пороге поступающие на компьютер сетевые пакеты и далее либо отбросить их, либо пропустить внутрь защищаемого хоста или целой локальной сети.

В уроке 14 мы продемонстрировали, что может сделать более-менее подготовленный хакер с компьютером, подсоединенным к сети без всякой защиты, и вы, наверное, поняли, что венцом всех стараний для хакера является загрузка и запуск на атакуемом компьютере агента удаленного управления, проще говоря, трояна. После, этого знаменательного события ничто не помешает хакеру выгребать из хакнутого компьютера все сколько-нибудь ценное, включая пароли удаленного доступа, номера кредиток и все остальное. К тому же, создав запасные точки входа в компьютер (потайные ходы), хакер вообще станет практически вечным спутником жизни своей жертвы - избавиться от него будет очень, непросто...

Так что антихакеру лучше не доводить дело до такой крайности, и брандмауэр - одно из решений задачи. Поместив на входе в свой виртуальный дом сторожевую программу, антихакер, по крайней мере, может помешать выносу из дома собственных вещей. А хороший, толково настроенный брандмауэр вполне в состоянии прикрыть все входы в обороняемый компьютер и сообщать своему хозяину о вторжениях.

Так что же, выходит, что встретив брандмауэр, хакер должен повернуться и тихо уйти? Не тут-то было. Правильнее будет сказать, что встретив корректно настроенный брандмауэр, хакеру лучше поискать в атакуемый компьютер другую дорожку, полегче и попроще. Однако много ли их, правильно настроенных брандмауэров... Чаще всего о брандмауэре забывают сразу после инсталляции, считая, что далее все решится само собой. И вот тут-то у хакера и возникают некие перспективы. Но обо всем по порядку.

Что makoe брандмауэр

Брандмауэром называют специальный программно-аппаратный комплекс, обеспечивающий защиту локальной сети от вторжений из локальной или глобальной сети, например, Интернета, в точке их соединения. Брандмауэры позволяют пропускать через сетевое соединение только авторизованный трафик, контролируя тем самым сетевое взаимодействие между компьютерами глобальной и локальной сети.

Например, брандмауэры позволяют управлять доступом сетевых пользователей к различным сетевым службам. Эта задача решается конфигурированием брандмауэра, при котором можно разрешать или блокировать доступ к отдельной службе локальной сети с помощью списков ACL (Access Control List - Список контроля доступа). Списки ACL предоставляют гибкие возможности управления доступом, поскольку с их помощью можно, скажем, разрешать доступ к отдельным службам и запрещать доступ ко всем остальным службам или, альтернативно, блокировать доступ к отдельным службам и разрешать доступ ко всем остальным службам. Администратор системы сам может выбрать наиболее удобный ему метод, ориентируясь на размер сети и число исполняемых служб.

Высокоразвитые брандмауэры позволяют выполнять очень точную настройку доступа к сетевым службам, предоставляя для этого удобный графический интерфейс. Хорошо настроенный брандмауэр не просто блокирует неавторизованные запросы со стороны внешних компьютеров, но и пытается идентифицировать авторов запроса вместе с немедленным уведомлением администратора системы о попытках таких запросов.

Брандмауэры позволяют маскировать IP-адреса хостов внутри локальной сети с помощью операции, называемой трансляцией сетевых адресов (сокращенно NAT - Network Address Translation). Маскированные IP-адреса становятся невидимыми для внешних пользователей, которые, например, для отправки почтовых сообщений внутреннему пользователю направляют его на почтовый шлюз, который переправляет его адресату.

Брандмауэры позволяют управлять сетевым трафиком, проходящим внутри локальной сети. С помощью брандмауэров можно разделить локальную сеть на домены безопасности - группы компьютеров с одним уровнем защищенности. На компьютерах наиболее защищенного домена следует хранить конфиденциальную информацию, например, учетные записи пользователей, документы финансовой отчетности, сведения о текущей производственной деятельности и т.п.

Это тем более важно, если персонал организации потенциально может быть вовлечен в кражу конфиденциальных сведений. Известно, что до 80% всех компьютерных преступлений совершается персоналом самой организации. Разделение доступа пользователей к сетевым ресурсам разной степени секретности уже само по себе резко повышает уровень безопасности сети. Если к тому же настроить брандмауэр так, чтобы доступ к выделенному сетевому сегменту был максимально ограниченным, то можно в значительной степени обезопасить хранимую в сегменте информацию от раскрытия конфиденциальности.

Компоненты брандмауэра

Брандмауэры представляют собой совокупность аппаратных и программных компонентов, в число которых входят следующие.

• Бастионный хост, представляющий собой компьютер, подсоединенный и к локальной, и к глобальной сети. На бастионном компьютере устанавливаются все прочие компоненты брандмауэра. Примером бастионного хоста является компьютер с двумя сетевыми платами, каждая из которых подсоединена к отдельной сети. Именно с помощью такого компьютера мы будем описывать все хакерские манипуляции с брандмауэрами.

• Шлюзы с фильтрацией пакетов. Обычный маршрутизатор просто пересылает поступающие IР-пакеты по указанному адресу. Шлюзы с фильтрацией пакетов выполняют дополнительную функцию проверки поступающих IP-пакетов. Шлюзы с фильтрацией пакетов иногда называют защищенными маршрутизаторами. Следует учесть, что защищенные маршрутизаторы не проверяют содержимое поступающих пакетов, а имеют дело только с заголовочной информацией пакетов, контролируя IР-адреса источника и получателя пакета, используемые протоколы, службы, порты и другую информацию, указанную в списке ACL.

• Программные посредники (иногда называемые прикладными шлюзами), которые исполняются на бастионном хосте и ограничивают подключения к отдельным приложениям, например, почтовым клиентам. Для этой цели используются службы-посредники, которые устанавливаются на шлюзе отдельно для каждого приложения, которому разрешено сетевое взаимодействие через брандмауэр. Только те сетевые службы, для которых установлены службы-посредники, могут получать и отправлять сетевой трафик через шлюзы приложений, причем службы-посредники можно настроить на разрешения доступа лишь к определенному, ограниченному набору средств приложения. Примером шлюза прикладного уровня является прокси-сервер, управляющий сетевым трафиком и выполняющий аутентификацию пользователей.

Бастионный хост должен быть спроектирован так, чтобы он мог эффективно противостоять атакам хакеров. Например, компьютер, реализующий бастионный хост, должен использовать операционную систему с надежными средствами защиты. Далее, на бастионном хосте следует устанавливать только существенно необходимые службы, исключив, например, службы Telnet, DNS, FTP, SNMP и средства пользовательской аутентификации. Наличие таких служб - это сущий подарок для хакера, который, подключившись, скажем, к Telnet (очень популярная служба у хакеров), может получить доступ ко всему компьютеру.

Развертывание брандмауэра на бастионном хосте подразумевает настройку работы компонентов брандмауэра. Познакомимся с этой задачей поближе и начнем с важнейшей задачи - настройки средств фильтрации пакетов, используемых брандмауэрами.

Настройка шлюзов с фильтрацией nakemoв

Шлюзы с фильтрацией пакетов проверяют заголовки входящих пакетов на предмет их удовлетворения определенным критериям, устанавливаемым с помощью правил фильтрации пакетов. Фильтрации подвергаются пакеты, поступающие как изнутри, так и извне локальной сети, причем фильтр работает асимметрично, различным образом обрабатывая входящие и исходящие пакеты. Таким образом, для фильтрации входящих и исходящих пакетов следует использовать различные правила фильтрации.

При поступлении пакета в брандмауэр, входящий в его состав маршрутизатор с фильтрацией пакетов извлекает из пакета заголовки и выполняет синтаксический анализ и проверку заголовков. Как правило, при этом проверяются только заголовки, относящиеся к протоколам TCP/IP и UDP. Далее к пакету последовательно применяются правила фильтрации пакетов, причем в том порядке, в котором они сохранены в списке ACL брандмауэра. Применение правил выполняется с учетом следующих принципов.

• Если при просмотре списка ACL будет найдено правило, разрешающее прохождение пакета, он немедленно направляется по назначению.

• Если будет найдено правило, запрещающее прохождение пакета, он немедленно отбрасывается.

• Если при просмотре списка ACL окажется, что для данного пакета отсутствуют правила, разрешающие его прохождение, пакет автоматически отбрасывается.

Чтобы создать правило фильтрации пакетов, следует указать:

• действие, выполняемое при совпадении критериев правила с параметрами пакета (например, «разрешить» или «блокировать»);

• протокол обработки пакета;

• номер порта для приема пакета.

Например, чтобы пропустить через брандмауэр пакет сообщения электронной почты, для почтового шлюза следует создать правило, разрешающее внешнее подключение к порту 25 по протоколу SMTP (Simple Mail Transfer Protocol -Простой протокол электронной почты).

Самое главное, на что следует обратить внимание при создании правил фильтрации пакетов - это порядок их записи в список ACL, от которого зависит функционирование брандмауэра. Некорректный порядок записи правил может привести к полному блокированию межсетевого соединения или к отбрасыванию корректных пакетов и разрешению некорректных.

Допустим, требуется создать правило, разрешающее подключение к почтовому шлюзу хоста Mailer всех хостов глобальной сети, кроме хоста Spammer. Для этого создадим таблицу (см. таблицу 1), в которую будем записывать правила фильтрации.

Таблица 1. Шаблон таблицы правил фильтрации пакетов

Правило

Действие

Источник

Порт

Назначение

Порт

Комментарий

1.

           

Вначале введем правило блокирования трафика через почтовый шлюз (см. таблицу 2).

Таблица 2. Добавление правила блокировки

Правило

Действие

Источник

Порт

Назначение

Порт

Комментарий

1.

Блокировать

Spammer

*

*

*

Блокирование соединений

В столбце Действие таблицы 2 указано действие, выполняемое при удовлетворении критериев правила, в данном случае - блокировка пакета. Далее, в столбце Источник указан хост-источник пакета - Spammer, а в столбце Порт - номер порта хоста-источника пакета. Следом определяются параметры получателя пакета: столбец Назначение содержит имя целевого хоста пакета, а столбец Порт - номер порта целевого хоста. Наконец, столбец Комментарий содержит комментарии к создаваемому правилу. Звездочки (*) в ячейках отмечают, что допускается любое значение параметра; в данном случае они показывают, что блокируются все пакеты из хоста Spammer, исходящие с любого порта хоста Spammer и направленные в любой порт любого хоста.

Теперь введем правило, разрешающее подключение к почтовому шлюзу от всех остальных хостов сети (см. таблицу 3).

Таблица 3. Добавление правила, разрешающего подключения к почтовому шлюзу

Правило

Действие

Источник

Порт

Назначение

Порт

Комментарий

1.

Блокировать

Spammer

*

*

*

Блокирование соединений

2.

Разрешить

*

*

Mailer

25

Разрешение соединений

Теперь в столбце Действие правила 2 указывается действие Разрешить, разрешающее всем пакетам со всех исходных хостов поступать на SMTP-порт 25 почтового шлюза хоста Mailer.

Порядок правил фильтрации пакетов очень важен - перестановка правил 1 и 2 табл. 16.3 позволит всем хостам сети (включая Spammer) соединяться с почтовым шлюзом - ведь, не забывайте, к пакету немедленно применяются правила, разрешающие или блокирующие его прохождение через брандмауэр.

Сложность создания таких правил состоит в необходимости учета всех протоколов, служб и портов, используемых сетевыми хостами, без чего нельзя исключить риск атаки на эти хосты. Поэтому чаще всего правила фильтрации пакетов создаются постепенно, по мере эксплуатации системы и уточнении конфигурации брандмауэра.

Технически настройка таких правил не вызывает проблем. Например, в обсуждаемом далее брандмауэре WinRoute Pro для введения новых правил фильтрации пакетов следует выполнить такие шаги.

• Запустите администратора брандмауэра WinRoute Pro, выбрав команду меню Пуск * Программы * WinRoute Pro * WinRoute Administration (Start * Programs * WinRoute Pro * WinRoute Administration). На экране появится окно Kerio WinRoute Administrator (localhost), представленное на Рис. 1.

Рис. 1. Рабочее окно администратора WinRoute

• Подключитесь к хосту, выполнив команду меню Action * Connect (Действие * Подключить). На экране появится диалог Open Configuration (Открытие конфигурации), представленный на Рис. 2.

Рис. 2. Диалог аутентификации пользователя брандмауэра WinRoute

• Введите свои идентификационные данные, если они у вас имеются, и нажмите кнопку ОК; теперь администратор брандмауэра готов к работе.

• В рабочем окне администратора WinRoute выберите команду меню Settings * Advanced * Packet Filter (Параметры * Дополнительные * Фильтрация пакетов). На экране появится диалог Packet Filter (Фильтр пакетов), представленный на Рис. 3.

Рис. 3. Диалог выбора фильтруемого интерфейса

Вкладка Incoming (Входящие) позволяет установить правила фильтрации входящих пакетов, а вкладка Outgoing (Исходящие) - исходящих. В списке представлены правила для всех интерфейсов компьютера.

• Для установки правила фильтрации выберите требуемый интерфейс или выберите сразу все интерфейсы, щелкнув на строке Any Interface (Все интерфейсы), и щелкните на кнопке Add (Добавить). На экране появится диалог Add Item (Добавить правила), представленный на Рис. 4.

Рис. 4. Диалог ввода правила фильтрации пакетов

• Чтобы создать правило фильтрации пакетов, в поле Protocol (Протокол) выберите протокол, пакеты которого вы будет фильтровать. В зависимости от выбора протокола в диалоге Add Item (Добавление правила) отобразится набор параметров, устанавливаемых для фильтрации пакетов выбранного протокола.

• Установите требуемые параметры и нажмите кнопку ОК - в диалоге Packet Filter (Фильтр пакетов) (Рис. 3) отобразится созданное правило.

Уязвимости шлюзов с фильтрацией nakemoв

Фильтрация пакетов служит эффективным средством защиты различных служб от сетевых атак, но методы фильтрации пакетов неэффективны против атак, не зависящих от сетевых служб. Примером является атака с подменой исходного IP-адреса пакета (IР-спуфинг), которая может быть применена к любой сетевой службе. Для исполнения такого рода атаки хакер в отсылаемом с внешнего хоста пакете подменивает реальный исходный IP-адрес фальшивым исходным IP-адресом, для которого разрешено прохождение пакетов. Например, этим фальшивым IP-адресом может быть IР-адрес внутреннего хоста сети. Если брандмауэр не настроен должным образом, пакет с фальсифицированным IР-адресом может быть пропущен в сеть.

Еще одним примером сетевой атаки, против которой бессильна фильтрация пакетов, является обход системы защиты сети путем указания маршрутной информации внутри переданного пакета. Опять-таки, если брандмауэр не будет настроен на отбрасывание пакетов, содержащих маршрутную информацию, такая атака может завершиться успехом.

Брандмауэры с фильтрацией пакетов могут также пропустить атаку, реализуемую фрагментацией пакетов, при которой хакер делит пересылаемые пакеты на маленькие части и посылает их на маршрутизатор с фильтрацией пакетов. Структура фрагментированного пакета такова, что номер порта целевого хоста содержит только самый первый фрагмент, а остальные фрагменты содержат лишь само сообщение. Поэтому, пропустив первый пакет, брандмауэр пропустит и остальные.

Расчет хакеров строится на том, что часто хостам локальной сети требуется связь со службами из глобальной сети. В этом случае брандмауэры настраиваются на пропуск пакетов, получаемых извне в ответ на запросы внутренних хостов; такие пакеты имеют особый признак - отсутствие флага синхронизации SYN. Поэтому поместив в первый фрагмент пакета номера портов хоста-отправителя и хоста-получателя пакета, и не поместив в первый фрагмент флаг SYN, можно успешно доставить пакет на внутренний хост - брандмауэр посчитает, что этот пакет доставлен в ответ на запрос внутреннего хоста по уже существующему соединению.

Другой недостаток маршрутизаторов с фильтрацией пакетов состоит в отсутствии проверки содержимого пакетов, что делает их непригодными для защиты от атак, управляемых данными. Эти атаки основаны на том, что проверка только заголовков пакетов не позволяет выявить, насколько безопасна информация, содержащаяся в пакете. Однако эта информация может включать в себя различные команды, параметры настройки и другую информацию, передача которой определенной службе сетевого хоста способна заставить службу выполнить действия, причиняющие вред компьютерной системе. Для отражения таких атак более эффективны другие методы, обеспечиваемые программными посредниками.

Программные nocpegнuku

Программные посредники полезны тем, что позволяют создавать более жесткие правила политики безопасности, чем это позволяют сделать шлюзы с фильтрацией пакетов. Для управления трафиком между хостами глобальной и локальной сети в шлюзах приложений используются специальные программы, называемые службами-посредниками. Поэтому для защиты каждого защищаемого шлюзом приложения требуется установить отдельную службу, без которой приложение не сможет предоставлять свои услуги сетевым пользователям. Далее служба-посредник может быть сконфигурирована для предоставления только определенной части услуг защищаемого приложения.

При использовании программных посредников авторизованные пользователи имеют возможность получать доступ к службам-посредникам, чтобы получить нужную им услугу, но им не разрешен доступ к шлюзу приложения, поскольку это несет угрозу безопасности брандмауэра. Программные посредники, в отличие от шлюзов приложений, запрещают прямой обмен пакетами между внутренними и внешними хостами. Например, служба-посредник FTP разрешает прохождение трафика FTP через брандмауэр, и при подключении к FТР-порту брандмауэра исполняется служба FTP-посредник. Такие сеансы связи могут быть разрешены только при инициации FТР-соединения внутренними хостами сети, но сеансы блокируются, если запрос на FТР-соединение поступит от внешнего хоста.

Основное преимущество программных посредников состоит в возможности жесткого ограничения доступа ко всем приложениям и службам со стороны как внешних, так и внутренних хостов. Для решения такой задачи, как и в случае шлюзов с фильтрацией пакетов, используются правила фильтрации. Примером программного посредника можно назвать программу Deerfield Wingate Pro (http://www.wingate.com). Этот брандмауэр позволяет инсталлировать два компонента - серверный и клиентский. Серверный компонент, исполняемый на бастионном хосте, позволяет управлять сетевым трафиком от клиентских компонентов, реализуя защиту внутрисетевых компьютеров от внешних угроз.

Шлюзы с сохранением состояния и kaнальные шлюзы

Для достижения большего уровня безопасности используются также технологии создания канальных шлюзов и шлюзов с сохранением состояния. Канальные шлюзы напрямую соединяют ТСР/IР-порты защитного хоста с сетевым хостом и не проверяют проходящий сетевой трафик, что позволяет увеличить быстродействие брандмауэра. С помощью канальных шлюзов можно создать гибридный бастионный хост, в котором исходящие сообщения передаются через канальный шлюз, а входящие сообщения проходят через программные посредники.

Шлюзы с сохранением состояния позволяют достичь большего уровня безопасности путем сохранения информации обо всех подключениях. При решении вопроса, разрешать ли подключение поступившему запросу, брандмауэр с сохранением состояния анализирует информацию, сохраненную при предыдущих запросах. При сохранении информации для каждого сеанса связи фиксируются параметры как самого соединения так и подключаемого приложения. Далее, при каждой новой попытке подключения, сохраненная информация применяется для оценки и сравнения с текущим запросом с целью разрешения или блокирования сеанса связи.

Шлюзы с сохранением состояния не ограничиваются анализом заголовков пакетов, а могут выполнять более сложные логические и математические проверки содержимого пакетов. Тем самым они сочетают возможности шлюзов приложений и маршрутизаторов с фильтрацией пакетов, обеспечивая более высокий уровень безопасности компьютерной системы.

Настройка экспериментальной сети

После того, как вы прочли теоретические сведения о брандмауэрах, логично возникает вопрос - а как это все исследовать на практике? Сейчас мы этим займемся, и построим свою собственную экспериментальную сеть, имитирующую (достаточно точно) ситуацию практического применения брандмауэров.

Автор в очередной раз предупреждает о неприемлемости использования изложенных далее средств хакинга в злонамеренных целях. Имейте в виду, что все описываемые далее атаки на брандмауэр могут очень не понравиться их жертвам. Поэтому ограничьтесь знакомством с описываемыми далее методами хакинга на экспериментальной сети, подобной описанной в этом разделе.

Для экспериментов мы выберем брандмауэр WinRoute Pro (http://www.kerio.com) фирмы Kerio Technologies Inc. Такой выбор обусловлен наличием у WinRoute множества функций - фильтрации пакетов, прокси-сервера, отображения портов (реализация канального шлюза), а также надежностью и простотой в работе.

Построим на основе нашей сети, которую мы нещадно эксплуатировали всю эту книгу, такую экспериментальную структуру. На компьютер А1ех-1 установим брандмауэр WinRoute Pro и сделаем А1ех-1 бастионным хостом, защищающим сервер Sword-2000. Компьютер Alex-З отключим от сервера Sword-2000 и подсоединим к бастионному хосту А1ех-1 через дополнительный сетевой адаптер. В настройках TCP/IP протокола соединения Alex-З укажем новый IP-адрес 2.0.0.3 и маску сети 255.0.0.0. Для нового подключения компьютера А1ех-1 зададим IP-адрес 2.0.0.1 с маской подсети также равной 255.0.0.0.

Таким образом, мы получим локальную сеть Windows 2000 с IP-адресами хостов 1.0.0.1 и 1.0.0.7, к которой через брандмауэр подключен компьютер Alex-З с IP-адресом 2.0.0.3. Все свои атаки мы будем выполнять с компьютера Alex-З, имея целью получить доступ к серверу Sword-2000, на котором мы когда-то установили троянского коня NetBUS. С тех пор все изменилось, между клиентом и сервером NetBus возникло препятствие - брандмауэр WinRoute, и хакер потерял доступ к своему верному коню.

Многие думают, что если путь к компьютеру-жертве закрывает брандмауэр, то ничего уже нельзя сделать - путь для хакера закрыт. Однако повторяем, только наличие правильно настроенного брандмауэра может сделать такую задачу невыполнимой. Но ведь недаром говорится, что надежда умирает последней; администрирование брандмауэра - вещь не простая, и толковый хакер имеет шансы найти дыру в системе защиты. Посмотрим, как это можно сделать на практике.

Xakинг брандмауэра WinRoute Pro

Мы уже писали о том, что прежде чем приступить к «работе», уважающий себя хакер должен знать предмет своей атаки. Для этого ему приходится выяснять структуру атакуемой сети, используемые на хостах операционные системы, запущенные службы, открытые порты и т.д. Применительно к брандмауэрам хакеру, прежде всего, следует определить, с каким брандмауэром ему придется вступить в сражение, поскольку от типа брандмауэра зависит способ его взлома. Эта задача называется инвентаризацией брандмауэра.

Инвентаризация брандмауэров

Сейчас мы покажем на практическом примере, как можно выявить тип брандмауэра, защищающего хост А1ех-1 (iР-адрес 1.0.0.7) нашей экспериментальной сети. Первый шаг заключается в сканировании хостов локальной сети с целью выявления открытых портов и определения использующих порты служб. Мы применим для этого программу SuperScan, и на Рис. 5 представлена часть результатов сканирования сети в диапазоне IP-адресов 1.0.0.1 - 1.0.0.7, с открытым списком портов бастионного хоста А1ех-1.

Рис. 5. Сканирование определяет открытые порты почтовых сервисов брандмауэра WinRoute

Как видим, на хосте А1ех-1 открыты порты 25 и 110 серверов SMTP и РОРЗ и указано, что они принадлежат брандмауэру WinRoute Pro 4.1.30 - результат достигнут с первой попытки! Более того, дополнительное сканирование открытых портов хоста А1ех-1 показывает открытые порты 3128 прокси-сервера, используемого брандмауэром WinRoute Pro, и порта 3129, применяемого для удаленного администрирования WinRoute Pro (Рис. 6).

Рис. 6. Сканирование обнаруживает порты WinRouterPro

Чтобы убедится в работоспособности почтовых серверов, работающих на хосте А1ех-1, можно прибегнуть к утилите netcat, которую мы неоднократно применяли на протяжении всей книги для сбора маркеров открытых портов, т.е. сбора откликов, посылаемых в ответ на запрос подключения к порту, позволяющих судить о назначении портов. На Рис. 7 представлен результат запроса серверов SMTP (порт 25) и РОРЗ (порт 110) с помощью утилиты netcat.

Рис. 7. Запросы почтовых серверов брандмауэра показывают их полную готовность к работе

Результаты тестирования обнадеживают - почтовые серверы готовы к работе и к ним могут быть применены все те технологии хакинга почтовых сервисов, которые мы описывали в Главах 9 и 10 этой книги.

Таким образом, мы выполнили инвентаризацию брандмауэра WinRoute Pro с одной попытки. В действительности эта задача может усложниться, если исследуемый хост блокирует сканирование своих портов, скажем, с помощью системы IDS (Intrusion Detecting System - Система выявления вторжений в реальном режиме времени), либо брандмауэр блокирует отклики на сканирующие пакеты ICMP, как это позволяет сделать программа WinRoute.

Поэтому в более сложных случаях можно прибегнуть к процедуре отслеживания сетевых маршрутов, выполняемой с помощью утилит наподобие tracert из пакета W2RK. Если брандмауэр не пропускает ICMP-пакеты, то при попытке отследить маршрут к серверу Sword-2000 мы получим отклик, представленный на Рис. 8.

Рис. 8. На маршруте к Sword-2000 - брандмауэр!

Как можно заключить из сообщений, представленных на Рис. 8, на хосте А1ех-1 почти наверняка находится брандмауэр, который закрывает прохождение сканирующих пакетов извне (так оно и есть на самом деле). Таким образом, мы снова убеждаемся, что на пути к реализации нашей цели - доступу к компьютеру Sword-2000 - лежит брандмауэр. Так что деваться некуда - необходимо решить задачу обхода брандмауэра, что позволит нам выполнить сетевой хакинг хоста Sword-2000. Для этого брандмауэр на атакуемом хосте следует либо отключить, либо обойти. Рассмотрим эти задачи по порядку.

Отключение брандмауэра WinRoute Pro

Если посмотреть в конец списка открытых портов хоста А1ех-1, представленный на Рис. 6, то можно увидеть открытый порт 3129 для удаленного администрирования брандмауэра WinRoute Pro, и раз этот порт открыт - значит, можно попытаться получить удаленный контроль над брандмауэром. Для этого выполним следующие шаги:

• На хакерском компьютере (в нашем случае, на Alex-З) запустите программу администрирования брандмауэра WinRoute Pro либо выполнив двойной щелчок на значке брандмауэра на рабочем столе, либо командой меню Пуск * Программы • WinRoute Pro * Win Route Administration (Start * Programs * WinRoute Pro * WinRoute Administration). На экране появится диалог, представленный на Рис. 9.

Рис. 9. Подключение к удаленному брандмауэру WinRoute

• В поле WinRoute Host (Хост Win-Route) введите IP-адрес хоста с установленным и функционирующим брандмауэром WinRoute, в нашем случае -1.0.0.7.

После инсталляции брандмауэра WinRoute значение в поле Username (Имя пользователя) по умолчанию устанавливается равным Admin, а значение поля Password (Пароль) устанавливается пустым.

• Щелкните на кнопке ОК, - и если администратор брандмауэра - ламер, вам отобразится диалог удаленного администрирования брандмауэра WinRoute.

Теперь ничто не мешает хакеру сделать с брандмауэром все что угодно - отключить фильтрацию пакетов, модифицировать списки ACL с целью создания потайного хода для последующих атак и так далее.

Как ни странно, описанный только что метод хакинга брандмауэров - это отнюдь не демонстрационный, «игрушечный» пример, оторванный от реальной жизни. В книге Секреты хакеров. Безопасность сетей - готовые решения, 2-е изд., отмечается, что число брандмауэров, в которых не удалена установленная по умолчанию учетная запись - великое множество. Так что не стоит отчаиваться, встретив брандмауэр WinRoute (или какой-то другой) - очень часто попытка подключения к брандмауэру с пустой учетной записью приводит к успеху.

В принципе, никто не мешает хакеру испытать различные вариации логинов и паролей, как это уже не раз описывалось в других главах книги - побольше фантазии! Однако что делать, если и это не приведет к успеху? В этом случае связь с агентом удаленного управления (трояном) восстановить путем отключения брандмауэра не удастся, и перед хакером встает задача организации связи в обход брандмауэра.

Обход брандмауэра WinRoute Pro

Чтобы обойти защиту брандмауэра и наладить связь с запущенным на сервере трояном, хакер должен перед установкой трояна найти в защите брандмауэра дыру, через которую можно связываться с серверной компонентой трояна. Если же брандмауэр был установлен после установки трояна (бывает и так), то следует либо переустановить трояна, либо использовать утилиты перенаправления портов, позволяющие обойти защиту брандмауэра. Объясним поподробнее.

Как указано в [3], корректно настроенные брандмауэры для хакера практически не проходимы. Все дело в том, что для связи с трояном на атакуемом хосте требуется открыть TCP-порт, обеспечивающий обмен информацией между клиентской и серверной компонентами трояна. А корректно настроенный брандмауэр как раз и должен блокировать такие порты, пропуская трафик только от гарантированно безопасных источников и только через точно определенные порты хоста. Однако корректная настройка брандмауэра достаточно сложна и кропотлива, поэтому настойчивый и сообразительный хакер сможет найти лазейку даже в квалифицированно настроенном брандмауэре.

Одной из таких лазеек может быть порт бастионного хоста, открытый для внешних подключений. Найдя такой порт, хакер перенастраивает трояна на использование открытого порта. Другой вариант действий хакера - загрузка на бастионный хост утилиты перенаправления трафика, которая позволяет отправлять весь трафик, идущий на открытый порт брандмауэра, в порт сервера удаленного управления. Одной из таких утилит является fpipe, входящая в пакет программ foundstone_tools (http://www.foundstonetools.com), которая перенаправляет трафик, идущий на открытые порты TCP или UDP хоста, внутренней программе, порты которой закрыты брандмауэром.

В обоих случаях от хакера требуется найти открытый порт брандмауэра, а для этого необходимо определить правила фильтрации пакетов в списках ACL брандмауэра, т.е. выполнить инвентаризацию списков ACL брандмауэра.

Инвентаризация cnucков ACL брандмауэра

Чтобы определить правила фильтрации пакетов, хранимые в списках ACL брандмауэра, применяется сканирование портов бастионного хоста с помощью утилит наподобие программы nmap (http://www.insecure.org/nmap), к

сожалению, полностью реализованной только для системы UNIX (для систем Windows NT/2000/XP на сайте предлагается испытать бета-версию). Принцип работы подобных утилит инвентаризации следующий. На исследуемый порт посылаются пакеты ICMP. Если порт открыт, то в ответ сканирующему хосту отсылаются пакеты ICMP с установленными в заголовках TCP флагами SYN и АСК. Если порт заблокирован, то информация об этом передается обратно в заголовке пакета ICMP; если порт фильтруется брандмауэром, то некоторые брандмауэры помещают сообщение о фильтрации порта в IP-заголовок ответного пакета.

Таким образом, анализируя структуру заголовков ответных пакетов ICMP, посылаемых на различные порты бастионного хоста (выявленные сканированием), можно достаточно точно установить, какое правило фильтрации пакетов ICMP, поступающих на сканированный порт, используется брандмауэром - порт может быть открытым, блокированным или фильтруемым. Для такого анализа лучше всего использовать специальные утилиты типа nmap (или hping (http://www.kyuzz.org/antirez), также реализованную пока только для Unix), но, к счастью, наша утилита SuperScan уже предоставила достаточные сведения об портах хоста А1ех-1 - в списке портов на Рис. 5 можно заметить открытый порт FTP-сервера. Вот что это значит с точки зрения хакера.

Уязвимость протокола FTP

Протокол FTP регламентирует обмен информацией между сервером и клиентом FTP по сети TCP/IP при передаче файлов. Для выполнения передачи файлов FTP-клиент открывает на FTP-сервере два TCP-соединения (т.е. соединения, обмен с которыми регламентируется протоколом TCP). Первое соединение реализует канал передачи команд, а второе соединение - канал передачи данных. Для канала передачи команд на стороне FTP-сервера открывается стандартный порт с номером 21. Для канала передачи данных на стороне сервера порт может быть открыт двояким образом.

• В активном режиме клиент открывает на своей стороне пассивный (т.е. находящийся в режиме прослушивания) порт с произвольным номером, обычно с номером выше 1023, и передает его серверу, который в ответ открывает стандартный порт с номером 20. Для передачи или приема данных сервер устанавливает соединение с указанным номером порта клиента и открывает канал данных.

• В пассивном режиме клиент также открывает на своей стороне пассивный порт и передает серверу команду перехода в пассивный режим. В ответ сервер открывает пассивный порт с произвольным номером и передает его клиенту. Для передачи данных клиент открывает соединение с указанным портом и открывает канал данных.

Таким образом, в активном режиме открытие соединения TCP инициирует сервер, а в пассивном - клиент. Указанные тонкости открытия FTP-доступа часто усложняют защиту соединения по протоколу FTP при использовании программ брандмауэров, поскольку заранее не известен номер порта, защиту которого следует настроить. И если администратор бастионного хоста сделает ошибку в настройке брандмауэра, у хакера появляется шанс. Эта ошибка называется нестрогим списком ACL.

Нестрогие cnucки ACL

В начале урока мы уже подчеркивали, что списки ACL должны составляться весьма тщательно, поскольку любая небрежность может открыть дорогу хакеру в защищаемую брандмауэром сеть. Любая мелочь - порядок применения правил, списки портов и протоколов доступа - все должно быть выверено очень четко. Однако вот какие ошибки очень часто встречаются при настройке брандмауэров. Может случиться так, что при создании правил фильтрации для TCP-портов компьютера А1ех-1 вместо разрешения доступа к портам FTP-сервиса в пассивном режиме с номерами портов свыше 1024 только для доверенных хостов, будут разрешены соединения для всех хостов, т.е. список правил фильтрации пакетов.

Ясно, что такой брандмауэр никак не помешает компьютеру Alex-З подсоединиться к агенту удаленного управления, скажем, трояну NetBUS, помещенному на компьютер Alex-З, поскольку по умолчанию TCP-порт для связи с сервером NetBus установлен равным 20034. Ясно, что основная причина такой удачи -небрежно составленный список ACL. Вместо точного указания доверенных хостов, которым разрешены подключения к сервису FTP в пассивном режиме, для «упрощения» настройки такие подключения разрешены всем хостам.

Эта же небрежность поможет реализовать обход брандмауэра перенаправлением трафика - скажем, раз у компьютера открыт порт 21, то перенаправив с помощью утилиты fpipe трафик с этого порта на порт 20034 установленного на хосте трояна, мы обойдем защиту брандмауэра. Однако с практической точки зрения такой метод не очень эффективен - ведь от хакера потребуется установка утилиты перенаправления на бастионном хосте, а эта задача ничем не проще переустановки трояна! Возможно, более эффективно использовать такие утилиты для перенаправления трафика с портов, которые почти всегда открыты - допустим, для Web-сервера это будет TCP-порт 80, - на порты агентов удаленного управления, и делать это сразу, вместе с установкой трояна.

Как бы там ни было, основой аспект задачи инвентаризации ACL состоит в поиске порта, пригодного для управления трояном через брандмауэр. Перед помещением на атакуемый хост троянского коня хакеру следует заранее позаботиться о возможности связи с ним, а если на входе стоит тщательно настроенный брандмауэр, то задача становится трудновыполнимой. Но вот если хакеру удастся найти дыру в списке ACL брандмауэра, то ему ничего не стоит настроить своего трояна на использование порта, допускаемого списком ACL. Вы уже поняли, что это не такая уж и безнадежная задача.

Заключение

Хорошо настроенный брандмауэр делает сетевой хост практически неуязвимым для сетевых атак, но на практике, как указано в [3], большинство брандмауэров представляют собой только полузакрытую дверь, и в оставшуюся щель вполне в состоянии проникнуть достаточно настойчивые и квалифицированные хакеры. В этой главе рассмотрены наиболее широко известные (но далеко не все) атаки на брандмауэры. Их основная цель состоит в установлении связи с функционирующей позади брандмауэра хакерской программой. Как мы видели, шансы у хакера не так уж и малы.

Антихакер же, исходя из всего этого, должен либо правильно настроить работу брандмауэра, либо вообще не подсоединяться к сети. Плохо настроенный брандмауэр - это открытые ворота в компьютерную систему. Во-первых, при настройке брандмауэра следует блокировать пакеты ICMP, поступающие на бастионный хост, что предотвратит сканирование брандмауэра. Блокирование выполняется настройкой правил фильтрации пакетов, и в случае программы WinRoute не вызывает проблем. Во-вторых, следует защититься от сбора маркеров, ограничив предоставляемую брандмауэром информацию в ответ на запросы. Однако не все брандмауэры позволяют выполнить такую процедуру. В-третьих, самое главное - это настройка правил фильтрации пакетов, что представляет собой весьма непростую задачу, и поиск недочетов в списках ACL - это то занятие, которому и хакер, и антихакер должны уделять большое внимание, каждый в своих целях.

Hosted by uCoz