Изучите методы указания целей в Nmap

CybersecurityCybersecurityBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете о Nmap, мощном инструменте для сканирования сетей, широко используемом профессионалами в области безопасности. Практическое занятие (лабораторная работа) в частности сосредоточено на техниках указания целей в Nmap, которые являются важными для определения хостов и сетей, подлежащих сканированию.

Понимание этих техник является обязательным для эффективного проведения сетевого разведки и оценки безопасности. К концу этого практического занятия (лабораторной работы) вы сможете использовать различные методы для указания целей в Nmap и эффективно интерпретировать результаты сканирования.

Установка и знакомство с Nmap

На этом этапе мы убедимся, что Nmap правильно установлен на вашей системе и начнем изучать его базовые функции. Nmap (сокращение от Network Mapper) - это открытый инструмент. Он широко используется для обнаружения сетевых устройств и аудита безопасности. С помощью Nmap вы можете определить, какие устройства подключены к сети и какие сервисы они предоставляют. Это крайне важно в области кибербезопасности, так как помогает понять структуру сети и выявить потенциальные риски безопасности.

Сначала нам нужно проверить, установлен ли Nmap на вашей системе. Для этого мы воспользуемся терминалом. Терминал - это текстовый интерфейс, в котором вы можете вводить команды для взаимодействия с компьютером. Откройте терминал и выполните следующую команду:

nmap --version

Эта команда просит систему показать версию установленного Nmap. Если Nmap установлен правильно, вы увидите вывод, похожий на следующий, который включает версию Nmap и информацию о сборке:

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1d nmap-libssh2-1.8.2 libz-1.2.11 libpcre-8.39 libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select

Далее мы хотим понять, как указывать цели для сканирования в Nmap. Указание целей важно, так как оно сообщает Nmap, какие устройства или сети вы хотите сканировать. Чтобы узнать об этом, мы посмотрим на базовую документацию Nmap. Выполните следующую команду в терминале:

nmap -h | grep -A 10 "TARGET SPECIFICATION"

Эта команда сначала использует nmap -h для получения справочного текста Nmap. Затем она передает вывод в grep -A 10 "TARGET SPECIFICATION", который ищет раздел "TARGET SPECIFICATION" в справочном тексте и показывает следующие 10 строк. Вы увидите объяснение различных способов указания целей для сканирования в Nmap.

Теперь нам нужно место для хранения результатов сканирования Nmap. Мы создадим для этого каталог. Каталог - это, по сути, папка на вашем компьютере, в которой вы можете организовать файлы. Выполните следующие команды в терминале:

mkdir -p /home/labex/project/nmap_scans
cd /home/labex/project/nmap_scans

Команда mkdir -p создает каталог с именем nmap_scans по пути /home/labex/project. Опция -p гарантирует, что если какие - то промежуточные каталоги не существуют, они также будут созданы. Затем команда cd изменяет текущий рабочий каталог на только что созданный каталог nmap_scans.

Давайте посмотрим, как работает Nmap, выполнив простое сканирование на вашем локальном компьютере. Локальный компьютер - это компьютер, который вы сейчас используете. Выполните следующую команду:

nmap localhost > local_scan.txt

Эта команда сканирует ваш локальный компьютер с помощью Nmap. Символ > перенаправляет вывод сканирования в файл с именем local_scan.txt. Таким образом, мы можем сохранить результаты сканирования для дальнейшего анализа.

Наконец, давайте посмотрим на результаты сканирования. Выполните следующую команду:

cat local_scan.txt

Команда cat отображает содержимое файла local_scan.txt. Вы увидите список портов, которые Nmap сканировал на вашем локальном компьютере. Вместе с номерами портов вы найдете информацию о том, какие порты открыты и какие сервисы могут работать на открытых портах. Эта информация поможет вам понять состояние безопасности вашего локального компьютера.

Настройка сервиса и сканирование определенных портов

На этом этапе мы узнаем, как запустить локальный веб - сервер и затем использовать мощный инструмент под названием Nmap для его поиска путем сканирования определенных портов. Понимание этого процесса крайне важно, так как оно показывает, как можно использовать Nmap для идентификации сервисов, которые в настоящее время работают в сети или на компьютере.

Сначала нам нужно перейти в наш проектный каталог. Именно здесь мы настроим наш простой веб - сервер. Как только мы окажемся в нужном месте, мы запустим Python HTTP - сервер, который будет прослушивать порт 8000. Порт 8000 - это распространенный порт, используемый для тестирования веб - серверов. Вот команда для этого:

cd /home/labex/project/nmap_scans
python3 -m http.server 8000 &

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

Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

Теперь, когда наш сервер запущен, мы хотим убедиться, что он действительно прослушивает порт 8000. Мы можем использовать команду lsof, что означает "list open files" (список открытых файлов). Эта команда помогает нам проверить, какие процессы в настоящее время используют определенный порт. Вот как мы используем ее:

lsof -i :8000

Если сервер работает правильно, вы должны увидеть вывод, похожий на следующий:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python3 12345 labex   4u  IPv4 123456      0t0  TCP *:8000 (LISTEN)

Этот вывод сообщает нам, что Python прослушивает порт 8000, что означает, что наш сервер работает как ожидалось.

Далее мы используем Nmap для сканирования порта 8000 на локальном компьютере. Цель - обнаружить наш HTTP - сервер. Вот команда:

nmap -p 8000 localhost > http_server_scan.txt

В этой команде флаг -p используется для указания порта, который мы хотим сканировать. В нашем случае мы сканируем порт 8000 на локальном компьютере (localhost), то есть на нашем собственном компьютере. Символ > перенаправляет вывод сканирования Nmap в файл с именем http_server_scan.txt. Таким образом, мы можем легко просмотреть результаты позже.

Давайте проверим результаты сканирования:

cat http_server_scan.txt

Если сканирование прошло успешно, вы должны увидеть вывод, похожий на следующий:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-25 12:34 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).

PORT     STATE SERVICE
8000/tcp open  http-alt

Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds

Этот вывод показывает, что порт 8000 открыт и работает HTTP - сервис, что означает, что Nmap смог обнаружить наш сервер.

Наконец, давайте попробуем сканировать диапазон портов, чтобы узнать, есть ли другие сервисы, работающие на нашем локальном компьютере. Вот команда:

nmap -p 1-1000 localhost > port_range_scan.txt

Эта команда сообщает Nmap сканировать все порты от 1 до 1000 на локальном компьютере. Опять же, мы перенаправляем вывод в файл с именем port_range_scan.txt.

Давайте рассмотрим результаты:

cat port_range_scan.txt

Вывод покажет, какие порты в диапазоне от 1 до 1000 открыты на вашем локальном компьютере. Это полезный способ обнаружить сервисы, о которых вы, возможно, не знали, что они работают.

Продвинутое указание целей

На этом этапе мы углубимся в более продвинутые методы указания целей для Nmap. Nmap - это мощный инструмент для сетевого разведки, и он предоставляет различные способы указания нескольких целей в одной команде. Это чрезвычайно полезно, когда вам нужно сканировать несколько хостов или сетей одновременно, экономя при этом время и усилия.

Начнем с создания текстового файла, содержащего несколько IP-адресов, которые мы хотим сканировать. Мы добавим локальный хост (127.0.0.1) и несколько других локальных IP-адресов. Локальный хост - это специальный IP-адрес, который ссылается на текущее устройство. Включив его, мы можем протестировать процесс сканирования на собственном компьютере.

cd /home/labex/project/nmap_scans
echo "127.0.0.1" > targets.txt
echo "127.0.0.2" >> targets.txt
echo "127.0.0.3" >> targets.txt

В приведенном выше коде команда cd изменяет текущую рабочую директорию на /home/labex/project/nmap_scans. Команда echo используется для вывода текста. Оператор > создает новый файл и записывает в него текст, в то время как оператор >> добавляет текст в существующий файл. Таким образом, мы сначала создаем файл с именем targets.txt и записываем в него 127.0.0.1. Затем мы добавляем 127.0.0.2 и 127.0.0.3 в тот же файл.

Теперь давайте посмотрим на файл, который мы только что создали, чтобы убедиться, что IP-адреса были правильно добавлены.

cat targets.txt

Команда cat используется для отображения содержимого файла. После выполнения этой команды вы должны увидеть следующий вывод:

127.0.0.1
127.0.0.2
127.0.0.3

Далее мы будем использовать флаг -iL в Nmap для одновременного сканирования всех IP-адресов, перечисленных в файле targets.txt. Флаг -iL сообщает Nmap прочитать цели из файла.

nmap -iL targets.txt > multiple_targets_scan.txt

Здесь команда nmap используется для выполнения сетевого сканирования. Флаг -iL указывает файл, содержащий цели. Оператор > перенаправляет вывод сканирования в файл с именем multiple_targets_scan.txt.

Давайте проверим результаты сканирования:

cat multiple_targets_scan.txt

После выполнения этой команды вы должны увидеть результаты сканирования для всех трех IP-адресов. Обратите внимание, что 127.0.0.1 обычно будет показывать открытые порты, так как это локальный хост, и на нем могут быть запущены некоторые сервисы. Однако 127.0.0.2 и 127.0.0.3 могут не отвечать, так как они обычно не настроены на большинстве систем.

Другой способ указания нескольких целей - это использование пробельной нотации или CIDR-нотации непосредственно в команде Nmap.

nmap 127.0.0.1 127.0.0.2 > space_notation_scan.txt

В этой команде мы используем пробелы для разделения IP-адресов. Это сообщает Nmap сканировать как 127.0.0.1, так и 127.0.0.2. Вывод сканирования перенаправляется в файл с именем space_notation_scan.txt.

Давайте проверим результаты:

cat space_notation_scan.txt

Мы также можем использовать CIDR-нотацию для сканирования диапазона IP-адресов. CIDR (Classless Inter-Domain Routing, Классное межсетевое маршрутизирование) - это способ представления диапазона IP-адресов в компактной форме.

nmap 127.0.0.0/30 > cidr_notation_scan.txt

Запись 127.0.0.0/30 в CIDR-нотации представляет диапазон IP-адресов от 127.0.0.0 до 127.0.0.3, то есть всего 4 адреса. Вывод этого сканирования перенаправляется в файл с именем cidr_notation_scan.txt.

Давайте проверим результаты:

cat cidr_notation_scan.txt

Наконец, давайте рассмотрим, как исключить определенные цели из сканирования. Это полезно, когда вы хотите сканировать сеть, но не хотите включать в сканирование определенные хосты.

nmap 127.0.0.0/30 --exclude 127.0.0.3 > exclude_scan.txt

В этой команде мы используем флаг --exclude, чтобы сообщить Nmap пропустить IP-адрес 127.0.0.3 при сканировании диапазона 127.0.0.0/30. Вывод сканирования перенаправляется в файл с именем exclude_scan.txt.

Давайте проверим результаты:

cat exclude_scan.txt

Вы должны увидеть результаты сканирования для 127.0.0.0, 127.0.0.1 и 127.0.0.2, но не для 127.0.0.3.

Эти продвинутые методы указания целей позволяют вам точно контролировать, какие хосты сканирует Nmap, делая вашу сетевую разведку более эффективной и нацеленной.

Резюме

В этом практическом занятии вы узнали, как использовать Nmap для сетевой разведки, сосредоточившись на методах указания целей. Сначала вы установили Nmap и изучили его базовые функции, выполнив простые сканирования на своем локальном компьютере. Затем вы настроили локальный HTTP - сервер и использовали Nmap для его поиска путем сканирования определенных портов.

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