В этом руководстве описаны все методы Nmap для определения диапазонов IP для сканирования.
Nmap является самым популярным сетевым сканером среди пользователей Linux и сетевых администраторов. Он чрезвычайно мощный и гибкий, позволяющий сканировать порты, диапазоны IP-адресов, целые сети, множество несвязанных целей, уязвимости и многое другое.
Он широко используется как для диагностики сетевых проблем, так и для аудита безопасности. Управление Nmap является обязательным для серверных, сетевых администраторов и любых пользователей, заботящихся о безопасности своей сети.
Сканировать диапазоны IP-адресов с помощью сетевого сканера Nmap (Network Mapper) очень просто благодаря гибкости Nmap. Пользователи могут сканировать отдельные цели, целые подсети, частичные подсети, списки файлов с целями, и даже могут поручить Nmap генерировать случайные цели или обнаруживать возможные цели в сети на основе определенных условий или произвольно.
Все примеры, приведенные в этом документе, включают скриншоты, что позволяет всем читателям легко понять, как применяются команды.
Пример с одной целью
Прежде чем начать с диапазонов IP-адресов и нескольких целей, пользователи, не имеющие опыта работы с Nmap, могут посмотреть, как запускаются атаки на одиночные цели
Первый вводный пример показывает, как сканировать одну цель (scanme.nmap.org). Nmap рассматривает в качестве цели любое содержимое аргумента, не являющееся опцией. Следующий пример не включает опции, он только вызывает nmap и определяет цель по ее доменному имени, которое можно заменить IP-адресом.
1 | nmap scanme.nmap.org |
Или
1 | nmap 45.33.32.156 |
Nmap обнаруживает, что порты ssh, http, nping-echo и Elite открыты, в то время как 996 портов остаются отфильтрованными брандмауэром. По умолчанию Nmap сканирует только 1000 основных общих портов.
Как сканировать диапазоны IP-адресов с помощью Nmap
Сканировать диапазон, принадлежащий сети класса C, очень просто, используя дефис для определения диапазона. Моя домашняя сеть является сетью класса C с IP-адресом 192.168.153.X. Следующий пример показывает, как сканировать определенный диапазон хостов в моей сети класса C, диапазон от 1 до 30:
Пользователи могут определять диапазоны IP, используя дефис между минимальным и максимальным диапазонами (например, nmap 10.0.0.1-50).
В следующем примере пользователь сканирует диапазон сети класса C (/24) между IP-адресами 192.168.153.1 и 192.168.153.200.
Для пользователей, которые не знакомы с классами IP, мы добавили введение в них в конце практических разделов этого документа.
Диапазон IP определяется с помощью дефиса между 1 и 200 в последнем октете, предназначенном для хостов.
1 | nmap 192.168.153.1-200 |
В предыдущем примере пользователь сканирует доступные хосты по адресам от 192.168.153.1 до 192.168.0.200, находя 2 устройства в указанном диапазоне. nmap показывает их открытые порты из наиболее распространенных 1000 портов.
Пользователь может задавать диапазоны IP-адресов во всех октетах, как показано ниже.
Для сканирования диапазона, специфичного для сетей класса B, пользователь может применить тот же метод, добавив дефис в последние 2 октета. В следующем примере будут сканироваться последние два октета сети класса B с IP 192.168.X.X. Для третьего октета сканируется диапазон IP 200-220, а для четвертого октета - диапазон 80-120. Окончание такого сканирования может занять некоторое время.
1 | nmap 192.168.200-220.80-120 |
Для сканирования всей подсети пользователь может использовать формат CIDR, как показано ниже.
1 | nmap 192.168.0.0/24 |
Nmap: Сканирование октетов с помощью подстановочных знаков (Wildcards)
Приведенные выше примеры показывают, как сканировать диапазоны, принадлежащие подсетям классов A и B. Что если вместо определения ограниченного диапазона мы хотим сканировать весь октет?
Пользователь может определить диапазон от 1 до 254, но также может использовать подстановочный знак (*), чтобы указать Nmap проверить все доступные адреса в октете. Следующий пример указывает Nmap просканировать все узлы сети класса C:
В качестве опции, если пользователь сканирует весь диапазон октета, он может задать его с помощью подстановочного знака, как показано на скриншоте ниже.
1 | nmap 192.168.153.* |
Подстановочные знаки можно использовать более чем в одном октете. В приведенном ниже примере сканируется весь диапазон IP-адресов в двух последних октетах.
1 | nmap 192.168.*.*. |
Дефисы и символы подстановки можно комбинировать, как в следующем примере, в котором сканируются все диапазоны последних октетов для IP 192.168.0.*, 192.168.1.* и 192.168.153.*.
1 | nmap 192.168.0-2.* |
Если пользователь пытается обнаружить "живые" узлы, он может реализовать сканирование ping sweep с помощью Nmap, в котором сканирование портов будет опущено. Это позволит быстрее получить результат.
1 | nmap -sP 192.168.153-200.*. |
Сканирование целей из списка целей
Nmap позволяет пользователям сканировать цели, определенные в файле списка. Список может включать диапазоны IP-адресов и полное октетное сканирование.
Как видно из приведенного ниже списка, он включает доменное имя, IP-адрес, IP-диапазон и диапазон в сочетании с подстановочным знаком.
Чтобы импортировать цели из списка, требуемый флаг Nmap -iL, за которым следует имя файла списка.
1 | nmap -iL target.txt |
Аргумент --exclude позволяет исключить цель из списка.
В приведенном ниже практическом примере домен 192.168.153.129, включенный в список целей, опущен.
1 | nmap -iL target.txt --exclude 45.33.32.156 |
Сканирование случайных целей с помощью Nmap
Опция -iR позволяет пользователю дать команду nmap генерировать цели случайным образом. Пользователь может решить, сколько целей будет генерировать Nmap. Для сканирования 50 случайных целей синтаксис следующий:
1 | nmap -iR 50 |
Можете заменить число 50 на количество случайных узлов, которые он хочет, чтобы генерировал Nmap.
Использование дефисов для определения диапазонов портов
Дефисы - важный символ для пользователей Nmap.
Это руководство дает возможность показать, как дефисы могут быть использованы и для определения диапазонов портов.
В приведенном ниже примере дефис добавлен для определения диапазона портов между 20 и 25.
1 | nmap -p 20-25 scanme.nmap.org |
В предыдущем разделе, посвященном диапазонам IP-адресов, было описано, как исключить определенные цели из сканирования.
Аргумент -exclude-ports позволяет исключить порты или диапазон портов, как показано на скриншоте ниже.
1 | nmap -p 79-200 scanme.nmap.org --exclude-ports 100-150 |
Заключение
Nmap чрезвычайно гибок, что позволяет пользователям играть с синтаксисом для пользовательского сканирования. Определение целей с помощью Nmap является частью базовых знаний, которые получают новые пользователи Nmap. Нет необходимости в углубленных знаниях, включив знания о классах IP и CIDR, пользователи смогут полностью понять этот аспект Nmap.
Nmap также доступен для операционных систем Unix, Mac и Windows. Другими хорошими альтернативами Nmap, которые вы можете проверить, являются OpenVAS, Nexpose, Nikto и Superscan, которые работают быстрее Nmap, но имеют гораздо меньше функциональных возможностей.