Библиотека сайта rus-linux.net
Nmap: подробнее о типах исследования сетей и устройств
Оригинал: Advanced Nmap: Scanning Techniques ContinuedАвтор: Rajesh Deodhar
Дата публикации: 1 декабря 2010 г.
Перевод: А.Панин
Дата перевода: 28 сентября 2012 г.
В предыдущих статьях серии были затронуты основные функции программы Nmap, подробности работы трехэтапного рукопожатия TCP и основные типы исследования сетей и устройств с примерами практического применения. Третья статья серии продолжает рассмотрение типов исследования сетей и устройств при помощи программы Nmap.
Очень важным аспектом исследования сетей и устройств является процесс Nmap-пинга, называемый также процессом обнаружения/пингования узлов. Согласно документации на сайте nmap.org, процесс исследования подсети обычно начинается с обнаружения активных узлов. Процесс обнаружения узлов выполняется перед каждым типом исследования сети. Этот процесс отличается от классического ICMP-запроса и сочетает в себе запросы к ARP-кэшу с уточняющими комбинациями TCP-, ICMP- и других типов проверок. Вид проверок определяется на основании того, исследует ли Nmap внутреннюю (локальную) или внешнюю подсеть. За обнаружением узлов следует процесс исследования каждого из активных узлов.
Типичный процесс обнаружения узлов при помощи Nmap
Внутренние подсети
Для исследования устройств во внутренней сети, Nmap использует ARP-запрос к устройству в сети. Устройство отправляет ARP-ответ, обнаруживая свое присутствие. Поскольку эти действия происходят на канальном уровне (OSI Layer 2), ARP-запросы ограничены внутренней подсетью.
Внешние подсети
Для исследования внешних подсетей, Nmap отправляет эхо-пакет ICMP и TCP ACK-сегмент устройству в сети. Устройство должно отправить в ответ соответственно ответ ICMP и TCP RST-сегмент, указывая на на свое присутствие.
Отключение обнаружения узлов
Давайте представим часто встречающийся случай, при котором все узлы в сети защищены межсетевыми экранами и стандартное пинг-исследование указывает на отсутствие активных узлов в сети. Как действовать в таком случае?
У Nmap существует замечательный параметр -PN, который заставляет Nmap не проводить пинг-исследование, а предположить, что все устройства в диапазоне адресов обнаружены и активны.
Последствия отключения обнаружения узлов даже для подсети класса C, состоящей из 254 IP-адресов, состоят в том, что будут проверены все 254 адреса, включая несуществующие узлы, что значительно увеличит протяженность процесса во времени. Учитесь использовать этот параметр с максимальной осторожностью. Например, при вводе nmap -v -PN 192.168.100.0/24, будут исследованы узлы с адресами от 192.168.100.1 до 192.168.100.254. (Параметр -v повышает информативность выводимых сообщений).
TCP-исследование при помощи соединения
Как обсуждалось ранее, любой тип исследования, требующий изменения процесса трехэтапного рукопожатия TCP, требует административных привилегий. Поскольку используемое по умолчанию TCP SYN-исследование, требует административных привилегий, для непривилегированных пользователей используется исследование при помощи TCP-соединения.
Процесс исследования начинается с того, что Nmap инициирует рукопожатие TCP, отправляя SYN-сегмент на порт исследуемого устройства. Ответ исследуемого устройства аналогичен ответу при TCP SYN-исследовании, он зависит от состояния порта (см. таблицу).
Ответы клиента при исследовании посредством TCP-соединения
Состояние порта | Ответ клиента | Заключение |
Открыт | Стандартный ответ: SYN ACK | Служба работает на указанном порту, порт открыт |
Закрыт | Стандартный ответ: RST | Служба не работает на указанном порту, порт закрыт |
Фильтруется | Нет ответа | Порт защищен межсетевым экраном |
В случае открытого порта, Nmap отправляет сегмент ACK для завершения рукопожатия TCP, открывая тем самым соединение. Затем Nmap отправляет сегмент RST для закрытия соединения. Таким образом, исследование производится без изменения процедуры рукопожатия TCP. Заметили ли вы обратную сторону такого типа исследования? Поскольку рукопожатие TCP производится в полном объеме, в журнале событий исследуемого устройства остается запись об этом.
Аналогично TCP SYN-исследованию, данный тип работает на всех операционных системах и устройствах
с поддержкой протокола TCP, таких как PLC, сетевые принтеры, сетевые маршрутизаторы, мобильные
телефоны, и.т.д. Пример командной строки:
nmap -sT 192.168.100.100.
Недостатком данного типа исследования является то, что он использует больше ресурсов, чем TCP SYN-исследование, так как проводится полная процедура открытия TCP-соединения с его последующим сбросом. Также при использовании данного типа остаются записи в журнале событий исследуемого устройства.
Определение версий системных служб
Изучая Nmap, вы будете все больше и больше удивляться возможностям данной программы. Nmap использует простые TCP-, UDP- и ICMP-исследования различными способами: для определения различных устройств, операционных систем, слижб, работающих на различных портах и даже версий этих служб.
Для получения версий служб, выполняющихся на открытых портах исследуемого устройства, используется
параметр -sV. Простая команда
nmap -v -sV 192.168.100.100
позволяет вывести список открытых портов исследуемого устройства вместе с версиями всех системных служб, работающих на этих портах.
Определение операционной системы
Nmap может определить операционную систему, под управлением которой работает устройство. Если,
например, использовать команду
nmap -v -O 192.168.100.100,
становится возможной идентификация ряда операционных систем, таких как различные версии Microsoft Windows, Linux (включая версию ядра), и.т.д.
Если параметры службы или операционной системы невозможно определить, Nmap выводит идентификатор и просит пользователя отправить его вместе с описанием службы или операционной системы разработчикам на www.insecure.org для включения идентификатора в новые версии Nmap.
Испробуйте данные типы исследования устройств и сетей в работе самостоятельно перед тем, как перейти к рассмотрению других функций программы Nmap. Следите за новыми статьями из данной серии! Продолжение здесь!