Выполнение сканирования UDP-портов с помощью Nmap

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

Введение

В этом лабораторном занятии вы научитесь использовать Nmap для сканирования UDP (User Datagram Protocol) портов, что является важным навыком для профессионалов в области сетевой безопасности. UDP, это безсоединенный протокол, который не устанавливает специальное соединение от начала до конца перед передачей данных. Это делает его быстрее, но менее надежным, чем TCP.

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

Настройка UDP - сервера

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

Понимание протокола UDP

Перед тем, как приступить к настройке сервера, давайте немного разберемся, что такое UDP (User Datagram Protocol). UDP является важной частью стека протоколов Интернета (Internet Protocol, IP).

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

Настройка UDP - сервера

Для настройки UDP - сервера мы будем использовать инструмент под названием netcat, который часто сокращается до nc. netcat - это очень полезная сетевая утилита, которая позволяет читать и записывать в сетевые соединения, используя либо TCP, либо UDP.

  1. Сначала откройте окно терминала. После открытия терминала вам нужно перейти в директорию проекта. Именно здесь находятся все соответствующие файлы и настройки для этого лабораторного занятия. Вы можете сделать это, выполнив следующую команду в терминале:
cd /home/labex/project
  1. Теперь пришло время запустить UDP - сервер. Мы хотим, чтобы сервер слушал порт 9999. Вы можете запустить сервер с помощью следующей команды:
nc -u -l -p 9999 -k

Разберем, что означает каждая опция в этой команде:

  • -u: Эта опция сообщает netcat использовать UDP вместо стандартного TCP. Поскольку мы настраиваем UDP - сервер, нам нужно указать это.
  • -l: Эта опция переводит netcat в режим прослушивания. В режиме прослушивания netcat работает как сервер, ожидая входящих соединений.
  • -p 9999: Эта опция указывает номер порта, на котором сервер будет прослушивать. В этом случае мы выбрали порт 9999.
  • -k: Эта опция сообщает серверу продолжать работу даже после отключения клиента. Это полезно, так как позволяет серверу принимать новые соединения без необходимости перезапускать его каждый раз, когда клиент отключается.

После выполнения этой команды ваше окно терминала может показаться замороженным или зависшим. Это нормальное поведение. Это означает, что netcat теперь активно прослушивает входящие UDP - соединения на порту 9999.

Оставьте это окно терминала открытым, так как нам оно понадобится на следующем этапе. Чтобы продолжить лабораторное занятие, вам нужно открыть новое окно терминала.

Выполнение базового сканирования UDP с использованием Nmap

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

Понимание сканирования UDP с использованием Nmap

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

UDP (User Datagram Protocol) - это безсоединенный протокол. В отличие от TCP, который устанавливает соединение перед передачей данных, UDP просто отправляет данные без предварительной установки соединения. Это означает, что традиционные методы сканирования на основе соединения, используемые для TCP - портов, не работают для UDP.

При сканировании UDP - портов Nmap отправляет пустые UDP - пакеты на целевой порт и затем ждет ответа. Если порт закрыт, целевая система обычно отправляет обратно сообщение ICMP "порт недоступен". Однако, если порт открыт, ситуация становится немного сложнее. Возможно, вообще не будет ответа, что делает сложно определить, действительно ли порт открыт. Или, если UDP - сервис, работающий на порту, распознает формат пакета, он может отправить ответ.

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

Выполнение сканирования UDP

  1. Сначала откройте новое окно терминала. Убедитесь, что предыдущее окно терминала с запущенным UDP - сервером остается открытым. Это важно, так как мы будем сканировать активный в этом терминале UDP - сервер.

  2. Затем нам нужно перейти в директорию проекта. В новом окне терминала выполните следующую команду:

cd /home/labex/project

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

  1. Теперь пришло время выполнить сканирование UDP с использованием Nmap. Мы будем сканировать локальный хост (127.0.0.1) на порту 9999. Выполните следующую команду:
sudo nmap -sU -p 9999 127.0.0.1 > /home/labex/project/udp_scan_results.txt

Разберем, что делает каждая часть этой команды:

  • sudo: Используется для выполнения команды с повышенными привилегиями. Сканирование UDP требует повышенных привилегий, так как оно включает в себя отправку пакетов на низкоуровневом сетевом уровне.
  • nmap: Это сканирующий инструмент, который мы используем. Он является основой нашей работы по обнаружению сетей и аудиту безопасности.
  • -sU: Эта опция сообщает Nmap выполнить сканирование UDP.
  • -p 9999: Эта опция указывает, что мы хотим сканировать только порт 9999.
  • 127.0.0.1: Это целеевой IP - адрес. В данном случае это локальный хост, то есть мы сканируем нашу собственную машину.
  • > /home/labex/project/udp_scan_results.txt: Эта часть перенаправляет вывод сканирования Nmap в файл с именем udp_scan_results.txt в директории проекта. Таким образом, мы сможем позже просмотреть результаты.
  1. После завершения сканирования мы можем просмотреть результаты. Выполните следующую команду:
cat /home/labex/project/udp_scan_results.txt

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-15 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000054s latency).

PORT     STATE         SERVICE
9999/udp open|filtered unknown

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

Понимание результатов

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

Состояние open|filtered указывает, что Nmap не получил сообщение ICMP "порт недоступен". Возможно несколько объяснений этого:

  • Порт открыт, и UDP - сервис работает как ожидается.
  • Порт может быть отфильтрован брандмауэром. Брандмауэр может блокировать сообщения ICMP "порт недоступен" или сам UDP - трафик.
  • Целевая система может не отправлять сообщения ICMP "порт недоступен" по какой - то причине.

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

Как упоминалось ранее, сканирование UDP менее однозначно, чем сканирование TCP. Вот почему Nmap часто показывает состояние open|filtered для UDP - портов, что делает более сложным точное определение статуса UDP - портов.

Резюме

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

Вы также получили практический опыт в понимании протокола UDP и его отличий от TCP, настройке базового UDP - сервера с использованием netcat, использовании Nmap для сканирования открытых UDP - портов и интерпретации результатов сканирования UDP. Эти навыки являются основой для более продвинутого сканирования сетей и оценки безопасности. Сканирование UDP имеет важное значение, так как многие важные сервисы, такие как DNS, DHCP и протоколы потоковой передачи, используют UDP.

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