nmap
предлагает функциональность обнаружения ОС на основе TCP / IP fingerprinting путем отправки шести зондирующих пакетов и анализа их ответов. в документация говорит, что некоторые из них отправляются в открытый порт, а некоторые отправляются в закрытый порт.
Кто-нибудь знает как nmap
решает, на какой порт отправлять зонды? Ищет ли он только первый закрытый порт и первые открытые порты, которые он может найти? Ищет ли он их в определенном порядке? Или случайно выбирает порт?
Если я хорошо понял, Nmap пытается открыть или закрыть порты только в том случае, если не может обнаружить ОС по отпечатку пальца, но в документации не объясняется последовательность проверенных портов. Я думаю, вы могли бы узнать, как отслеживать собственный трафик во время сканирования.
В этом случае нет лучшей документации, чем сам код. Nmap полагается на результаты сканирования портов для определения списка открытых и закрытых портов. В частности, он ищет три вещи:
Вообще говоря, он выбирает первое из них (наименьшее число), о котором он знает, но есть несколько правил для вещей, которых он пытается избежать:
tcpwrapped
. Иногда это может быть результатом того, что IPS завершает соединение, поэтому пропуск этих портов помогает гарантировать, что Nmap получает неизмененное соединение с целью.