[ 1. Вступление ]

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

[ 2. Принцип обнаружения ]

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

Итак, пришло время подробнее узнать о принципах обнаружения.

A. Банальное сканирование

Надеюсь многие из вас сканировали в сети порты какого-либо IP-адреса...У каждого сервиса
есть свой уникальный порт, будь то ftp (21), http (80), ssh (22) и т.д., не обошло внима
нием и фаерволлов, но не всех... Сразу скажу, что не все фаерволлы слушают порт. Некото
рые маскируются под демоны вроде порта 23 (на них обычно висит Cisco Router или ему по
добные). Приведу некоторый список портов, на которых иногда висят фаерволлы или их мене
джеры по умолчанию :

приложение: порт:

cisco-manager (mgmt) 4001 (6001, 2001)
checkpoint DNS (53udp/tcp) RIP (520udp)
cisco-xremotesrv 9001
wingate 8080, 81
realsecure 2998/2997/2999

Это, возможно, самые распространенные фаерволлы на сегодняшний день.
Итак, при подключении на выше описанные порты, возможно, считать сервисный банер фаерволла.
Но опять же повторюсь, что не всегда! Скажу еще, что грамотно сконфигурированный фаерволл
не даст вам сканировать порты в "массах", т.е. вы не сможете просканировать адрес, при ска
нировании более одного порта... Тогда действительно задача атакующего усложняется и прихо
дится выдумывать некие способы сканирования ( будь то сканирование с подменной source адреса ).
Так же хочу сказать, что некоторые фаерволлы конфигурируются так, что во внутреннюю сеть
доступ запрещен всем, кроме их же внутренней сети т.е. вы не сможете присоединиться к портам,
которые фильтруются фаерволлом, если вы не принадлежите к внутренней сети хостинга или
локальной сети... Способов обхода таких защит не так уж много. Скажу лишь то, что один из
способов сканирования "за фаерволлом" придумал небезызвестный всем бывший редактор журнала
Phrack - Route. Его утилита Firewalk способна сканировать порты как бы за фаерволлом. Но
при этом так же не нужно полагаться на все 100%, что она правильно просканирует порты т.к.
многие фаерволлы конфигурируются так, что фаерволл может определить TLL пакета до его при
бытия (проверки по списку). Поэтому пакеты типа ICMP оповещающие о истечении TLL будут отсы
латься в любом случае...

Теперь перейдем к пункту об отслеживании маршрута прохождения пакета по сети...

B. Tracerouting

Многие надеюсь, сталкивались с программой типа tracert или traceroute, так вот скажу, то что
эти программы способны отследить маршрут прохождения пакета по сети...

В WIN32 системах, утилита tracert.exe, а в Unix Like системах - traceroute.

Давайте рассмотрим пример прохождения пакета, чтобы идентифицировать фаерволл на пути прохо
ждения нашего udp/icmp пакета :

Трассировка маршрута к 168.75.176.102

с максимальным числом прыжков 30:

1 * 4366 ms * Loopback0.GW8.ALA2.nursat.net [195.82.29.53]
2 3373 ms * 4287 ms Ethernet0-0-2.GW1.ALA2.nursat.net [195.82.28.7]
3 * 4463 ms * Serial6-1.GW2.MOW1.nursat.net [195.82.28.198]
4 * * * Превышен интервал ожидания для запроса.
5 * * * Превышен интервал ожидания для запроса.
6 * * * Превышен интервал ожидания для запроса.
7 * * * Превышен интервал ожидания для запроса.
8 2274 ms 971 ms 958 ms so-2-3-1-zar1.skt.cw.net [166.63.220.69]
9 928 ms 945 ms 958 ms ge-3-3-0-ycr1.skt.cw.net [166.63.220.129]
10 954 ms 958 ms * so-1-0-0-ycr1.cpi.cw.net [208.173.216.25]
11 958 ms 958 ms 971 ms so-2-0-0-ycr2.cpi.cw.net [208.173.216.2]
12 981 ms 958 ms 958 ms so-2-0-0-bcr1.amd.cw.net [208.173.211.233]
13 1059 ms 1050 ms 1049 ms dcr1.nyk.cw.net [195.2.1.3]
14 1050 ms 1037 ms 1036 ms 65.59.192.13
15 1041 ms 1050 ms 1063 ms ge-0-3-0.bbr2.NewYork1.Level3.net [209.247.9.209]
16 1050 ms 1036 ms 1076 ms ge-7-0-0.edge1.NewYork1.Level3.net [64.159.4.150]
17 1050 ms 1063 ms 1050 ms xo-level3-oc12.NewYork1.Level3.net [209.244.160.178]
18 1050 ms 1062 ms 1076 ms p5-0-0.RAR1.NYC-NY.us.xo.net [65.106.3.37]
19 1115 ms 1523 ms 1757 ms p6-0-0.RAR2.Chicago-IL.us.xo.net [65.106.0.29]
20 1324 ms 1471 ms 1324 ms p1-0-0.RAR1.Dallas-TX.us.xo.net [65.106.0.34]
21 1141 ms 1141 ms 1141 ms p6-0-0.RAR2.LA-CA.us.xo.net [65.106.0.14]
22 1732 ms 1377 ms 1456 ms p4-0-0.MAR2.LasVegas-NV.us.xo.net [65.106.5.34]
23 1155 ms 1141 ms 1128 ms p15-0.CHR1.LasVegas-NV.us.xo.net [207.88.81.78]
24 1404 ms 1181 ms * 66.238.47.34.ptr.us.xo.net [66.238.47.34]
25 1614 ms 1378 ms 1378 ms 168.75.176.102

Трассировка завершена.

В выше приведенном примере очень ярко отображается структура прохождения пакета по сети.
Можно предположить, что фаерволл создает некую цепочку адресов, по которым проходит наш
пакет... В трассировке по прыжкам 1-3 можно наблюдать, что dialup сервер фильтрует входя
щие пакеты, далее происходит послание пакета по сети по цепочке адресов... В конечном
итоге можно видеть, что наш пакет приходит к месту назначения - 168.75.176.102... В это
случае могу сказать, что вероятнее всего фаерволл - 66.238.47.34, хотя 100 процентных ре
зультатов я не даю, т.к. в этом деле нужно быть крайне внимательным...

C. Считывание сервисных банеров.

Ну этот способ я думаю крайне прост, хотя на данный момент крайне трудно найти такой фаер
волл, который бы выводил о себе информацию, но опять же "чем черт не шутит"... Считывание
банеров заключается в том, что при подключении к фаерволлу, вы получаете некое послание
от удаленного фаерволла... Т.е. при соединении, например 295 (порт CheckPoint Firewall),
вам выводиться информация о версии фаерволла, тогда вы с уверенностью можете идти искать
в bugtraq уязвимость в этом фаерволле, чаще всего, когда я сталкивался с фаерволлами
CheckPoint, мне выходила некая информация, я поначалу совсем не понимал что она
обозначает... А заключается она в том, что при подключении к фаерволлу CheckPoint, он вы
водит некую последовательность цифр, например: 30003, 30002 и т.д. Как позже я узнал, что
это свойственно фаерволлу CheckPoint...

Ну вот по сути самые распространенные способы обнаружения вражеского фаерволла... Теперь
я хочу поведать вам несколько способов обхода обнаруженного фаерволла...
Итак, поехали...

[ 3. Принцип обхода ]

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

Существует еще один очень интересный способ : Тунелирование ICMP/UDP пакетами... Оно заключа
ются в том, что у некоторых фаерволлов нет правила на блокирование ICMP ECHO, ICMP ECHO REPLY,
UDP. Все это способствует хорошей атаки... Сказу скажу, что этот способ проходит, если вы нахо
дитесь в подсети фаерволла. Для его осуществления вам понадобятся две программы - loki, lokid
(демон). Для того чтобы осуществить атаку, вам следует установить демон за фаерволлом и после
дующей эксплуатацией с помощью утилиты loki...

[ 4. Вывод ]

Вывод можно сделать один - нет ничего совершенного! В каждом устройстве, программе и
т.д. всегда найдутся способы, чтобы всячески её сломать, обойти и т.д. Конечно в данной статье
не представлены все способы обхода фаерволлов... Способов очень много... По мере того, как ста
нут появляться новые устройства, будут появляться новые способы...