Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методы сканирования портов.doc
Скачиваний:
119
Добавлен:
01.05.2014
Размер:
268.8 Кб
Скачать
  1. Скрытые (stealth) методы сканирования

Определение "stealth" сканирования изменилось с тех пор какChrisKlaus в своей статье "Stealth Scanning: Bypassing Firewalls/SATAN Detectors" впервые описал его. Изначально это определение использовалось для методов сканирования, которые позволяли обходитьIDSи логирование, но сегодня они известны как полуоткрытые методы. В настоящее времяstealthметоды, которые:

  • Используют установку какого-то одного флага (ACK, FIN, RST, .. )

  • Используют сброс всех флагов (Null scan)

  • Используют установку всех флагов

  • Обходят фильтры пакетов, файерволы, маршрутизаторы

  • Неотличимы от обычного трафика

  • Используют различные способы разделения пакетов

Все описанные методы используют технологию «инвертированного сканирования»,т.е. подтверждение приходит для закрытых портов.

    1. Syn|ack scan (тср-сканирование пакетами с установленными флагамиSyNиAck)

Этот метод отсутствует в большинстве сканеров портов. Тем не менее, он более скрытен, чем обычный SYN метод.

В случае закрытого порта, ответ будет таким:

Frame6

TCP реализован так, что в ответ сервер не пошлет SYN, а сразу же разорвет соединение. То есть протокол решит, что произошла ошибка в соединении на этом порту, когда получит SYN|ACK без предшествующего пакета SYN и в результате пошлет флаг сброса.

В случае открытого порта:

Frame7

Как видно сервер игнорирует пакет SYN|ACK, пришедший на открытый порт. Понятно, что отсутствие ответа от сервера приводит к ложным срабатываниям. Так если мы пошлем SYN|ACK пакет и не получим ответа из-за фильтра пакетов, файервола или просто истечения времени жизни пакета, то сканер ошибочно решит, что порт открыт. Получается что этот метод менее надежный, чем TCP connect(). Методы, которым присущи такие ошибки, называются инвертированными ("inverse mapping").

Преимущества:быстрый, обходит простыеIDSи файерволы, не устанавливает полного соединения

Недостатки:не очень надежный (возможно ложное определение закрытого порта как открытый)

    1. Fin scan (тср-сканирование пакетами с установленным флагом fin)

FIN метод так же является инвертированным. К сожалению, он основан ошибке в сетевом коде BSD и не работает для других ОС. В идеальном случае закрытый порт пошлет RST, открытый не пошлет ничего.

Frame8

Операционная система сервера просто уничтожит пакет и ничего не передаст процессу, слушающему этот порт.

В случае закрытого порта:

Frame9

Существует два способа проверки открытого порта, если от него не приходит ответ. Первый способ заключается в том, чтобы получить список портов, от которых пришли пакеты RST и сравнить его со списком портов, на которые были отосланы FIN пакеты. Например, отсылаем 3 пакета на порты 1, 2 и 3. Приходят ответы с RST от портов 1 и 3. Из этого можно сделать вывод, что порт 2 открыт.

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

Преимущества:обходит большинствоIDS, не устанавливает полного соединения

Недостатки:не очень надежный (возможно ложное определение закрытого порта как открытый)