08.1 Сетевое сканирование и разведка
Тема работы
Исследование компьютерной сети с использованием инструментов сетевого сканирования и разведки на основе готовой топологии в GNS3.
Цель работы
Научиться исследовать существующую компьютерную сеть, определять доступность сетевых узлов, выполнять сканирование IP-адресов и портов, выявлять доступные сетевые службы и анализировать результаты с точки зрения информационной безопасности.
Задачи работы
В ходе выполнения практической работы необходимо: 1. Изучить готовую топологию компьютерной сети и определить расположение основных сетевых устройств. 2. Определить IP-адреса и подсети, используемые в лабораторной сети. 3. Проверить сетевые параметры исследуемого устройства. 4. Проверить доступность выбранных узлов. 5. Исследовать маршрут прохождения сетевых пакетов. 6. Выполнить обнаружение активных узлов с помощью Nmap. 7. Просканировать TCP-порты выбранных устройств. 8. Определить сетевые службы, доступные на исследуемых серверах. 9. Сохранить результаты сканирования в файлы. 10. Сравнить результаты исследования двух серверов и выявить потенциальные проблемы безопасности.
Оборудование и программное обеспечение
- Компьютер с установленным GNS3.
- Подготовленная и работоспособная топология компьютерной сети в GNS3.
- Операционная система Linux на рабочей станции, с которой выполняется исследование.
- Утилита Nmap.
- Утилиты
ip,ping,tracerouteилиtracepath. - Терминал Linux.
- Два доступных для исследования серверных узла в лабораторной сети.
Если в подготовленной топологии отсутствуют два сервера, необходимо использовать два других доступных узла, согласованных с преподавателем.
Работа выполняется только в учебной сети GNS3. Сканирование внешних сетей, реальных серверов организаций и устройств, не относящихся к лабораторной работе, запрещено.
Теоретические сведения
Что такое сетевое сканирование
Сетевое сканирование — это исследование компьютерной сети с помощью специальных инструментов, позволяющих получать сведения об узлах, открытых портах и доступных сетевых службах.
Сетевое сканирование используется для: - инвентаризации устройств; - проверки доступности серверов; - обнаружения работающих сетевых служб; - проверки конфигурации сетевых узлов; - выявления потенциально опасных открытых портов; - контроля защищённости компьютерной сети.
Те же инструменты могут использоваться злоумышленниками для предварительной разведки перед атакой. Поэтому важно не только уметь выполнять сканирование, но и понимать, какую информацию оно раскрывает.
Сетевые узлы и IP-адреса
Сетевой узел — это устройство или система, имеющие сетевой интерфейс и участвующие в сетевом взаимодействии. В лабораторной сети такими узлами могут быть рабочие станции, серверы и маршрутизаторы.
IP-адрес используется для адресации устройства в IP-сети. По IP-адресу и маске сети можно определить, к какой подсети относится интерфейс.
Например, адрес 192.168.10.25/24 относится к подсети 192.168.10.0/24.
В этой практической работе приведённый адрес используется только как пример. При выполнении заданий необходимо подставлять реальные адреса из своей топологии GNS3.
Что такое порт
Порт — это числовой идентификатор, используемый транспортными протоколами TCP и UDP для передачи данных конкретным сетевым приложениям.
Примеры распространённых TCP-портов:
| Порт | Типичная служба | Назначение |
|---|---|---|
| 22 | SSH | Удалённое управление через защищённое соединение |
| 53 | DNS | Служба доменных имён |
| 80 | HTTP | Передача веб-страниц без шифрования на транспортном уровне |
| 443 | HTTPS | Передача веб-данных с использованием TLS |
| 3306 | MySQL | Доступ к серверу базы данных MySQL |
| 5432 | PostgreSQL | Доступ к серверу базы данных PostgreSQL |
Наличие одного из этих портов не гарантирует, что на нём действительно работает указанная служба. Для определения службы необходимо учитывать результаты сканирования и, при необходимости, проводить дополнительную проверку.
Состояния портов
При сканировании Nmap может определять различные состояния портов.
| Состояние | Значение |
|---|---|
open |
Порт доступен, и на нём, как правило, ожидает соединения приложение |
closed |
Узел доступен, но на проверяемом порту приложение не принимает соединения |
filtered |
Nmap не может достоверно определить состояние порта из-за фильтрации или отсутствия ответа |
open|filtered |
Не удалось однозначно различить открытый порт и фильтрацию |
Закрытый порт и отфильтрованный порт — не одно и то же. В первом случае получен ответ, указывающий на отсутствие службы на порту. Во втором случае сетевые средства защиты или особенности сети не позволяют сделать однозначный вывод.
Утилита Nmap
Nmap — инструмент исследования сетей, позволяющий обнаруживать узлы, сканировать порты и получать сведения о сетевых службах.
В практической работе будут использоваться следующие команды:
| Команда или параметр | Назначение |
|---|---|
nmap -sn |
Обнаружение узлов без сканирования портов |
nmap -p |
Проверка указанных портов |
nmap -sV |
Определение служб и возможных версий программного обеспечения |
nmap -Pn |
Пропуск предварительного обнаружения узла |
nmap -oN |
Сохранение результатов в обычный текстовый файл |
Результат сканирования не всегда является полным. Например, межсетевой экран может блокировать запросы, а служба может быть доступна только с определённых адресов. Поэтому результаты необходимо сопоставлять с топологией и другими наблюдениями.
Ход работы
Задание 1. Изучение готовой топологии
Откройте подготовленный проект GNS3 и убедитесь, что топология загружена.
Не изменяйте соединения, IP-адреса, маршруты и настройки сетевых устройств. На этом этапе требуется исследовать существующую конфигурацию.
Изучите схему и определите: - какие рабочие станции присутствуют в сети; - какие серверы доступны для исследования; - какие маршрутизаторы и коммутаторы используются; - какие подсети представлены в топологии; - с какого устройства будет выполняться сканирование; - какие устройства преподаватель разрешил исследовать.
Если на схеме не указаны адреса, откройте консоль соответствующих виртуальных устройств и изучите конфигурацию их сетевых интерфейсов. Не выполняйте команды изменения конфигурации.
Создайте в отчёте таблицу:
| № | Название узла | Тип устройства | IP-адрес | Подсеть | Разрешено исследовать |
|---|---|---|---|---|---|
| 1 | Рабочая станция | ||||
| 2 | Сервер 1 | ||||
| 3 | Сервер 2 | ||||
| 4 | Маршрутизатор |
Добавьте строки для остальных значимых устройств.
Что нужно сделать: записать в отчёт сведения об исследуемой топологии, указать IP-адрес рабочей станции, с которой будет выполняться сканирование, и выбрать два разрешённых для исследования сервера.
Задание 2. Проверка сетевых параметров рабочей станции
Откройте терминал Linux на рабочей станции, с которой будете исследовать сеть.
Выполните:
ip addr
Команда показывает сетевые интерфейсы и назначенные им IP-адреса.
Обратите внимание на следующие сведения: - название сетевого интерфейса; - состояние интерфейса; - IPv4-адрес; - длину префикса сети; - наличие нескольких сетевых интерфейсов.
Затем выполните:
ip route
Команда выводит таблицу маршрутизации. В ней можно увидеть непосредственно подключённые сети и маршрут по умолчанию.
Пример записи:
default via 192.168.10.1 dev eth0
192.168.10.0/24 dev eth0 proto kernel scope link
В данном примере 192.168.10.1 — шлюз по умолчанию, а 192.168.10.0/24 — непосредственно подключённая сеть. Это условный пример, а не параметры вашей лабораторной сети.
Если команда ip route не показывает маршрут по умолчанию, это не обязательно означает неисправность: для взаимодействия внутри непосредственно подключённой подсети шлюз может не требоваться.
Запишите в отчёт: 1. IP-адрес и префикс рабочей станции. 2. Название сетевого интерфейса. 3. Подключённую подсеть. 4. Адрес шлюза по умолчанию, если он присутствует. 5. Какие сети доступны согласно таблице маршрутизации.
Задание 3. Проверка доступности узлов
Выберите два разрешённых для исследования устройства: первый сервер и второй сервер.
Для каждого устройства выполните команду, подставив вместо TARGET_IP его реальный IP-адрес:
ping -c 4 TARGET_IP
Например, для условного адреса 192.168.10.20 команда будет выглядеть так:
ping -c 4 192.168.10.20
Параметр -c 4 ограничивает количество отправляемых запросов четырьмя пакетами.
Обратите внимание на следующие показатели: - количество отправленных пакетов; - количество полученных ответов; - процент потерь; - время прохождения пакетов, если ответы получены.
Заполните таблицу:
| Исследуемый узел | IP-адрес | Отправлено пакетов | Получено ответов | Потери, % | Доступность по результатам проверки |
|---|---|---|---|---|---|
| Сервер 1 | |||||
| Сервер 2 |
Важно: отсутствие ответа на ping не доказывает, что устройство выключено. Оно может блокировать ICMP-запросы, а маршрутизатор или межсетевой экран может фильтровать такие пакеты.
Если ответов нет, запишите результат и переходите к следующим заданиям. Не меняйте настройки сети без разрешения преподавателя.
Задание 4. Исследование маршрута прохождения пакетов
Утилиты traceroute и tracepath позволяют исследовать маршрут прохождения пакетов от рабочей станции к указанному узлу.
Попробуйте выполнить:
traceroute -n TARGET_IP
Если traceroute не установлен, проверьте наличие tracepath:
tracepath TARGET_IP
Подставьте адрес одного из исследуемых серверов.
Параметр -n у traceroute запрещает преобразование IP-адресов в доменные имена. Это делает вывод более компактным.
В результатах обратите внимание на: - количество обнаруженных промежуточных узлов; - IP-адреса маршрутизаторов, если они отвечают; - время прохождения пакетов; - строки со звёздочками, которые могут означать отсутствие ответа на запрос.
Если исследуемый сервер находится в той же подсети, промежуточных маршрутизаторов может не быть. Если некоторые узлы не отвечают, это также не обязательно указывает на неисправность.
Заполните таблицу:
| Параметр | Результат |
|---|---|
| IP-адрес назначения | |
| Использованная утилита | |
| Количество обнаруженных промежуточных узлов | |
| Адреса обнаруженных узлов | |
| Наблюдались ли узлы без ответа | |
| Вывод о маршруте |
Если обе утилиты отсутствуют, укажите это в отчёте и сообщите преподавателю. Не устанавливайте программы самостоятельно, если это не предусмотрено правилами лабораторной работы.
Задание 5. Обнаружение активных узлов с помощью Nmap
Перед выполнением сканирования убедитесь, что выбрана только разрешённая для исследования лабораторная подсеть.
Выполните:
nmap -sn SUBNET
Вместо SUBNET укажите адрес и префикс реальной подсети из вашей топологии.
Например:
nmap -sn 192.168.10.0/24
Этот пример показывает формат команды. Не используйте его, если такая подсеть не соответствует вашей лабораторной сети.
Параметр -sn выполняет обнаружение узлов без сканирования их портов.
В результатах найдите: - IP-адреса обнаруженных узлов; - количество найденных узлов; - сведения о MAC-адресах, если они выводятся; - сообщения о том, какие узлы считаются активными.
Обнаружение узлов зависит от способа сканирования и сетевой конфигурации. В локальном сегменте Nmap может использовать ARP-запросы, а для удалённых подсетей обнаружение может зависеть от ICMP и других методов. Поэтому результат может не включать все работающие устройства.
Заполните таблицу:
| № | IP-адрес обнаруженного узла | Предполагаемое назначение | Был ли узел известен по топологии |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| 4 |
Добавьте строки при необходимости.
Сравните список обнаруженных узлов с топологией GNS3. Укажите, какие узлы обнаружены, какие не обнаружены и какие выводы можно сделать по результатам.
Не считайте отсутствие узла в результатах доказательством его выключенного состояния: причиной может быть фильтрация запросов или ограниченная видимость сети.
Задание 6. Сканирование TCP-портов первого сервера
Выберите первый сервер, который разрешил исследовать преподаватель.
Для начала выполните сканирование распространённых TCP-портов:
nmap -Pn -p 22,53,80,443,3306,5432 TARGET_IP
Замените TARGET_IP реальным адресом сервера.
Параметр -Pn пропускает предварительное обнаружение узла. Это полезно, когда сервер не отвечает на запросы обнаружения, но при этом может принимать соединения на отдельных портах.
Параметр -p задаёт список портов для проверки.
В результатах изучите столбцы:
- PORT — номер и протокол порта;
- STATE — обнаруженное состояние порта;
- SERVICE — предполагаемая служба.
Не делайте вывод о наличии уязвимости только на основании открытого порта. Открытый порт означает, что соответствующий сетевой доступ возможен в условиях проведённой проверки, но для оценки безопасности нужны дополнительные сведения.
Заполните таблицу:
| Порт | Протокол | Состояние | Предполагаемая служба | Нужен ли этот доступ по назначению сервера |
|---|---|---|---|---|
| 22 | TCP | |||
| 53 | TCP | |||
| 80 | TCP | |||
| 443 | TCP | |||
| 3306 | TCP | |||
| 5432 | TCP |
Если команда сообщает, что узел не отвечает, всё равно зафиксируйте результат. В отчёте поясните, почему -Pn не гарантирует успешное сканирование портов: фильтрация, отсутствие маршрута или недоступность самого узла могут сохраняться.
Задание 7. Определение сетевых служб первого сервера
Теперь попробуйте определить службы и возможные версии программного обеспечения на обнаруженных открытых портах.
Выполните:
nmap -Pn -sV -p 22,53,80,443,3306,5432 TARGET_IP
Параметр -sV позволяет Nmap исследовать доступные службы и определить их предполагаемые названия и версии.
Сравните результаты этого задания с результатами предыдущего.
Обратите внимание: - какие порты оказались открытыми; - для каких портов Nmap смог определить службу; - были ли указаны версии программного обеспечения; - изменились ли сведения о службах по сравнению с предыдущим сканированием.
Заполните таблицу:
| Порт | Состояние | Служба по результатам -sV |
Версия, если определена | Комментарий |
|---|---|---|---|---|
Если версия не определена, укажите «не определена». Не пытайтесь угадывать её только по номеру порта.
Определение версии является результатом анализа ответов службы и может быть неточным. Если обнаружена старая версия программы, это повод для дополнительной проверки, но не окончательное доказательство уязвимости.
Задание 8. Сканирование TCP-портов второго сервера
Повторите исследование для второго разрешённого сервера.
Выполните:
nmap -Pn -p 22,53,80,443,3306,5432 SECOND_SERVER_IP
Затем:
nmap -Pn -sV -p 22,53,80,443,3306,5432 SECOND_SERVER_IP
Вместо SECOND_SERVER_IP укажите реальный IP-адрес второго сервера.
Запишите результаты в отдельную таблицу:
| Порт | Состояние | Определённая служба | Версия, если определена | Комментарий |
|---|---|---|---|---|
| 22 | ||||
| 53 | ||||
| 80 | ||||
| 443 | ||||
| 3306 | ||||
| 5432 |
Сравните второй сервер с первым. Укажите: 1. Какие порты совпадают по состоянию. 2. Какие службы обнаружены только на одном сервере. 3. Какие службы доступны с исследуемой рабочей станции. 4. Есть ли службы, доступность которых требует дополнительной проверки с точки зрения назначения сервера.
Если порт закрыт или отфильтрован, не делайте вывод, что соответствующее приложение обязательно отсутствует на устройстве. Возможны разные причины такого результата.
Задание 9. Сохранение результатов сканирования
Создайте отдельный каталог для отчётов:
mkdir -p ~/nmap-results
Сохраните результаты обнаружения узлов:
nmap -sn SUBNET -oN ~/nmap-results/host-discovery.txt
Сохраните результаты сканирования первого сервера:
nmap -Pn -sV -p 22,53,80,443,3306,5432 \
FIRST_SERVER_IP \
-oN ~/nmap-results/server1-scan.txt
Сохраните результаты сканирования второго сервера:
nmap -Pn -sV -p 22,53,80,443,3306,5432 \
SECOND_SERVER_IP \
-oN ~/nmap-results/server2-scan.txt
Замените SUBNET, FIRST_SERVER_IP и SECOND_SERVER_IP реальными параметрами вашей лабораторной сети.
Параметр -oN сохраняет вывод Nmap в обычный текстовый файл. Он не заменяет результаты в терминале анализом: файл нужен для последующего изучения и включения результатов в отчёт.
Проверьте наличие файлов:
ls -l ~/nmap-results
Просмотрите один из сохранённых отчётов:
cat ~/nmap-results/server1-scan.txt
Если команда сканирования завершилась ошибкой, проверьте правильность введённого адреса и пути сохранения файла. Не запускайте сканирование посторонних сетей для поиска альтернативных целей.
Запишите в отчёт названия созданных файлов и поясните, зачем сохранять результаты сканирования.
Задание 10. Анализ результатов и выявление потенциальных проблем безопасности
Используя результаты предыдущих заданий, проанализируйте два исследованных сервера.
При анализе учитывайте следующие положения: - открытый порт не обязательно является уязвимостью; - доступность службы должна соответствовать назначению устройства; - службы удалённого управления требуют особого внимания к ограничению доступа и аутентификации; - базы данных обычно не должны быть доступны всем узлам без необходимости; - обнаруженная версия программного обеспечения может потребовать проверки актуальности и наличия исправлений; - отсутствие ответа не позволяет автоматически утверждать, что служба отсутствует; - результаты сканирования показывают доступность служб из конкретной точки сети, а не обязательно из всех сетей.
Заполните итоговую таблицу:
| Проверяемый параметр | Сервер 1 | Сервер 2 |
|---|---|---|
| IP-адрес | ||
| Количество открытых проверенных TCP-портов | ||
| Обнаруженные службы | ||
| Обнаружены ли версии служб | ||
| Есть ли службы, требующие дополнительной проверки | ||
| Какие ограничения доступа стоит проверить |
После заполнения таблицы ответьте письменно: 1. Какой сервер предоставляет больше доступных сетевых служб в рамках выполненной проверки? 2. Соответствует ли обнаруженный набор служб назначению каждого сервера? 3. Какие обнаруженные службы требуют особого внимания с точки зрения информационной безопасности? 4. Какие дополнительные сведения необходимы для подтверждения наличия уязвимости? 5. Какие меры могли бы уменьшить ненужную сетевую доступность служб?
Не изменяйте конфигурацию серверов, не отключайте службы и не применяйте средства эксплуатации уязвимостей. В рамках этой работы требуется только исследование и анализ.
Задание 11. Формирование итогового вывода
На основании проведённых исследований сформулируйте общий вывод объёмом 1–2 абзаца.
В выводе укажите: - какие устройства удалось обнаружить; - какие методы сканирования использовались; - какие открытые порты и службы были обнаружены на двух серверах; - какие ограничения сканирования проявились в вашей топологии; - какие потенциальные риски были выявлены; - какие действия можно рекомендовать для дальнейшей проверки защищённости сети.
Убедитесь, что в отчёте присутствуют результаты всех выполненных заданий, таблицы и названия файлов с сохранёнными результатами.