Рис. 2.2. При установке TCP-соединения происходит обмен тремя сообщениями:
(1) клиент отправляет серверу пакет SYN, (2) получает от сервера пакет
SYN/ACK и (3) отправляет серверу пакет АСК
- TCP-сканирование с помощью сообщений FIN (TCP FIN scan).
В этом случае исследуемой системе отправляется пакет FIN. Согласно
документу RFC 793 (http://www.ieff.org/rfc/rfc0793.txt), в ответ
узел должен отправить пакет RST для всех закрытых портов. Данный
метод срабатывает только для стека протоколов TCP/IP, реализованного
в системе UNIX.
- TCP-сканирование по методу "рождественской елки"
(TCP Xmax Tree scan). При использовании данного метода на исследуемый
порт отправляются пакеты FIN, URG и PUSH. Согласно документу RFC
793, исследуемый узел в ответ должен отправить сообщения RST для
всех закрытых портов.
- TCP нуль-сканирование (TCP Null scan). Этот метод состоит
в отправке пакетов с отключенными флагами. Согласно RFC 793, исследуемый
узел должен ответить отправкой сообщения RST для всех закрытых портов.
- TCP-сканирование с помощью сообщений АСК (TCP ACK scan).
Этот метод позволяет получить набор правил, используемых брандмауэром.
Такое сканирование поможет определить, выполняет ли брандмауэр простую
фильтрацию пакетов лишь определенных соединений (пакетов с установленным
флагом АСК) или обеспечивает расширенную фильтрацию поступающих
пакетов.
- TCP-сканирование размера окна (TCP Windows scan). Такой
метод позволяет выявить открытые, а также фильтруемые/нефильтруемые
порты некоторых систем (например, AIX и FreeBSD), в зависимости
от полученного размера окна протокола TCP.
- TCP-сканирование портов RFC (TCP RFC scan). Этот метод применим
только для систем UNIX и используется для выявления портов RFC (Remote
Procedure Call — удаленный вызов процедур), связанных с ними программ
и их версий.
А UDP-сканирование (UDP scan). Данный метод заключается в отправке на
исследуемый узел пакетов по протоколу UDP. Если в ответ поступает сообщение
о том, что порт ICMP недоступен (ICMP port unreachabie), это означает,
что соответствующий порт закрыт. С другой стороны, если такого сообщения
нет, можно предположить, что данный порт открыт. В связи с тем, что
протокол UDP не гарантирует доставки, точность данного метода очень
сильно зависит от множества факторов, влияющих на использование системных
и сетевых ресурсов. Кроме того, UDP-сканирование — очень медленный процесс,
что особенно сказывается при попытках сканирования устройств, в которых
реализован мощный алгоритм фильтрации пакетов. Поэтому, планируя использовать
UDP-сканирование, приготовьтесь к тому, что результаты могут оказаться
ненадежными.
Некоторые реализации IP-протокола обладают одним неприятным свойством:
пакеты RST отправляются обратно для всех сканируемых портов независимо
от того, находятся ли соответствующие порты в режиме ожидания запросов.
Учитывайте этот факт при использовании описанных методов. Однако в то
же время сканирование подключением и сканирование с использованием сообщений
SYN могут применяться для всех узлов.