- •Открытые методы сканирования
- •Сканирование tcp-портов методом reverse-ident (обратной идентификации)
- •Полуоткрытые методы сканирования
- •Syn scan (тср-сканирование пакетами с установленным флагом syn)
- •Сканирование с использованием "немого" хоста ("dumb"hostscan)
- •Скрытые (stealth) методы сканирования
- •Syn|ack scan (тср-сканирование пакетами с установленными флагамиSyNиAck)
- •Fin scan (тср-сканирование пакетами с установленным флагом fin)
- •Ack scan (тср-сканирование пакетами с установленным флагом ack)
- •Null scan (тср-сканирование нулевыми пакетами)
- •Xmas Tree scan (tcp-сканирование методом "рождественской елки")
- •Tcp Fragmenting (tcp-сканирование с использованием ip-фрагментации)
- •Остальные методы сканирования
- •СканированиеUdp-портов проверкойIcmp-сообщения "Порт недоступен"
- •Сканирование tcp-портов с использованием атаки «Прорыв через ftp»
- •Обнаружение и блокировка пакетных аномалий
Скрытые (stealth) методы сканирования
Определение "stealth" сканирования изменилось с тех пор какChrisKlaus в своей статье "Stealth Scanning: Bypassing Firewalls/SATAN Detectors" впервые описал его. Изначально это определение использовалось для методов сканирования, которые позволяли обходитьIDSи логирование, но сегодня они известны как полуоткрытые методы. В настоящее времяstealthметоды, которые:
Используют установку какого-то одного флага (ACK, FIN, RST, .. )
Используют сброс всех флагов (Null scan)
Используют установку всех флагов
Обходят фильтры пакетов, файерволы, маршрутизаторы
Неотличимы от обычного трафика
Используют различные способы разделения пакетов
Все описанные методы используют технологию «инвертированного сканирования»,т.е. подтверждение приходит для закрытых портов.
Syn|ack scan (тср-сканирование пакетами с установленными флагамиSyNиAck)
Этот метод отсутствует в большинстве сканеров портов. Тем не менее, он более скрытен, чем обычный SYN метод.
В случае закрытого порта, ответ будет таким:
TCP реализован так, что в ответ сервер не пошлет SYN, а сразу же разорвет соединение. То есть протокол решит, что произошла ошибка в соединении на этом порту, когда получит SYN|ACK без предшествующего пакета SYN и в результате пошлет флаг сброса.
В случае открытого порта:
Как видно сервер игнорирует пакет SYN|ACK, пришедший на открытый порт. Понятно, что отсутствие ответа от сервера приводит к ложным срабатываниям. Так если мы пошлем SYN|ACK пакет и не получим ответа из-за фильтра пакетов, файервола или просто истечения времени жизни пакета, то сканер ошибочно решит, что порт открыт. Получается что этот метод менее надежный, чем TCP connect(). Методы, которым присущи такие ошибки, называются инвертированными ("inverse mapping").
Преимущества:быстрый, обходит простыеIDSи файерволы, не устанавливает полного соединения
Недостатки:не очень надежный (возможно ложное определение закрытого порта как открытый)
Fin scan (тср-сканирование пакетами с установленным флагом fin)
FIN метод так же является инвертированным. К сожалению, он основан ошибке в сетевом коде BSD и не работает для других ОС. В идеальном случае закрытый порт пошлет RST, открытый не пошлет ничего.
Операционная система сервера просто уничтожит пакет и ничего не передаст процессу, слушающему этот порт.
В случае закрытого порта:
Существует два способа проверки открытого порта, если от него не приходит ответ. Первый способ заключается в том, чтобы получить список портов, от которых пришли пакеты RST и сравнить его со списком портов, на которые были отосланы FIN пакеты. Например, отсылаем 3 пакета на порты 1, 2 и 3. Приходят ответы с RST от портов 1 и 3. Из этого можно сделать вывод, что порт 2 открыт.
Второй способ основывается на времени жизни пакета. Если время жизни пакета истекло, а ответ от порта не пришел, то считаем порт открытым. Ясно, что этот метод часто приводит к ложным срабатываниям, поэтому его стоит избегать. Ответы могут не доходить из-за файерволов, фильтров, маршрутизаторов, медленных каналов, каналов с большим трафиком. Поэтому инвертированные методы не дают стопроцентную гарантию.
Преимущества:обходит большинствоIDS, не устанавливает полного соединения
Недостатки:не очень надежный (возможно ложное определение закрытого порта как открытый)