Обзор возможностей и базовых приемов применения сканера nmap
Сетевой сканер nmap дает возможность решать следующие задачи по отдаленному сбору информации о подсети и узлах IP-Сетей:
- идентификация активных узлов;
- идентификация сетевых служб;
- идентификация операционных систем;
- идентификация программного обеспечения сетевых служб;
- идентификация наборов правил межсетевых экранов;
- определение имен пользователей, от лица которых запущенны серверы сетевых служб.
Во всех случаях применяются активные методы сбора информации.
nmap предоставляет также ряд возможностей по управлению порядком выполнения тестов с целью оптимизации скорости тестирования и надежности полученных результатов, скрытие факта и/или источника тестов, проникновение через межсетевые экраны. Предоставляются также некоторые возможности по управлению порядком задания параметров тестирования и вывод результатов. Предоставляется как графический интерфейс управления работой nmap, так и интерфейс командной строки.
Синтаксис командной строки
Способы задания цели
Простейший способ задания целевого узла или сети – указать его имя или IP-Адрес в командной строке после всех опций и их аргументов. Адреса сетей идентифицируются суффиксом ‘/<mask>’ («маска») после имени или IP-Адреса. Типичными значениями маски есть следующие:
- ‘/0′ — целью является вся Сеть;
- ‘/16′ — целью есть подсеть класса B;
- ‘/24′ — целью есть подсеть класса C.
nmap разрешает также более гибко задавать IP-Адреса, используя списки и диапазоны для их отдельных элементов. Например, если целью есть подсеть класса B с адресом 192.168.*.*, ее можно задать одним из следующих способов:
- 192.168.*.*
- 192.168.0-255.0-255
- 192.168.1-50,51-255.1,2,3,4,5-255
- 192.168.0.0/16
Следует иметь в виду, что во многих командных оболочках символы ‘*’ придется заэкранировать с помощью ‘\’ или взять в кавычки.
Во многих случаях уместно, также, явным образом указать перечень портов на целевых узлах, состояние которых нужно определить. Это можно сделать с помощью опции -p.
Режим работы по умолчанию
По умолчанию (когда запущенный без любых опций) nmap выполняет сканирование TCP-Портов заданной цели, применяя зондирование с полным установлением соединения (режим -sT).
Перед началом сканирования портов выполняется идентификация активных узлов цели. При этом применяется два метода зондирования узлов: с помощью ICMP-Сообщений типа ‘Echo Request’ и с помощью TCP-Сообщений типа ACK (в последнем случае тестовое сообщение направляется на порт с номером 80 (порт http-сервера)).
Исследуются все порты в диапазоне 1-1024, а также те из портов, которые перечислены в файле nmap-services, что поставляется вместе с nmap (см. каталог /usr/share/nmap).
Используется временной режим «Normal».
Идентификация активных узлов
nmap разрешает применять следующие методы зондирования узлов с целью идентификации их активности:
- путем зондирования узлов ICMP-Сообщениями типа ‘Echo Request';
- путем зондирования отдельных TCP-Портов узлов;
- путем зондирования отдельных UDP-Портов узлов (тех, которые с большой достоверностью закрыты).
При идентификации активных узлов путем зондирования их TCP-Портов лучше применять такие методы зондирования, которые предусматривают поступление реакции от активного узла независимо от состояния (закрытый или открытый) порта, который исследуется. Например:
- зондирование с полным установлением соединения (опция -sT, а также по умолчанию);
- зондирование с неполным установлением соединения (опция -sS);
- ACK-Зондирование (опция -sA);
- Window-Зондирование (опция -sW).
При применении таких методов зондирования TCP-Портов, как FIN-Зондирование (опция -sF), зондирование методом “рождественской елки” (опция -sX), ноль-зондирование (опция -sN) лучше выбирать порты, которые с большой достоверностью закрыты (поскольку эти методы предусматривают поступление реакции от узла только в том случае, когда исследуемый порт закрыт).
Достоверность идентификации активных узлов становится довольно проблематичной, если доступ к цели заблокирован межсетевым экраном. Если межсетевой экран блокирует прохождение ICMP-Сообщений, единственной возможностью идентифицировать активные узлы цели остается зондирование тех TCP- и UDP-Портов, доступ к которым с большой достоверностью незаблокированный.
По умолчанию идентификация активных узлов цели автоматически проводится в начале каждого сеанса работы nmap. При этом одновременно выполняется зондирование узлов ICMP-Сообщениями типа ‘Echo Request’ и TCP-Сообщениями типа ACK (последние пересылаются на порт 80). Опция -sP разрешает выполнить только идентификацию активных узлов; опция -P0 — не проводить идентификацию активных узлов в начале сеанса. Опции -PT, -PI, -PS, -PB разрешают определять методы зондирования узлов, которые применяются при идентификации их активности в начале сеанса работы.
Идентификация сетевых служб
nmap разрешает осуществлять идентификацию сетевых служб методами сканирования TCP- и UDP-Портов. При этом могут применяться следующие способы зондирования TCP-Портов (одновременно — только один из них):
- зондирование с полным установлением соединения (опция -sT, а также по умолчанию);
- зондирование с неполным установлением соединения (опция -sS);
- FIN-Зондирование (опция -sF);
- зондирование по методу «рождественской елки» (опция -sX);
- ноль-зондирование (опция -sN).
Режим сканирования UDP-Портов включается с помощью опции -sU.
Идентификация операционных систем
nmap разрешает осуществлять идентификацию операционных систем узлов IP-Сетей методом активного исследования реализации стека TCP/IP. При этом nmap старается выяснить типы и версии операционных систем, а также определить алгоритм генерации чисел TCP ISN. Соответствующий режим включается с помощью опции -O.
Идентификация программного обеспечения сетевых служб
nmap разрешает идентифицировать имена, номера и версии программ, поддерживаемых RPC-Серверами целевых узлов (в обход агента связывания). Соответствующий режим включается опцией -sR.
Идентификация наборов правил межсетевых экранов
nmap разрешает определить номера TCP-Портов, которые блокируются межсетевым экраном (одновременно с выполнением сканирования этих портов). При этом могут применяться те методы зондирования портов, которые предусматривают поступление реакции от исследуемых узлов независимо от состояния портов (открытые или закрытые), которые исследуются:
- зондирование с полным установлением соединения (опция -sT, а также по умолчанию);
- зондирование с неполным установлением соединения (опция -sS);
- ACK-Зондирование (опция -sA);
- Window-Зондирование (опция -sW).
Определение имен пользователей, от лица которых запущенны серверы сетевых служб
Если на целевом узле выполняется демон identd, при сканировании TCP-Портов такого узла с полным установлением соединения (опция -sT или по умолчанию) nmap может определить имена пользователей, от лица которых запущенные серверы сетевых служб этого узла. Соответствующий режим включается с помощью опции -I.
Способы скрытия факта и/или источника тестов
В nmap реализованны следующие способы скрытия факта и/или источника тестов:
- зондирование TCP-Портов без установления соединения (опции -sS, -sF, -sX, -sN, -sA, -sW);
- использование промежуточного узла (через промежуточный ftp-сервер; включается опцией -b);
- фрагментация тестовых пакетов (опция -f);
- использование тестовых пакетов с фиктивным обратным адресом (опции -D и -sS);
- рандомизация выбора узлов (опция —randomize_hosts) и портов (по умолчанию, можно отменить с помощью опции -r);
- увеличение промежутков времени между отдельными тестами (опции -T или —scan_delay).
Способы проникновения через межсетевые экраны
В nmap реализованны следующие способы проникновения через межсетевые экраны:
- использование промежуточного ftp-сервера (опция -b) (разрешает проникнуть через межсетевой экран, если этот ftp-сервер находится за межсетевым экраном и последний не блокирует доступ к нему);
- фрагментация тестовых пакетов (опция -f) (простые межсетевые экраны могут пропускать такие пакеты);
- произвольный выбор порта источника тестовых пакетов (опция -g).
Хм… По моему мнению, минусы значительно превосходят плюсы. Думаю, не стоит заморачиваться.