Сканирование портов с помощью Nmap

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

Введение

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

Каждый тип сканирования обладает уникальными характеристиками и областями применения. Например, сканирование TCP connect завершает полный трехэтапный рукопожатие TCP, что делает его надежным, но легко обнаруживаемым. В отличие от этого, SYN-сканирование более скрытное, так как не завершает рукопожатие. Вы будете выполнять команды Nmap в терминале Xfce и анализировать вывод, чтобы понять состояние различных портов.

Выполнение TCP Connect-сканирования с помощью nmap -sT 127.0.0.1

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

Давайте кратко рассмотрим трехэтапное рукопожатие TCP:

  1. SYN (Синхронизация): Сканер отправляет пакет SYN на целевой порт.
  2. SYN/ACK (Синхронизация/Подтверждение): Если порт открыт, целевая система отвечает пакетом SYN/ACK.
  3. ACK (Подтверждение): Сканер завершает соединение, отправив пакет ACK обратно целевой системе.

Опция -sT в Nmap явно выполняет это полное сканирование TCP connect. Поскольку оно завершает TCP-соединение, оно не требует привилегий root, но мы будем использовать sudo для согласованности с последующими шагами, которые это требуют.

Теперь давайте выполним сканирование TCP connect на 127.0.0.1 (локальный хост). Этот IP-адрес всегда относится к вашему собственному компьютеру, что делает его безопасной целью для практики.

  1. Откройте терминал Xfce. Вы должны находиться в домашнем каталоге ~/project.

  2. Выполните следующую команду для выполнения сканирования TCP connect:

    sudo nmap -sT 127.0.0.1

    Эта команда указывает Nmap выполнить сканирование TCP connect (-sT) по IP-адресу 127.0.0.1. Пользователь labex имеет привилегии sudo без пароля, поэтому вы можете просто нажать Enter, если вас об этом спросят.

  3. Наблюдайте за выводом в терминале. Вы увидите список общих портов и их состояния на вашем локальном компьютере. Вывод будет похож на этот:

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 13:36 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000052s latency).
    Not shown: 995 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    2121/tcp open  ccproxy-ftp
    2222/tcp open  EtherNetIP-1
    3001/tcp open  nessus
    8080/tcp open  http-proxy
    
    Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

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

    • open означает, что Nmap успешно установил TCP-соединение с этим портом.
    • closed означает, что Nmap получил пакет TCP RST (Reset) в ответ на свой пакет SYN, что указывает на то, что порт не прослушивает соединения.
    • Обратите внимание, что порты 22, 2121, 2222, 3001 и 8080 являются open. Пользовательские службы (2121, 2222, 8080) были настроены средой лаборатории, наряду с SSH на порту 22 и другой службой на порту 3001.

Выполнение SYN-сканирования с помощью nmap -sS 127.0.0.1

На этом шаге вы узнаете, как выполнить SYN-сканирование, также известное как "полуоткрытое" сканирование. Этот метод, как правило, более скрытный, чем сканирование TCP connect, поскольку он не завершает полное трехэтапное рукопожатие TCP, что снижает вероятность его регистрации приложениями целевой системы.

Вот как работает SYN-сканирование:

  1. SYN (Синхронизация): Сканер отправляет пакет SYN на целевой порт.
  2. SYN/ACK (Синхронизация/Подтверждение): Если порт открыт, целевая система отвечает пакетом SYN/ACK.
  3. RST (Сброс): Вместо отправки ACK для завершения соединения, сканер немедленно отправляет пакет RST, чтобы прервать соединение.

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

Теперь давайте выполним SYN-сканирование на 127.0.0.1.

  1. Убедитесь, что вы находитесь в терминале Xfce.

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

    sudo nmap -sS 127.0.0.1

    Эта команда указывает Nmap выполнить SYN-сканирование (-sS) по IP-адресу 127.0.0.1. Нажмите Enter, если вас попросят ввести пароль.

  3. Наблюдайте за выводом. Вывод будет похож на вывод сканирования TCP connect, но лежащий в основе механизм отличается.

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 13:36 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.0000040s latency).
    Not shown: 995 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    2121/tcp open  ccproxy-ftp
    2222/tcp open  EtherNetIP-1
    3001/tcp open  nessus
    8080/tcp open  http-proxy
    
    Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

    Столбец STATE указывает статус каждого порта.

    • open означает, что Nmap получил пакет SYN/ACK в ответ на свой пакет SYN.
    • closed означает, что Nmap получил пакет RST.
    • filtered (которое вы можете увидеть в других сценариях) означает, что Nmap не смог определить, открыт порт или закрыт, потому что сетевое фильтрование (например, брандмауэр) препятствует доступу Nmap к порту.

Сканирование определенных портов с помощью nmap -p 2222,8080,2121 127.0.0.1

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

Опция -p в Nmap позволяет указать точные порты, которые вы хотите отсканировать. Вы можете указать отдельные порты, разделенные запятыми, диапазон портов или комбинацию обоих. В данном случае мы будем сканировать порты 2222, 8080 и 2121 на 127.0.0.1. Это пользовательские TCP-службы, которые были настроены скриптом инициализации среды лаборатории.

  • Порт 2222 настроен для работы службы SSH.
  • Порт 8080 настроен для работы веб-сервера Nginx.
  • Порт 2121 настроен для работы службы FTP.
  1. Убедитесь, что вы находитесь в терминале Xfce.

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

    sudo nmap -p 2222,8080,2121 127.0.0.1

    Эта команда указывает Nmap сканировать только порты 2222, 8080 и 2121 (-p 2222,8080,2121) на IP-адресе 127.0.0.1. Nmap будет использовать метод SYN-сканирования по умолчанию, так как используется sudo. Нажмите Enter, если вас попросят ввести пароль.

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

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 13:36 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000028s latency).
    
    PORT     STATE SERVICE
    2121/tcp open  ccproxy-ftp
    2222/tcp open  EtherNetIP-1
    8080/tcp open  http-proxy
    
    Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

    Вывод подтверждает статус указанных портов. open означает, что Nmap получил пакет SYN/ACK, что указывает на то, что порт активно прослушивает подключения.

Сканирование диапазона портов с помощью nmap -p 1-9000 127.0.0.1

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

Как вы узнали на предыдущем шаге, опция -p в Nmap позволяет указать порты. Для сканирования диапазона портов используется синтаксис start-end, где start — начальный номер порта, а end — конечный номер порта. В данном случае мы будем сканировать порты с 1 по 9000 на 127.0.0.1. Этот диапазон выбран для включения пользовательских служб (2121, 2222, 8080), настроенных в вашей лабораторной среде.

  1. Убедитесь, что вы находитесь в терминале Xfce.

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

    sudo nmap -p 1-9000 127.0.0.1

    Эта команда указывает Nmap сканировать порты с 1 по 9000 (-p 1-9000) на IP-адресе 127.0.0.1. Nmap будет использовать метод SYN-сканирования по умолчанию. Нажмите Enter, если вас попросят ввести пароль.

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

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 13:36 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.0000020s latency).
    Not shown: 8992 closed ports
    PORT     STATE SERVICE
    22/tcp   open  ssh
    953/tcp  open  rndc
    2121/tcp open  ccproxy-ftp
    2222/tcp open  EtherNetIP-1
    3001/tcp open  nessus
    3002/tcp open  exlm-agent
    5353/tcp open  mdns
    8080/tcp open  http-proxy
    
    Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

    Вывод показывает статус портов в диапазоне 1-9000 на вашем локальном компьютере. Вы должны увидеть пользовательские порты (2121, 2222, 8080), перечисленные как open, а также другие работающие службы, такие как SSH (22), службы, связанные с DNS (953, 5353), и дополнительные службы (3001, 3002). Not shown: 8992 closed ports указывает, что Nmap по умолчанию отображает только порты open или filtered при сканировании большого диапазона.

Сканирование 10 самых популярных портов с помощью nmap --top-ports 10 127.0.0.1

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

Опция --top-ports указывает Nmap на сканирование указанного количества наиболее распространённых портов. Например, --top-ports 10 будет сканировать 10 наиболее распространённых TCP-портов.

В данном случае мы будем сканировать 10 наиболее распространённых портов на 127.0.0.1.

  1. Убедитесь, что вы находитесь в терминале Xfce.

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

    sudo nmap --top-ports 10 127.0.0.1

    Эта команда указывает Nmap на сканирование 10 наиболее распространённых портов (--top-ports 10) на IP-адресе 127.0.0.1. Nmap будет использовать метод SYN-сканирования по умолчанию. Нажмите Enter, если вас попросят ввести пароль.

  3. Наблюдайте за выводом. Вы увидите статус 10 наиболее распространённых портов на вашем локальном компьютере.

    Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 13:36 CST
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000010s latency).
    
    PORT     STATE  SERVICE
    21/tcp   closed ftp
    22/tcp   open   ssh
    23/tcp   closed telnet
    25/tcp   closed smtp
    80/tcp   closed http
    110/tcp  closed pop3
    139/tcp  closed netbios-ssn
    443/tcp  closed https
    445/tcp  closed microsoft-ds
    3389/tcp closed ms-wbt-server
    
    Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

    Вывод показывает статус 10 наиболее распространённых портов. Вы можете заметить, что некоторые пользовательские порты (например, 8080, 2121, 2222) отсутствуют в этом списке, так как они не входят в число абсолютно наиболее распространённых портов в глобальном масштабе, а скорее специфичны для нашей лабораторной среды. Это демонстрирует, что, хотя --top-ports эффективен, он может пропустить менее распространённые, но всё же важные службы.

Резюме

В этой лабораторной работе вы изучили различные сканирования портов с помощью Nmap. Вы выполнили сканирование TCP connect с опцией -sT на 127.0.0.1, изучив полный трёхэтапный процесс TCP-соединения. Вы также выполнили SYN-сканирование с -sS на 127.0.0.1, которое является более скрытым полуоткрытым сканированием. Вы практиковались в сканировании определённых портов с помощью -p 2222,8080,2121 и более широкого диапазона портов с -p 1-9000 на 127.0.0.1. Наконец, вы научились эффективно сканировать наиболее распространённые порты с помощью --top-ports 10 на 127.0.0.1. Благодаря этим практическим упражнениям вы получили практический опыт в интерпретации вывода Nmap и понимании различных типов сканирования для разведки сети.