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