Введение
В области кибербезопасности понимание инфраструктуры вашей сети имеет решающее значение для поддержания безопасности. Nmap (Network Mapper) — широко используемый инструмент с открытым исходным кодом, который позволяет специалистам по безопасности обнаруживать хосты и сервисы в компьютерных сетях. Этот учебник проведет вас через процесс использования Nmap для одновременного сканирования нескольких IP-адресов, что позволит вам эффективно отображать вашу сеть и выявлять потенциальные проблемы безопасности.
К концу этой лабораторной работы вы поймете, как установить Nmap, выполнять базовые сканирования, нацеливаться на несколько IP-адресов, используя различные методы, и интерпретировать результаты. Эти навыки являются фундаментальной частью сетевой разведки в оценках кибербезопасности и ценны как для оборонительных, так и для наступательных операций безопасности.
Установка Nmap и выполнение первого сканирования
На этом первом шаге мы установим Nmap в нашей системе Ubuntu и выполним базовое сканирование, чтобы убедиться, что он работает правильно.
Установка Nmap
Nmap доступен в репозиториях Ubuntu, что упрощает его установку. Откройте терминал и выполните следующие команды:
## Update the package lists
sudo apt update
## Install Nmap
sudo apt install nmap -y
Эта команда загрузит и установит Nmap вместе со всеми необходимыми зависимостями. Давайте убедимся, что установка прошла успешно, проверив версию Nmap:
nmap --version
Вы должны увидеть вывод, похожий на этот:
Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1f libssh2-1.8.0 libz-1.2.11 libpcre-8.39
Compiled without: nmap-update npcap ipv6
Available nsock engines: epoll poll select
Понимание базового синтаксиса Nmap
Базовый синтаксис для Nmap:
nmap [scan type] [options] [target]
Где:
[scan type]указывает тип сканирования для выполнения (например, TCP SYN scan)[options]— дополнительные параметры для настройки сканирования[target]— хост или сеть для сканирования
Ваше первое сканирование: сканирование локальной машины
Давайте начнем с простого сканирования вашей локальной машины. Это безопасный способ протестировать Nmap без сканирования внешних сетей:
nmap localhost
Эта команда сканирует наиболее распространенные 1000 TCP-портов на вашей локальной машине. Вы должны увидеть вывод, похожий на этот:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
Вывод показывает:
- Время начала сканирования
- Цель сканирования
- Состояние хоста (в сети или нет)
- Открытые порты с именами их сервисов
- Статистика сканирования
Обратите внимание, что точные открытые порты, которые вы видите, могут отличаться в зависимости от конфигурации вашей системы.
Понимание состояний портов
Nmap классифицирует порты по разным состояниям:
open(открыт): Приложение активно принимает соединения на этом портуclosed(закрыт): Порт доступен, но ни одно приложение не прослушивает егоfiltered(отфильтрован): Nmap не может определить, открыт ли порт, потому что брандмауэр блокирует доступunfiltered(неотфильтрован): Порт доступен, но Nmap не может определить, открыт он или закрытopen|filtered(открыт|отфильтрован): Nmap не может определить, открыт или отфильтрован портclosed|filtered(закрыт|отфильтрован): Nmap не может определить, закрыт или отфильтрован порт
В результатах вашего сканирования большинство портов, вероятно, будут указаны как «closed» (закрыты), а несколько портов — как «open» (открыты) для служб, работающих в вашей системе.
Сканирование нескольких IP-адресов с использованием различных методов
Теперь, когда мы установили Nmap и выполнили первое сканирование, давайте рассмотрим различные способы одновременного сканирования нескольких IP-адресов. Это особенно полезно для сетевых администраторов и специалистов по безопасности, которым необходимо эффективно оценивать несколько систем.
Метод 1: Использование диапазонов IP-адресов
Один из самых простых способов сканирования нескольких IP-адресов — указать диапазон IP-адресов. Давайте создадим небольшую виртуальную сеть для безопасного сканирования.
Сначала давайте посмотрим наши текущие сетевые интерфейсы:
ip addr show
Теперь мы отсканируем диапазон IP-адресов в нашей локальной сети. Для демонстрационных целей мы будем использовать небольшой диапазон:
nmap 127.0.0.1-5
Эта команда сканирует 5 IP-адресов: 127.0.0.1, 127.0.0.2, 127.0.0.3, 127.0.0.4 и 127.0.0.5. Вы увидите вывод для каждого хоста, который отвечает на сканирование. Обычно отвечает только 127.0.0.1 (localhost).
Метод 2: Использование CIDR-нотации
Еще один распространенный метод указания нескольких целей — использование CIDR (Classless Inter-Domain Routing) нотации, которая представляет собой краткий способ указания диапазонов IP-адресов.
Давайте отсканируем диапазон обратной петли:
nmap 127.0.0.0/24
Эта команда сканирует 256 IP-адресов от 127.0.0.0 до 127.0.0.255. /24 указывает, что первые 24 бита IP-адреса фиксированы, а последние 8 бит варьируются.
Чтобы сделать сканирование быстрее и сосредоточиться только на поиске активных хостов без сканирования портов, мы можем использовать опцию -sn:
nmap -sn 127.0.0.0/24
Это выполняет ping-сканирование, которое только определяет, находятся ли хосты в сети, без сканирования их портов. Вы должны увидеть вывод, подобный этому:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 2.66 seconds
Метод 3: Использование списка IP-адресов
Для конкретных непоследовательных IP-адресов вы можете создать файл, содержащий цели, и использовать опцию -iL.
Давайте создадим файл с несколькими IP-адресами:
echo "127.0.0.1
127.0.0.2
127.0.0.5" > targets.txt
Теперь отсканируйте эти конкретные цели:
nmap -iL targets.txt
Эта команда считывает IP-адреса из файла targets.txt и сканирует каждый из них.
Метод 4: Комбинирование нескольких спецификаций целей
Nmap позволяет комбинировать различные методы нацеливания в одной команде. Например:
nmap 127.0.0.1 127.0.0.5-10 127.0.0.0/29
Эта команда сканирует:
- Отдельный IP-адрес 127.0.0.1
- Диапазон IP-адресов от 127.0.0.5 до 127.0.0.10
- Диапазон CIDR 127.0.0.0/29 (который включает 127.0.0.0 до 127.0.0.7)
Оптимизация скорости сканирования
При сканировании нескольких целей время сканирования может значительно увеличиться. Nmap предоставляет опции для управления временем сканирования и повышения эффективности:
nmap -T4 127.0.0.0/24
Опция -T4 устанавливает «агрессивный» шаблон времени, который ускоряет сканирование. Шаблоны времени варьируются от 0 (параноидальный) до 5 (безумный), при этом более высокие значения приводят к более быстрому, но потенциально менее надежному сканированию. Для рутинных сканирований -T4 предлагает хороший баланс между скоростью и надежностью.
Понимание вывода Nmap и сохранение результатов
При проведении сетевых сканирований важно понимать, как интерпретировать результаты и сохранять их для дальнейшего анализа или отчетности. На этом шаге мы рассмотрим различные форматы вывода Nmap и способы сохранения результатов сканирования.
Понимание подробного вывода Nmap
Давайте выполним более подробное сканирование localhost, чтобы лучше понять вывод Nmap:
nmap -v localhost
Опция -v включает подробный вывод, предоставляя больше информации о сканировании. Вы должны увидеть вывод, подобный этому:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:30 UTC
Initiating Ping Scan at 10:30
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 10:30, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 10:30
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Discovered open port 443/tcp on 127.0.0.1
Completed Connect Scan at 10:30, 0.02s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
Этот вывод предоставляет:
- Ход сканирования
- Каждый открытый порт, обнаруженный в режиме реального времени
- Окончательный отчет о сканировании с открытыми портами и сервисами
- Статистику времени
Сохранение результатов сканирования в файлы
Nmap может сохранять результаты в нескольких форматах, что полезно для документирования, дальнейшего анализа или обмена с членами команды.
Нормальный формат вывода
Чтобы сохранить результаты сканирования в стандартном формате вывода Nmap:
nmap localhost -oN normal_output.txt
Это создает файл с именем normal_output.txt с результатами сканирования в том же формате, что и отображаемый в терминале.
XML формат вывода
XML-вывод полезен для программной обработки результатов сканирования:
nmap localhost -oX xml_output.xml
Это создает XML-файл, который можно анализировать с помощью других инструментов или скриптов.
Grepable формат вывода
Для упрощения анализа с помощью инструментов командной строки, таких как grep:
nmap localhost -oG grep_output.txt
Этот формат особенно полезен для быстрого извлечения конкретной информации с помощью таких инструментов, как grep.
Все форматы одновременно
Чтобы сохранить вывод во всех трех форматах одновременно:
nmap localhost -oA scan_results
Это создает три файла: scan_results.nmap, scan_results.xml и scan_results.gnmap.
Просмотр сохраненных результатов
Давайте рассмотрим один из сохраненных выходных файлов:
cat normal_output.txt
Вы должны увидеть результаты сканирования Nmap, которые ранее были сохранены в этом файле.
Объединение опций вывода со сканированием нескольких IP-адресов
Теперь давайте объединим то, что мы узнали, отсканировав несколько IP-адресов и сохранив результаты:
nmap 127.0.0.1-5 -oN multiple_hosts.txt
Эта команда сканирует 5 IP-адресов и сохраняет результаты в multiple_hosts.txt.
Давайте рассмотрим эти результаты:
cat multiple_hosts.txt
Вы увидите результаты сканирования для всех указанных IP-адресов. Обычно только 127.0.0.1 будет отображаться как «up» (в сети) с открытыми портами в этом примере.
Добавление обнаружения версии сервиса
Чтобы собрать больше информации о сервисах, работающих на открытых портах, мы можем использовать опцию -sV:
nmap -sV localhost -oN service_scan.txt
Это выполняет обнаружение версии сервиса и сохраняет результаты в service_scan.txt.
Давайте посмотрим, какую дополнительную информацию это предоставляет:
cat service_scan.txt
Вывод теперь должен включать информацию о версии для обнаруженных сервисов, что ценно для оценки безопасности, поскольку конкретные версии могут иметь известные уязвимости.
Расширенные параметры сканирования для оценки сети
Теперь, когда мы понимаем основы Nmap и способы сканирования нескольких целей, давайте рассмотрим некоторые расширенные параметры сканирования, которые особенно полезны для оценки кибербезопасности.
Выбор портов и типы сканирования
По умолчанию Nmap сканирует наиболее распространенные 1000 TCP-портов. Однако вы можете настроить, какие порты сканировать.
Сканирование конкретных портов
Для сканирования конкретных портов:
nmap -p 22,80,443 localhost
Эта команда сканирует только порты 22, 80 и 443.
Для сканирования диапазона портов:
nmap -p 20-25 localhost
Это сканирует порты с 20 по 25.
Для сканирования всех 65535 TCP-портов:
nmap -p- localhost
Обратите внимание, что сканирование всех портов занимает значительно больше времени.
Использование различных типов сканирования
Nmap поддерживает различные методы сканирования. По умолчанию используется TCP SYN scan (-sS), но для этого требуются права root. Без прав root Nmap использует TCP connect scan (-sT).
Давайте попробуем TCP connect scan явно:
nmap -sT localhost
Для более скрытного сканирования (требуются права root):
sudo nmap -sS localhost
Для сканирования UDP-портов (что часто упускается из виду, но важно для безопасности):
sudo nmap -sU -p 53,161,162 localhost
Это сканирует UDP-порты 53 (DNS), 161 и 162 (SNMP).
Обнаружение ОС и сканирование версий
Для получения более полной информации давайте объединим обнаружение ОС и сканирование версий сервисов:
sudo nmap -sS -O -sV localhost
Опция -O пытается идентифицировать операционную систему (ОС) цели. Это предоставляет ценную информацию для оценки безопасности, поскольку разные операционные системы могут иметь разные уязвимости.
Давайте разберем, что делает каждая опция:
-sS: Выполняет SYN scan (требуются права root)-O: Пытается идентифицировать операционную систему цели-sV: Зондирует открытые порты для определения информации о сервисе/версии
Вывод будет включать подробную информацию об операционной системе и версиях сервисов, работающих на цели.
Использование скриптов Nmap
Nmap включает в себя мощный Nmap Scripting Engine (NSE), который может выполнять широкий спектр задач, от расширенного обнаружения сервисов до сканирования уязвимостей.
Давайте запустим базовый скрипт, который проверяет наличие общедоступных сервисов:
nmap --script=default localhost
Для более ориентированного на безопасность сканирования:
nmap --script=vuln localhost
Это запускает скрипты обнаружения уязвимостей против цели, которые могут выявить распространенные проблемы безопасности.
Параметры времени и производительности
При сканировании нескольких целей оптимизация производительности сканирования становится решающей. Мы уже видели опцию -T, но доступны более детальные элементы управления.
nmap -T4 --max-rtt-timeout 200ms --min-rate 1000 127.0.0.1/24
Эта команда:
- Использует «агрессивный» шаблон времени (
-T4) - Устанавливает максимальное время ожидания round-trip (RTT) в 200 мс
- Устанавливает минимальную скорость 1000 пакетов в секунду
Эти настройки могут значительно ускорить сканирование нескольких хостов, хотя они могут быть менее надежными в перегруженных или высоколатентных сетях.
Объединение всего для комплексного сканирования
Давайте объединим несколько методов для комплексного сканирования нашей локальной сети:
sudo nmap -sS -sV -O -p 1-1000 --script=default -T4 -oA comprehensive_scan 127.0.0.1
Эта команда выполняет:
- SYN scan
- Обнаружение версии сервиса
- Обнаружение ОС
- Сканирует порты 1-1000
- Запускает скрипты по умолчанию
- Использует агрессивное время
- Сохраняет результаты во всех форматах с префиксом "comprehensive_scan"
Давайте рассмотрим результаты:
cat comprehensive_scan.nmap
Это комплексное сканирование предоставляет массу информации о целевой системе, включая открытые порты, работающие сервисы, версии сервисов и потенциальные уязвимости.
Этические соображения и лучшие практики
Прежде чем завершить, важно подчеркнуть, что Nmap следует использовать только в сетях, где у вас есть явное разрешение на сканирование. Несанкционированное сканирование может быть незаконным и может восприниматься как враждебное действие.
Некоторые лучшие практики, которым следует следовать:
- Всегда получайте разрешение перед сканированием любой сети или системы
- Используйте менее агрессивные сканирования, когда это возможно, чтобы минимизировать влияние на сеть
- Помните о возможности ложных срабатываний и ложных отрицательных результатов
- Документируйте свою деятельность по сканированию для справки и подотчетности
- Уважайте конфиденциальность и конфиденциальность обнаруженной информации
Резюме
В этой лабораторной работе вы узнали, как использовать Nmap для эффективного одновременного сканирования нескольких IP-адресов, что является важным навыком для сетевых администраторов и специалистов по кибербезопасности. Мы рассмотрели:
- Установку Nmap и выполнение базовых сканирований для понимания его основных функций
- Различные методы указания нескольких целей, включая диапазоны IP-адресов, CIDR-нотацию и списки целей
- Как интерпретировать и сохранять результаты сканирования в разных форматах для дальнейшего анализа
- Расширенные методы сканирования, которые обеспечивают более глубокое понимание сетевых сервисов и потенциальных уязвимостей
Эти навыки формируют основу для сетевой разведки и оценки безопасности. Эффективно сканируя несколько IP-адресов, вы можете быстро отобразить сеть, идентифицировать работающие сервисы и обнаружить потенциальные уязвимости безопасности.
Чтобы дальше развивать свои навыки работы с Nmap, рассмотрите возможность изучения:
- Более специализированных NSE-скриптов для целевых оценок безопасности
- Интеграции Nmap с другими инструментами безопасности
- Автоматизации сканирований с помощью скриптов для регулярного мониторинга безопасности
- Разработки пользовательских NSE-скриптов для конкретных потребностей сканирования
Помните, что инструменты сетевого сканирования, такие как Nmap, всегда следует использовать ответственно и этично, с надлежащим разрешением на сканирование целевых систем.



