[an error occurred while processing this directive] Инструменты[an error occurred while processing this directive]

Сканер портов nmap

Николай Малых

Этот документ подготовлен на основе руководства man, включенного в пакет nmap, и является частью учебного курса “Системы безопасности на открытых платформах.


(назад ...)

Синтаксис

nmap [<тип сканирования>] [<опции>] <хост или сеть #1 ... [#N]>

Опции

В силу широких возможностей программы число опций командной строки, управляющих режимом и параметрами сканирования весьма велико. Программа nmap проверяет заданный в командной строке набор опций и при наличии в них ошибок или противо­речий выдает пользователю предупреждение. Список опций с краткими комментариями можно получить по команде nmap -h, бо­лее подробное описание вы получите с помощью команды man nmap.

Ниже приводятся описания поддерживаемых программой опций, объединенных в группы по их назначению.

Тип сканирования

В последующих параграфах описаны опции выбора типа сканирования или дополнительных операций, выполняемых программой nmap. Опции активизации этих методов указаны в скобках после названия метода.

Сканирование TCP SYN (-sS)

Этот метод часто называют сканированием с использованием полуоткрытых (half-open) соединений, поскольку при сканировании полные соединения TCP не организуются. Сканирующий хост передает пакет SYN как при обычной организации соединения и ожидает отклика. Полученный в ответ пакет SYN ACK говорит о том, что порт прослушивает входящие соединения, пакет RST показывает, что порт не прослушивается. При получении отклика SYN ACK незамедлительно передается пакет RST для сброса запрошенного соединения.

Основным преимуществом данного метода сканирования является то, что большинство сайтов не сохраняют записей о нем в своих журнальных файлах. Однако для использования метода требуются привилегии пользователя root, чтобы создавать пакеты SYN с нужными параметрами. Этот метод сканирования применяется по умолчанию для привилегированного пользователя.

Сканирование TCP connect (-sT)

Это один из основных методов сканирования TCP. Для организации соединения с каждым проверяемым портом служит систем­ный вызов connect(). Если порт находится в состоянии listening, connect() возвращает позитивный результат, в противном случае функция сообщает о недоступности порта. Преимуществом этого метода является то, что он не требует каких-либо специальных привилегий для пользователя, поскольку вызов функции connect на большинстве систем UNIX доступен любому пользователю. Данный метод применяется по умолчанию для пользователей, не имеющих привилегий.

Сканирование с использованием этого метода легко обнаружить, поскольку проверяемый хост будет фиксировать в журнальных файлах многочисленные вызовы и сообщения об ошибках при обращении к закрытым портам.

Скрытое сканирование Stealth FIN, Stealth Xmas Tree, Stealth Null (-sF -sX -sN)

В ряде случаях сканирование TCP SYN не обеспечивает скрытности. Некоторые брандмауэры и системы фильтрации пакетов сле­дят за пакетами SYN, направленными в закрытые порты, а программы типа PortSentry и Courtney способны детектировать скани­рование TCP SYN. Эти методы сканирования достаточно эффективны и практически не оставляют следов.

Идея этих методов состоит в том, что при обращении к закрытым портам вы должны получить отклик RST, а открытые порты должны игнорировать такие пакеты в соответствии со стандартом (RFC 793, стр. 641). При сканировании Stealth FIN в качестве зондов передаются пакеты с флагом FIN, метод Stealth Xmas tree использует пакеты с флагами FIN, URG и PUSH, а сканирование Stealth Null основано на передаче пробных пакетов без флагов.

Эти методы не позволяют сканировать большинство систем Windows, поскольку компания Microsoft, по своему обыкновению, проигнорировала стандарт и реализовала протокол как получилось2. Существуют и другие системы, в которых реакция на скани­рование не соответствует стандарту. Системы Cisco, BSDI, HP/UX, MVS и IRIX передают пакет RST при сканировании открытых портов, хотя в соответствии со стандартом должны просто отбрасывать пакеты.

Вы можете видеть сравнить результаты сканирования одного хоста с использованием методов TCP SYN (рисунок 1) и Stealth FIN (рисунок 2).


Рисунок 1 Результат сканирования TCP SYN


Рисунок 2 Результат сканирования Stealth FIN


1Копию стандарта вы можете загрузить с сайта http://rfc-editor.org/rfc/rfc793.txt. Перевод документа на русский язык вы найдете здесь.

2Нет худа без добра и поведение стека протоколов Microsoft позволяет с помощью этих методов сканирования достаточно достоверно идентифицировать хосты, работающие в среде Windows. Если после сканирования любым из этих методов вы получили информацию хотя бы об одном открытом порте, это говорит о том, что хост не использует Windows. Если же сканирование в режиме -sF, -sX или -sN говорит, что все порты закрыты, а сканирование SYN (-sS) показывает наличие открытых портов, это с высоким уровнем достоверности указывает на систему Windows. Польза от такой возможности невелика, поскольку nmap поддерживает эффективные средства детектирования ОС.

далее ...

[an error occurred while processing this directive] [an error occurred while processing this directive]