Сканирование UDP-портов
Естественно, nmap это тоже делает. Используя флаг -sU, можно посылать пустые UDP-пакеты и ожидать в ответ ICMP-сообщения "port unreachable". Если не получено никаких сообщений в ответ, порт считается открытым, как это показано в следующей таблице. Здесь вы можете видеть несколько возможных ошибок. Если возвращаемые ICMP-сообщения блокируются брандмауэром, это может означать, что все UDP-порты хоста открыты. Также, если UDP-трафик непосредственно блокируется брандмауэром, это по-прежнему означает, что все UDP-порты открыты. Эта та же ловушка, в которую мы попадали, используя Netcat в процессе сканирования UDP-портов. Вдобавок, многие хосты могут посылать наружу только ограниченное число ICMP-сообщений об ошибках в секунду для предотвращения перегрузки сети. Nmap может автоматически корректировать эту ситуацию, если она определяется, но это может очень сильно замедлить сканирование. Поскольку UDP-протокол работает без установления соединения и не ограничен необходимостью подтверждения получения входящих пакетов, нет полного решения этой проблемы.
Пустой UDP пакет | Nothing | Возможно, порт открыт, если хост отвечает на Ping (хост работает); возможно, порт закрыт, если брандмауэр блокирует ICMP. |
Пустой UDP пакет | ICMP порт недоступен | Порт закрыт. |