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

Принцип обнаружения

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

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

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

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

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

cisco-manager (mgmt) - 4001, 6001, 2001
checkpoint DNS - 53, 520
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.

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

Принцип обхода

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

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

Вывод

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

1. hping - советую вам всем её быстро скачать.
2. Firewalk - творение одного из редакторов Phrack "Route". Тоже очень пригодится. Советую скачать.
3. Datapipe - тут думаю, комментарии излишни...

P.S. Читайте Bugtraq и следите за новостями из мира IT 🙂
P.P.S. Ваши комментарии по поводу статьи буду рад почитать. Писать на
darkeagle@list.ru.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии