Изучите уровни детализации Nmap для сканирования сети

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

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

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/basic_syntax("Basic Command Syntax") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") subgraph Lab Skills nmap/installation -.-> lab-415939{{"Изучите уровни детализации Nmap для сканирования сети"}} nmap/basic_syntax -.-> lab-415939{{"Изучите уровни детализации Nmap для сканирования сети"}} nmap/save_output -.-> lab-415939{{"Изучите уровни детализации Nmap для сканирования сети"}} nmap/port_scanning -.-> lab-415939{{"Изучите уровни детализации Nmap для сканирования сети"}} nmap/verbosity -.-> lab-415939{{"Изучите уровни детализации Nmap для сканирования сети"}} end

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

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

Понимание HTTP - серверов

Прежде чем создать сервер, давайте разберемся, что такое HTTP - сервер. HTTP расшифровывается как HyperText Transfer Protocol (Протокол передачи гипертекста). Это протокол, который использует ваш веб - браузер для взаимодействия с веб - сайтами. HTTP - сервер представляет собой программное приложение, которое может понимать URL (веб - адреса) и протокол HTTP. Когда вы вводите веб - адрес в браузере, браузер отправляет HTTP - запрос соответствующему HTTP - серверу, который в свою очередь отправляет запрошенную веб - страницу. В рамках нашей лабораторной работы мы создадим простой HTTP - сервер с использованием Python, популярного и легко освояемого языка программирования.

Создание HTTP - сервера

Сначала убедитесь, что вы находитесь в правильной рабочей директории. Рабочая директория - это как папка, в которой будут выполняться ваши команды. В данном случае мы хотим находиться в директории /home/labex/project. Чтобы перейти в эту директорию, используйте следующую команду:

cd /home/labex/project

Теперь, когда мы находимся в нужном месте, мы воспользуемся встроенным модулем HTTP - сервера Python для создания простого веб - сервера. Мы настроим этот сервер на прослушивание порта 8080. Порт - это как дверь на компьютере, через которую может входить или выходить сетевой трафик. Разные службы используют разные порты. Введите следующую команду:

python -m http.server --bind localhost 8080 &

Разберем, что делает эта команда:

  • python -m http.server: Эта часть запускает встроенный модуль HTTP - сервера Python. Она сообщает Python запустить функциональность HTTP - сервера.
  • 8080: Это указывает, что сервер должен прослушивать порт 8080. Это означает, что все входящие HTTP - запросы на этом порте будут обрабатываться нашим сервером.
  • &: Размещение амперсанда в конце команды запускает сервер в фоновом режиме. Это полезно, так как позволяет вам продолжать использовать терминал для других команд, пока сервер работает.

После выполнения команды вы должны увидеть вывод, похожий на следующий:

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

Этот вывод показывает, что ваш HTTP - сервер теперь запущен и готов принимать соединения на порту 8080. Теперь, когда сервер запущен, у нас есть цель, которую мы можем сканировать с помощью Nmap на следующих этапах.

Проверка работы HTTP - сервера

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

ss -tulwn | grep 8080

Команда ss используется для отображения статистики сокетов. Опции -tulwn сообщают ss показать информацию о TCP, UDP, прослушивающих и числовых сокетах. Символ | представляет собой конвейер (pipe), который берет вывод команды ss и передает его команде grep. Команда grep затем ищет строку 8080 в выводе. Если сервер работает, эта команда должна показать вывод, указывающий на то, что на порту 8080 что - то прослушивает, что подтверждает, что ваш HTTP - сервер активен и готов к сканированию с помощью Nmap.

Понимание основ Nmap и уровня подробности по умолчанию

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

Что такое подробность в Nmap?

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

  • Уровень 0: Это уровень по умолчанию. Он предоставляет стандартный вывод, который содержит основную информацию о сканировании.
  • Уровень 1: Используя опцию -v, вы можете получить более подробную информацию в выводе сканирования.
  • Уровень 2: Использование опции -vv даст вам еще более детальную информацию.

Выполнение сканирования с уровнем подробности по умолчанию (уровень 0)

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

nmap -p 8080 localhost > /home/labex/project/verbosity-0.txt

Разберем эту команду:

  • nmap: Это команда для запуска инструмента сканирования Nmap. Она сообщает системе, что нужно использовать Nmap для сканирования сети.
  • -p 8080: Эта опция указывает Nmap сосредоточиться сканирование только на порту 8080. Порты - это как двери на компьютере, и разные службы используют разные порты. Указав порт 8080, мы заинтересованы только в службе, работающей на этом конкретном порту.
  • localhost: Это означает, что мы сканируем локальную машину. Другими словами, мы проверяем службы, работающие на том же компьютере, где выполняется команда Nmap.
  • > /home/labex/project/verbosity-0.txt: Эта часть команды перенаправляет вывод сканирования в файл с именем verbosity-0.txt, расположенный в директории /home/labex/project. Сохранение вывода в файл позволяет нам просмотреть его позже.

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

cat /home/labex/project/verbosity-0.txt

После выполнения этой команды вы должны увидеть вывод, похожий на следующий:

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

PORT     STATE SERVICE
8080/tcp open  http-proxy

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

Понять, что означает этот вывод:

  • Время начала сканирования: Первая строка сообщает нам точное время, когда началось сканирование Nmap. Это полезно для отслеживания времени сбора информации.
  • Цель сканирования: Она показывает, что мы сканировали localhost, который имеет IP - адрес 127.0.0.1.
  • Состояние хоста: Она указывает, что хост активен и отвечает, с очень низкой задержкой в 0.000097 секунды.
  • Состояние порта: Она сообщает, что порт 8080 находится в состоянии open, то есть на этом порту работает служба.
  • Рабочая служба: Она предполагает, что, вероятно, на порту 8080 работает служба http - proxy.
  • Статистика завершения сканирования: Последняя строка дает информацию о том, сколько времени заняло сканирование, в данном случае 0.05 секунды.

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

Увеличение уровня подробности с помощью опции -v

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

Выполнение сканирования с повышенным уровнем подробности

Начнем с выполнения сканирования с повышенным уровнем подробности. Используем следующую команду:

nmap -p 8080 localhost -v > /home/labex/project/verbosity-1.txt

Разберем эту команду:

  • nmap - это команда для запуска инструмента сканирования Nmap. Nmap - это мощный и широко используемый инструмент для исследования сетей и аудита безопасности.
  • -p 8080 сообщает Nmap сканировать только порт 8080. Порты - это как двери в сети, и указав порт, мы сосредотачиваем наше сканирование на конкретной службе, которая может работать на этом порту.
  • localhost указывает, что цель сканирования - локальная машина. Это полезно для тестирования и понимания того, как работает Nmap на вашей собственной системе.
  • -v повышает уровень подробности до 1. Это означает, что Nmap будет показывать больше информации о процессе сканирования.
  • > /home/labex/project/verbosity-1.txt перенаправляет вывод сканирования в файл с именем verbosity-1.txt в директории /home/labex/project. Сохранение вывода в файл позволяет нам просмотреть его позже.

Теперь посмотрим на результаты нашего сканирования:

cat /home/labex/project/verbosity-1.txt

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-10 15:35 UTC
Initiating Ping Scan at 15:35
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 15:35, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 15:35
Scanning localhost (127.0.0.1) [1 port]
Discovered open port 8080/tcp on 127.0.0.1
Completed Connect Scan at 15:35, 0.00s elapsed (1 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).

PORT     STATE SERVICE
8080/tcp open  http-proxy

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

Понимание дополнительной информации

При уровне подробности 1 вывод содержит множество дополнительных деталей. Вот, что вы можете увидеть:

  1. Процесс сканирования разбит на этапы. Например, есть Ping Scan и Connect Scan. Ping Scan используется для проверки доступности хоста, в то время как Connect Scan пытается установить соединение с определенным портом.
  2. Предоставляется информация о времени выполнения каждого этапа. Это помогает понять, сколько времени занял каждый этап сканирования.
  3. Вы можете увидеть точный момент, когда был обнаружен открытый порт. Это важно, так как дает вам четкий временной план сканирования.
  4. Также показываются файлы данных, которые использовал Nmap во время сканирования. Эти файлы содержат информацию о службах, портах и других сетевых данных, которые Nmap использует для выполнения сканирования.

Эта дополнительная информация очень полезна, так как позволяет:

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

Сравнение уровней подробности

Для более наглядного сравнения обычного сканирования и сканирования с повышенным уровнем подробности сравним два выходных файла. Используем следующую команду:

diff /home/labex/project/verbosity-0.txt /home/labex/project/verbosity-1.txt

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

Дополнительные уровни подробности

Nmap не ограничивается уровнем подробности 1. Он поддерживает еще более высокие уровни подробности:

  • -vv устанавливает уровень подробности на 2.
  • -vvv устанавливает уровень подробности на 3.

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

Исследование более высоких уровней подробности и практические применения

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

Выполнение сканирования с максимальным уровнем подробности

Выполним сканирование с уровнем подробности 2. В Nmap можно установить уровень подробности с помощью опции -vv. Уровень подробности 2 предоставит значительное количество детальной информации о сканировании. Вот команда для выполнения сканирования:

nmap -p 8080 localhost -vv > /home/labex/project/verbosity-2.txt

В этой команде -p 8080 сообщает Nmap сканировать порт 8080. localhost - это цель сканирования, которая относится к локальной машине. Опция -vv повышает уровень подробности до 2. Символ > перенаправляет вывод сканирования в файл /home/labex/project/verbosity-2.txt.

Теперь рассмотрим результаты сканирования. Можем использовать команду cat для отображения содержимого файла:

cat /home/labex/project/verbosity-2.txt

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

  • Более глубокую информацию о времени выполнения: это помогает понять, сколько времени заняли разные части сканирования.
  • Дополнительную отладочную информацию: она может быть полезна, если во время сканирования что - то пошло не так.
  • Более детальную информацию о протоколах: это дает лучшее понимание сетевых протоколов, участвующих в сканировании.

Практические применения различных уровней подробности

Разные уровни подробности полезны в разных сценариях. Рассмотрим каждый уровень и его практические применения:

  1. Уровень по умолчанию (0):

    • Уровень подробности по умолчанию идеален для быстрых сканирований. Когда вам нужна только базовая информация о цели, например, открыт или закрыт определенный порт, этот уровень достаточно.
    • Он также полезен для рутинных проверок и простого картирования сети. Например, если вы хотите быстро проверить базовый статус портов сервера, можно использовать уровень по умолчанию.
    • Пример использования - проверка, открыт ли определенные порты на сервере. Вы можете получить быстрый обзор без загрузки лишней детализацией.
  2. Уровень подробности 1 (-v):

    • Этот уровень полезен для более детального анализа. Он предоставляет больше информации, чем уровень по умолчанию, что помогает лучше понять временную шкалу сканирования.
    • Если вы решаете проблемы с подключением, дополнительная информация на этом уровне может быть очень полезной. Вы можете увидеть, какие части сканирования занимают больше времени или есть ли какие - то ошибки.
    • Пример использования - устранение неполадок с подключением. Вы можете использовать дополнительные детали, чтобы понять, что может быть причиной проблемы.
  3. Более высокие уровни подробности (-vv, -vvv):

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

Комбинирование уровня подробности с другими опциями Nmap

Опции уровня подробности можно комбинировать с другими опциями Nmap для выполнения более мощных сканирований. Попробуем более продвинутое сканирование с помощью следующей команды:

nmap -p 8080 -sV localhost -v > /home/labex/project/advanced-scan.txt

Разберем эту команду:

  • -p 8080 указывает, что мы хотим сканировать порт 8080.
  • -sV включает определение версии. Эта опция пытается определить версию службы, работающей на сканируемом порту.
  • -v повышает уровень подробности до 1, так что мы получим более детальную информацию о процессе сканирования.
  • Символ > перенаправляет вывод сканирования в файл /home/labex/project/advanced-scan.txt.

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

cat /home/labex/project/advanced-scan.txt

Вы заметите, что добавление -sV предоставляет информацию о версии службы, работающей на порту 8080. В то же время, опция -v обеспечивает получение детальной информации о процессе сканирования, что упрощает анализ результатов.

Очистка

Перед тем, как завершить этот эксперимент, нам нужно правильно остановить HTTP - сервер, который мы создали ранее. Можем использовать следующую команду для этого:

pkill -f "python -m http.server"

Эта команда завершает процесс Python HTTP - сервера, работающего на порту 8080. Важно правильно провести очистку, чтобы избежать возможных конфликтов или проблем с использованием ресурсов в будущем.

Резюме

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

Вы обнаружили, что уровень подробности по умолчанию (0) предоставляет важные сведения об открытых портах и службах. Использование опции -v повышает уровень подробности, предоставляя больше информации о процессе сканирования. Более высокие уровни, такие как -vv и -vvv, обеспечивают детальную техническую информацию для глубокого анализа. Опции уровня подробности также можно комбинировать с другими методами Nmap для более мощного сетевого анализа. Эти навыки являются важными для сетевых администраторов и профессионалов в области безопасности, позволяя им эффективно собирать сетевые данные и адаптировать сканирования под конкретные задачи.