Использование Nmap для сканирования распространенных сетевых портов

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

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

Введение

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

Освоив Nmap, мощный открытый (open - source) инструмент для сетевого сканирования, вы сможете обнаружить активные сервисы в сети, оценить уязвимости безопасности и сохранить целостность своих систем.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/common_ports("Common Ports Scanning") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/scan_types("Scan Types and Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/installation -.-> lab-415920{{"Использование Nmap для сканирования распространенных сетевых портов"}} nmap/common_ports -.-> lab-415920{{"Использование Nmap для сканирования распространенных сетевых портов"}} nmap/save_output -.-> lab-415920{{"Использование Nmap для сканирования распространенных сетевых портов"}} nmap/port_scanning -.-> lab-415920{{"Использование Nmap для сканирования распространенных сетевых портов"}} nmap/scan_types -.-> lab-415920{{"Использование Nmap для сканирования распространенных сетевых портов"}} nmap/target_specification -.-> lab-415920{{"Использование Nmap для сканирования распространенных сетевых портов"}} nmap/service_detection -.-> lab-415920{{"Использование Nmap для сканирования распространенных сетевых портов"}} end

Понимание сетевых портов и настройка веб - сервера

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

Что такое сетевые порты?

Сетевые порты - это виртуальные конечные точки для связи в компьютерной сети. Представьте их как двери, через которые различные приложения и службы могут отправлять и получать данные. Они позволяют нескольким приложениям и службам использовать сетевые ресурсы на одной системе без взаимного вмешательства. Порты идентифицируются номерами от 0 до 65535, и разные диапазоны этих номеров предназначены для конкретных целей:

  • Порты от 0 до 1023: Это известные порты, зарезервированные для стандартных служб. Например, HTTP (используется для просмотра веб - страниц) обычно использует порт 80, FTP (для передачи файлов) использует порт 21, а SSH (для безопасного удаленного доступа) использует порт 22.
  • Порты от 1024 до 49151: Это зарегистрированные порты для конкретных приложений. Разработчики программного обеспечения могут зарегистрировать определенный номер порта для использования в своем приложении.
  • Порты от 49152 до 65535: Это динамические или частные порты. Они используются приложениями, когда им нужно установить временное соединение.

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

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

  1. Откройте окно терминала в среде виртуальной машины LabEx. Терминал - это текстовый интерфейс, который позволяет вам взаимодействовать с операционной системой, вводя команды. Вы должны находиться в каталоге по умолчанию /home/labex/project. Чтобы подтвердить текущий каталог, вы можете использовать следующую команду:

    pwd

    Команда pwd означает "print working directory" (вывести текущий рабочий каталог). Когда вы запустите эту команду, она покажет путь к текущему каталогу, в котором вы находитесь. Вы должны увидеть вывод, похожий на следующий:

    /home/labex/project
  2. Установите веб - сервер Apache2 с помощью следующей команды:

    sudo apt update && sudo apt install apache2 -y

    Команда sudo используется для выполнения команд с административными привилегиями. apt update обновляет информацию о пакетах на вашей системе, обеспечивая, что у вас есть самая свежая информация о доступных пакетах программного обеспечения. apt install apache2 -y устанавливает веб - сервер Apache2. Опция -y автоматически отвечает "да" на любые запросы во время процесса установки. Во время установки вы увидите много вывода, который показывает шаги, которые система выполняет для установки программного обеспечения.

  3. Запустите службу Apache2:

    sudo service apache2 start

    После установки веб - сервера Apache2 вам нужно запустить его службу. Команда service используется для управления системными службами. В этом случае мы запускаем службу Apache2, чтобы она могла начать принимать входящие запросы.

  4. Проверьте, что Apache2 работает корректно:

    sudo service apache2 status

    Чтобы убедиться, что служба Apache2 работает как ожидается, вы можете использовать опцию status с командой service. Это покажет текущее состояние службы Apache2. Вы должны увидеть вывод, указывающий, что Apache2 активен (запущен), похожий на следующий:

    * apache2 is running
  5. Вы также можете проверить, что веб - сервер доступен, создав новую вкладку "Web Service". Нажмите на символ + в верхней части вкладок виртуальной среды, выберите опцию "Web Service" и введите порт 80. Это попытается подключиться к веб - серверу, работающему на порту 80. Если все настроено правильно, должна отобразиться стандартная приветственная страница Apache2.

Теперь, когда у нас на системе работает веб - сервер, он открыл порт 80 для связи. На следующем этапе мы используем Nmap для обнаружения этого открытого порта.

Введение в Nmap и выполнение сканирования общих портов

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

Что такое Nmap?

Nmap (сокращение от Network Mapper) - это широко известный бесплатный и открытый (open - source) инструмент, используемый для сетевого обнаружения и аудита безопасности. Он имеет широкий спектр применений в области сетевой безопасности:

  • Обнаружение хостов и служб в сети: Nmap может помочь вам узнать, какие устройства подключены к сети и какие службы они предоставляют. Например, он может определить, есть ли в сети файловый сервер, веб - сервер или почтовый сервер.
  • Создание инвентаря систем, работающих в сети: Вы можете использовать Nmap для создания списка всех систем в сети, включая их IP - адреса и запущенные службы. Этот инвентарь полезен для сетевых администраторов для управления и поддержки сети.
  • Проверка, какие порты открыты на целевых хостах: Порты можно сравнить с дверьми в компьютер. Открытый порт означает, что служба ожидает входящих соединений. Nmap может сканировать целевой хост, чтобы определить, какие порты открыты.
  • Идентификация операционной системы и версий служб сетевых хостов: Знание операционной системы и версий служб, работающих на хосте, может помочь специалистам по безопасности определить, есть ли известные уязвимости, которые атакующие могут использовать.

Сканирование общих портов с использованием Nmap

Nmap предоставляет различные варианты сканирования. Для новичков опция быстрого сканирования (-F) очень полезна. По умолчанию Nmap сканирует 1000 портов, что может занять много времени. Опция -F уменьшает количество сканируемых портов до 100 самых распространенных, делая сканирование намного быстрее.

Проведем быстрый скан на нашей локальной машине, чтобы найти только что настроенный веб - сервер:

  1. Откройте терминал. В терминале вы будете вводить команды для взаимодействия с операционной системой. Введите следующую команду и нажмите Enter:

    nmap -F localhost

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

    • nmap: Это инструмент сканирования, который мы используем. Это основная команда, которая сообщает системе о начале сетевого сканирования.
    • -F: Эта опция включает режим быстрого сканирования. Она ограничивает сканирование 100 наиболее распространенными портами, экономя ваше время.
    • localhost: Это цель сканирования. localhost относится к вашей локальной машине, которая имеет IP - адрес 127.0.0.1.
  2. После выполнения команды вы увидите вывод, похожий на следующий:

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000097s latency).
    Not shown: 96 closed ports
    PORT   STATE SERVICE
    80/tcp open  http
    
    Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

    Этот вывод содержит важную информацию:

    • Сканирование было выполнено на вашей локальной машине с IP - адресом 127.0.0.1.
    • Порт 80 открыт и работает служба HTTP. Это Apache веб - сервер, который мы установили ранее, так как по умолчанию Apache ожидает входящих соединений на порту 80.
    • Другие 96 общих портов закрыты. Они не показаны в деталях в выводе.
  3. Если вы хотите получить более подробную информацию, например, версию службы, работающей на открытых портах, вы можете выполнить более детальное сканирование. Используйте следующую команду:

    nmap -sV -F localhost

    Опция -sV в этой команде пытается определить версию служб, работающих на открытых портах. Вывод будет более подробным:

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000097s latency).
    Not shown: 96 closed ports
    PORT   STATE SERVICE VERSION
    80/tcp open  http    Apache httpd 2.4.X
    
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

    Этот вывод подтверждает, что наш Apache веб - сервер работает на порту 80, и также сообщает нам версию сервера Apache HTTP.

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

Результаты сканирования показывают, что порт 80 открыт и работает служба HTTP. Это то, что мы ожидали, так как мы установили и запустили Apache веб - сервер, который по умолчанию ожидает входящих соединений на порту 80. В реальной жизни знание о открытых портах имеет огромное значение для специалистов по безопасности:

  1. Идентификация потенциальных уязвимостей безопасности: Различные службы, работающие на открытых портах, могут иметь известные уязвимости. Зная, какие порты открыты и какие службы на них работают, специалисты по безопасности могут проверить, есть ли какие - то риски безопасности.
  2. Обеспечение запуска только необходимых служб: Наличие ненужных служб на открытых портах может увеличить поверхность атаки. Определив открытые порты, специалисты по безопасности могут убедиться, что работают только те службы, которые действительно нужны.
  3. Проверка правильности конфигурации брандмауэра: Брандмауэры используются для контроля входящего и исходящего сетевого трафика. С помощью сканирования открытых портов специалисты по безопасности могут проверить, блокирует ли брандмауэр порты, которые должны быть заблокированы, и разрешает ли те, которые должны быть открыты.

Генерация отчетов о сканировании с помощью Nmap и понимание безопасности

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

Использование Nmap для генерации отчетов

Nmap может напрямую выводить результаты сканирования в различных форматах отчетов, включая обычный текст, XML, JSON и другие. Это более эффективно и точнее, чем создавать отчеты вручную. Давайте воспользуемся параметрами вывода Nmap для создания отчета:

  1. Запустите сканирование с помощью Nmap с параметрами вывода:
nmap -F -sV localhost -oN /home/labex/project/nmap_report.txt

В этой команде:

  • Параметр -F выполняет быстрый скан (сканирует только 100 наиболее распространенных портов)
  • -sV пытается определить версию сервисов, работающих на открытых портах
  • -oN /home/labex/project/nmap_report.txt сохраняет вывод в обычном текстовом формате в указанный файл
  1. Просмотрите сгенерированный отчет:
cat /home/labex/project/nmap_report.txt

Вы увидите отчет, содержащий полную информацию о сканировании, включая:

  • Время и дату сканирования
  • Информацию о цели
  • Список открытых портов
  • Сервисы и их версии, работающие на каждом открытом порте

Больше вариантов форматов отчетов

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

  • -oX filename - Вывод в формате XML, подходящий для автоматической обработки
  • -oG filename - Вывод в формате, пригодном для поиска с помощью grep, удобный для поиска с использованием grep
  • -oJ filename - Вывод в формате JSON, подходящий для современных приложений
  • -oA filename - Вывод сразу в всех форматах (обычный, XML и пригодный для grep)

Например, чтобы сгенерировать отчет в формате XML:

nmap -F -sV localhost -oX /home/labex/project/nmap_report.xml

Понимание аспектов безопасности результатов сканирования

Из нашего отчета о сканировании мы видим, что порт 80/tcp открыт и на нем работает HTTP-сервис (веб-сервер Apache). Это имеет несколько важных аспектов безопасности:

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

  2. Риски уязвимости сервисов: Сервисы, работающие на открытых портах, могут иметь уязвимости безопасности, которые атакующие могут использовать.

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

Для обеспечения безопасности портов вы должны следовать следующим рекомендациям:

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

Очистка лабораторной среды

Теперь, когда мы завершили сканирование, пришло время остановить веб-сервер Apache. Оставлять сервисы запущенными, когда они не нужны, может создать риски безопасности, поэтому правильная очистка важна.

  1. Остановите службу Apache:
sudo service apache2 stop
  1. Убедитесь, что служба остановлена:
sudo service apache2 status

Вы должны увидеть вывод, указывающий, что Apache2 не запущен, например:

* apache2 is not running
  1. Подтвердите, что порт 80 закрыт:
nmap -F localhost

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

Резюме

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

Эти навыки являются основой для оценки сетевой безопасности. Они важны для специалистов в области IT - безопасности, сетевого администрирования и системного управления. Освоение сканирования портов помогает выявить уязвимости сети и защитить системы от несанкционированного доступа.