Введение
В этой лабораторной работе вы узнаете, как использовать Nmap — мощный инструмент для сканирования сетей — на различных уровнях подробности (verbosity). Nmap является стандартным выбором для специалистов по безопасности при обнаружении хостов и служб в компьютерных сетях. Освоение параметров подробности Nmap позволяет контролировать объем выводимой во время сканирования информации, что критически важно для эффективного анализа сети и устранения неполадок.
В ходе работы вы настроите локальный сервер для практики сканирования. Вы также изучите, как различные уровни подробности влияют на результаты сканирования и представляемую информацию.
Настройка окружения для сетевого сканирования
На этом этапе мы настроим локальный веб-сервер на вашей машине. Этот сервер будет служить нашей целью для сканирования с помощью 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 127.0.0.1 8080 &
Давайте разберем, что делает эта команда:
python -m http.server: эта часть запускает встроенный модуль HTTP-сервера Python. Она указывает Python запустить функционал HTTP-сервера.--bind 127.0.0.1: заставляет сервер прослушивать адрес обратной связи (loopback) IPv4, который Nmap сканирует дляlocalhostв данной среде.8080: указывает, что сервер должен прослушивать порт 8080. Это означает, что любые входящие HTTP-запросы на этот порт будут обрабатываться нашим сервером.&: добавление амперсанда в конце команды запускает сервер в фоновом режиме. Это удобно, так как позволяет продолжать использовать терминал для ввода других команд во время работы сервера.
После выполнения команды вы должны увидеть вывод, похожий на следующий:
Serving HTTP on 127.0.0.1 port 8080 (http://127.0.0.1:8080/) ...
Этот вывод указывает на то, что ваш HTTP-сервер запущен и готов принимать соединения на порту 8080. Имея запущенный сервер, мы получаем цель, которую можем просканировать с помощью Nmap на следующих этапах.
Проверка работоспособности HTTP-сервера
Важно убедиться, что ваш сервер действительно работает корректно. Для этого мы можем использовать следующую команду:
ss -tulwn | grep 8080
Команда ss используется для отображения статистики сокетов. Опции -tulwn указывают ss выводить информацию о TCP, UDP, прослушиваемых и числовых сокетах. Знак | — это канал (pipe), который передает вывод команды ss команде grep. Затем команда grep ищет строку 8080 в полученном выводе. Если сервер запущен, эта команда должна показать вывод, указывающий на то, что кто-то прослушивает порт 8080, что подтверждает активность вашего HTTP-сервера и его готовность к сканированию Nmap.
Знакомство с основами Nmap и уровнем подробности по умолчанию
На этом этапе, когда наш целевой сервер запущен, самое время начать знакомство с Nmap и его уровнями подробности. Nmap (Network Mapper) — это мощный сканер безопасности. Его основная цель — помочь вам обнаружить хосты и службы в компьютерной сети. Это крайне важно в кибербезопасности, так как позволяет понять структуру сети и выявить потенциальные риски безопасности.
Что такое подробность (verbosity) в Nmap?
В Nmap уровень подробности определяет, сколько информации отображается во время сканирования. В зависимости от того, насколько детальными должны быть результаты, вы можете выбрать разные уровни подробности. Вот разбивка стандартных уровней:
- Уровень 0 (Level 0): это уровень по умолчанию. Он выдает стандартный вывод, содержащий базовую информацию о сканировании.
- Уровень 1 (Level 1): используя опцию
-v, вы получаете больше деталей в выводе сканирования. - Уровень 2 (Level 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. - Статус хоста: указывает, что хост активен (up) и отвечает, с очень низкой задержкой (latency) в
0.000097секунды. - Состояние порта: сообщает, что порт 8080 находится в состоянии
open(открыт), что означает наличие службы, прослушивающей этот порт. - Работающая служба: предполагает, что на порту 8080, вероятнее всего, работает служба
http-proxy. - Статистика завершения: последняя строка содержит информацию о том, сколько времени заняло сканирование — в данном случае
0.05секунды.
Уровень по умолчанию предоставляет необходимую информацию, но в нем отсутствуют детальные сведения. На следующих этапах мы рассмотрим, как более высокие уровни подробности могут предоставить более глубокую информацию о сканировании.
Повышение подробности с помощью опции -v
В мире сетевого сканирования получение детальной информации имеет решающее значение. На этом этапе мы узнаем, как получить более глубокие данные от Nmap, увеличив уровень подробности. Подробность в 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 вывод предоставляет множество дополнительных деталей. Вот что вы можете увидеть:
- Процесс сканирования разбит на этапы. Например, выполняются Ping Scan (ping-сканирование) и Connect Scan (сканирование с установлением соединения). Ping-сканирование используется для проверки доступности хоста, в то время как Connect-сканирование пытается установить соединение с определенным портом.
- Предоставляется информация о времени выполнения (timing) для каждого этапа. Это помогает понять, сколько времени заняла каждая часть сканирования.
- Вы можете увидеть точный момент обнаружения открытого порта. Это важно, так как дает четкую хронологию сканирования.
- Также показаны файлы данных, которые 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. Мы начнем с использования еще более высокого уровня подробности, который предоставит нам более детальную информацию в процессе сканирования. Затем мы рассмотрим практическое применение различных настроек подробности, чтобы вы знали, когда какой уровень использовать в реальных сценариях.
Запуск сканирования с максимальной подробностью
Давайте выполним сканирование с уровнем подробности 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
При просмотре вывода вы заметите, что он содержит еще больше технических деталей о процессе сканирования. Эти детали включают:
- Более глубокую информацию о времени выполнения: помогает понять, сколько времени заняли различные части сканирования.
- Дополнительную отладочную информацию: может пригодиться, если во время сканирования что-то пойдет не так.
- Более подробную информацию о протоколах: дает лучшее понимание сетевых протоколов, задействованных при сканировании.
Практическое применение различных уровней подробности
Различные уровни подробности полезны в различных сценариях. Давайте рассмотрим каждый уровень и его практическое применение:
Уровень по умолчанию (0):
- Уровень подробности по умолчанию лучше всего подходит для быстрых сканирований. Когда вам нужна лишь базовая информация о цели (например, открыт или закрыт определенный порт), этого уровня вполне достаточно.
- Он также полезен для рутинных проверок и простого картирования сети. Например, если вы хотите быстро проверить базовый статус портов сервера, вы можете использовать уровень по умолчанию.
- Пример сценария использования: проверка того, открыты ли определенные порты на сервере. Вы получаете быстрый обзор, не погружаясь в излишние детали.
Уровень подробности 1 (-v):
- Этот уровень полезен для более детального анализа. Он предоставляет больше информации, чем уровень по умолчанию, что помогает лучше понять хронологию сканирования.
- Если вы устраняете проблемы с подключением, дополнительная информация на этом уровне может оказаться очень полезной. Вы можете увидеть, какие части сканирования занимают больше времени или возникают ли какие-либо ошибки.
- Пример сценария использования: устранение проблем с сетевым подключением. Вы можете использовать дополнительные сведения, чтобы выяснить причину проблемы.
Более высокие уровни подробности (-vv, -vvv):
- Эти уровни идеальны для глубокого анализа и отладки. Они предоставляют максимальный объем информации, что очень полезно при аудитах безопасности.
- Когда вы проводите детальную оценку безопасности или вам нужно точно понять, как сканирование взаимодействует с целью, следует использовать более высокие уровни подробности.
- Пример сценария использования: детальная оценка безопасности или необходимость точного понимания взаимодействия сканера с целевой системой. Вы получаете исчерпывающее представление о процессе сканирования.
Сочетание подробности с другими опциями Nmap
Опции подробности можно комбинировать с другими параметрами Nmap для выполнения более мощных сканирований. Давайте попробуем более продвинутое сканирование с помощью следующей команды:
nmap -p 8080 -sV localhost -v > /home/labex/project/advanced-scan.txt
Давайте разберем эту команду:
-p 8080указывает, что мы хотим просканировать порт 8080.-sVвключает определение версий (version detection). Эта опция пытается определить версию службы, работающей на сканируемом порту.-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"
Эта команда завершает процесс HTTP-сервера Python, запущенный на порту 8080. Важно правильно очистить систему, чтобы избежать возможных конфликтов или проблем с использованием ресурсов в будущем.
Резюме
В этой лабораторной работе вы научились эффективно использовать уровни подробности Nmap для контроля информации, отображаемой при сетевом сканировании. Начав с настройки базового локального HTTP-сервера, вы исследовали то, как различные уровни подробности влияют на результаты сканирования Nmap.
Вы выяснили, что уровень подробности по умолчанию (0) дает основные сведения об открытых портах и службах. Использование опции -v увеличивает подробность, предоставляя больше информации о процессе сканирования. Более высокие уровни, такие как -vv и -vvv, выдают детальные технические данные для глубокого анализа. Параметры подробности также можно комбинировать с другими методами Nmap для более мощного сетевого анализа. Эти навыки крайне важны для сетевых администраторов и специалистов по безопасности, так как они позволяют эффективно собирать сетевые данные и адаптировать сканирование под конкретные задачи.



