Введение
В этом лабораторном занятии вы научитесь использовать 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 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 вывод содержит множество дополнительных деталей. Вот, что вы можете увидеть:
- Процесс сканирования разбит на этапы. Например, есть Ping Scan и Connect Scan. Ping Scan используется для проверки доступности хоста, в то время как Connect Scan пытается установить соединение с определенным портом.
- Предоставляется информация о времени выполнения каждого этапа. Это помогает понять, сколько времени занял каждый этап сканирования.
- Вы можете увидеть точный момент, когда был обнаружен открытый порт. Это важно, так как дает вам четкий временной план сканирования.
- Также показываются файлы данных, которые использовал 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
При просмотре вывода вы заметите, что он содержит еще больше технических деталей о процессе сканирования. Эти детали включают:
- Более глубокую информацию о времени выполнения: это помогает понять, сколько времени заняли разные части сканирования.
- Дополнительную отладочную информацию: она может быть полезна, если во время сканирования что - то пошло не так.
- Более детальную информацию о протоколах: это дает лучшее понимание сетевых протоколов, участвующих в сканировании.
Практические применения различных уровней подробности
Разные уровни подробности полезны в разных сценариях. Рассмотрим каждый уровень и его практические применения:
Уровень по умолчанию (0):
- Уровень подробности по умолчанию идеален для быстрых сканирований. Когда вам нужна только базовая информация о цели, например, открыт или закрыт определенный порт, этот уровень достаточно.
- Он также полезен для рутинных проверок и простого картирования сети. Например, если вы хотите быстро проверить базовый статус портов сервера, можно использовать уровень по умолчанию.
- Пример использования - проверка, открыт ли определенные порты на сервере. Вы можете получить быстрый обзор без загрузки лишней детализацией.
Уровень подробности 1 (-v):
- Этот уровень полезен для более детального анализа. Он предоставляет больше информации, чем уровень по умолчанию, что помогает лучше понять временную шкалу сканирования.
- Если вы решаете проблемы с подключением, дополнительная информация на этом уровне может быть очень полезной. Вы можете увидеть, какие части сканирования занимают больше времени или есть ли какие - то ошибки.
- Пример использования - устранение неполадок с подключением. Вы можете использовать дополнительные детали, чтобы понять, что может быть причиной проблемы.
Более высокие уровни подробности (-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 для более мощного сетевого анализа. Эти навыки являются важными для сетевых администраторов и профессионалов в области безопасности, позволяя им эффективно собирать сетевые данные и адаптировать сканирования под конкретные задачи.



