Обнаружение хостов с помощью Nmap

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

Введение

В этом лабораторном практикуме цель — изучить методы обнаружения хостов с помощью Nmap. Практикум охватывает различные команды Nmap для обнаружения хостов, включая выполнение сканирования пингом сети 192.168.1.0/24 с опцией -sn для отключения сканирования портов, использование TCP SYN ping и ACK ping, а также комбинирование различных пингов. Также демонстрируется отображение активных хостов в терминале Xfce. Кроме того, показано выполнение сканирования пингом локального адреса с отключением сканирования портов.

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

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

192.168.1.0/24 — это запись в CIDR-нотации, представляющая сеть. /24 указывает, что первые 24 бита IP-адреса фиксированы, определяя сеть, а оставшиеся 8 бит используются для адресов хостов в этой сети. Это соответствует диапазону IP-адресов от 192.168.1.1 до 192.168.1.254.

Для выполнения сканирования пингом сети 192.168.1.0/24 откройте терминал (если он ещё не открыт) и выполните следующую команду:

sudo nmap -sn 192.168.1.0/24

Эта команда указывает Nmap выполнить сканирование пингом всех IP-адресов в сети 192.168.1.0/24. Команда sudo используется, потому что Nmap часто требует повышенных привилегий для отправки определённых типов сетевых пакетов.

В этой лабораторной среде сеть 192.168.1.0/24 не содержит активных хостов, поэтому вы увидите вывод, похожий на этот:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:49 CST

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

Starting Nmap 7.XX ( https://nmap.org ) at YYYY-MM-DD HH:MM ZZZ
Nmap scan report for 192.168.1.1
Host is up (0.000XXs latency).
Nmap scan report for 192.168.1.10
Host is up (0.002XXs latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.XX seconds

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

127.0.0.1 — это адрес петли обратной связи, также известный как localhost. Он всегда относится к текущей машине. Сканирование пингом localhost — это быстрый способ проверить, правильно ли работает сетевой интерфейс.

Для выполнения сканирования пингом localhost без сканирования портов выполните следующую команду в терминале:

sudo nmap -sn 127.0.0.1

Эта команда указывает Nmap выполнить сканирование пингом адреса 127.0.0.1. Опция -sn гарантирует, что Nmap выполнит только обнаружение хостов и не попытается сканировать порты.

Вывод укажет, активен ли хост. Он должен быть похож на этот:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:49 CST
Nmap scan report for localhost (127.0.0.1)
Host is up.
Nmap done: 1 IP address (1 host up) scanned in 0.00 seconds

Этот вывод подтверждает, что localhost (127.0.0.1) активен и работает. Nmap выполнил только сканирование пингом, как указано опцией -sn, и не сканировал порты.

Выполнение сканирования пингом TCP SYN и ACK

На этом шаге вы будете использовать Nmap для выполнения сканирования пингом TCP SYN и ACK. Эти методы часто более надёжны, чем ICMP-пинги, поскольку многие брандмауэры блокируют ICMP-трафик, но пропускают TCP-трафик.

Сначала давайте попробуем сканирование пингом TCP SYN на 192.168.1.1, чтобы продемонстрировать, что происходит, когда хост недоступен. TCP SYN-пинги отправляют TCP SYN-пакеты целевому хосту. Если хост активен и прослушивает указанный порт (или любой порт по умолчанию), он ответит SYN/ACK-пакетом. Затем Nmap завершает соединение, отправляя RST-пакет.

Опция -PS в Nmap указывает, что вы хотите использовать TCP SYN-пинги. По умолчанию Nmap отправляет SYN-пакет на порт 80.

Для выполнения сканирования пингом TCP SYN на 192.168.1.1 выполните следующую команду в терминале:

sudo nmap -PS 192.168.1.1

Эта команда указывает Nmap отправить TCP SYN-пакет на порт 80 хоста 192.168.1.1. sudo требуется, поскольку Nmap нуждается в повышенных привилегиях для создания и отправки сырых TCP-пакетов.

Поскольку 192.168.1.1 недоступен в этой лабораторной среде, вы увидите вывод, подобный этому:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:49 CST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.10 seconds

Этот вывод показывает, что Nmap не смог достичь 192.168.1.1. Сообщение предлагает использовать -Pn, если вы подозреваете, что хост активен, но блокирует запросы пинга.

Теперь давайте выполним сканирование пингом TCP SYN на localhost (127.0.0.1), чтобы увидеть, как это работает, когда хост доступен:

sudo nmap -PS 127.0.0.1

Это покажет вывод, похожий на:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:50 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000070s 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.12 seconds

Этот вывод показывает, что Nmap успешно определил localhost как активный и также выполнил сканирование портов, показав открытые порты системы.

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

Опция -PA в Nmap указывает, что вы хотите использовать TCP ACK-пинги. По умолчанию Nmap отправляет ACK-пакет на порт 80.

Сначала давайте попробуем ACK-пинги на 192.168.1.1:

sudo nmap -PA 192.168.1.1

Как ожидалось, это покажет, что хост неактивен:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:50 CST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.11 seconds

Теперь давайте выполним сканирование пингом TCP ACK на localhost, чтобы увидеть успешный случай:

sudo nmap -PA 127.0.0.1

Это даст вывод, похожий на:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:50 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.11 seconds

Этот вывод показывает, что Nmap отправил TCP ACK-пакет на localhost и получил ответ, что хост активен. Сканирование также показывает открытые порты системы.

Комбинирование методов сканирования пингом

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

Используя опции -PS и -PA, Nmap будет отправлять как TCP SYN, так и TCP ACK пакеты каждому хосту в указанной сети. Это увеличивает вероятность обнаружения активных хостов, особенно в средах с жёсткими брандмауэрами.

Сначала давайте попробуем комбинированное сканирование сети 192.168.1.0/24, чтобы продемонстрировать, что происходит, когда хостов нет:

sudo nmap -PS -PA 192.168.1.0/24

Эта команда указывает Nmap отправить как TCP SYN, так и TCP ACK пакеты на порт 80 каждого хоста в сети 192.168.1.0/24. sudo требуется, поскольку Nmap нуждается в повышенных привилегиях для создания и отправки сырых TCP пакетов.

Поскольку в нашей лабораторной среде в этом диапазоне сети нет активных хостов, вы увидите вывод, подобный этому:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:51 CST

Сканирование завершается без отчётов о хостах, что указывает на отсутствие ответов хостов на запросы SYN или ACK пинга в этом диапазоне сети.

В реальной ситуации с активными хостами вывод будет похож на это:

Starting Nmap 7.XX ( https://nmap.org ) at YYYY-MM-DD HH:MM ZZZ
Nmap scan report for 192.168.1.1
Host is up (0.0010s latency).
Nmap scan report for 192.168.1.2
Host is up (0.0015s latency).
Nmap scan report for 192.168.1.10
Host is up (0.0012s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 2.XX seconds

Это покажет, что Nmap просканировал сеть 192.168.1.0/24 и обнаружил три активных хоста, которые ответили на комбинированные запросы пинга.

Чтобы продемонстрировать комбинированный метод пинга на рабочем примере, давайте используем его на localhost:

sudo nmap -PS -PA 127.0.0.1

Это даст вывод, показывающий, что localhost отвечает на оба типа пинга:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:51 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.11 seconds

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

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

Введите следующую команду и нажмите Enter:

history

Это отобразит список ваших последних команд. Прокрутите список, чтобы найти команды Nmap, которые вы использовали на предыдущих шагах, в частности, команды с использованием -sn, -PS и -PA для выполнения сканирования пингом.

Например, вы должны увидеть команды, подобные:

  1  sudo nmap -sn 192.168.1.0/24
  2  sudo nmap -sn 127.0.0.1
  3  sudo nmap -PS 192.168.1.1
  4  sudo nmap -PS 127.0.0.1
  5  sudo nmap -PA 192.168.1.1
  6  sudo nmap -PA 127.0.0.1
  7  sudo nmap -PS -PA 192.168.1.0/24
  8  sudo nmap -PS -PA 127.0.0.1
  9  history

Просмотрев эти команды и их вывод (который вы должны были записать на предыдущих шагах), вы можете подтвердить различные методы сканирования пингом, которые вы изучили, и как они ведут себя с доступными и недоступными хостами. Команда history — полезный инструмент для аудита вашей работы и обеспечения правильного выполнения шагов в этой лаборатории.

Примечание: Точный вывод команды history будет зависеть от команд, которые вы выполнили в вашей сессии терминала.

Резюме

В этой лабораторной работе вы изучили обнаружение хостов с помощью Nmap. Вы начали со сканирования пингом сети 192.168.1.0/24 с опцией -sn для отключения сканирования портов, что быстрее и менее навязчиво. Вы также выполнили сканирование пингом адреса localhost 127.0.0.1, отключив сканирование портов. Кроме того, вы изучили различные типы пингов, такие как TCP SYN-пинги с -PS, ACK-пинги с -PA и комбинированный пинг с -PS -PA, чтобы эффективно определять активные хосты в различных сетевых сценариях. Наконец, вы научились просматривать историю команд в терминале, чтобы проверить свои действия и обнаруженные хосты.