Nmap

Процесс обнаружения хоста Nmap

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

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

Что такое Host Discovery

Процесс обнаружения хоста Nmap относится к перечислению сетевых хостов для сбора информации о них для построения плана атаки при тестировании на проникновение.

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

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

Давай начнем.

Обнаружение сети

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

1: классический пинг ICMP

Вы можете выполнить обнаружение хоста с помощью простого Эхо-запрос ICMP где хозяин отвечает Эхо-ответ ICMP.

Чтобы отправить эхо-запрос ICMP с помощью Nmap, введите команду:

$ nmap -PE -sn 192.168.0.16

Результат будет напоминать показанный ниже:

Запуск Nmap 7.91 (https: // nmap.org)
отчет о сканировании для 192.168.0.16
Хост включен (0.Задержка 11 с).
MAC-адрес: EC: 08: 6B: 18: 11: D4 (Tp-link Technologies)
Выполнено Nmap: 1 IP-адрес (1 хост включен) просканирован за 0.62 секунды

В приведенной выше команде мы говорим Nmap отправить целевой эхо-запрос ping echo (-PE). Если он получает ответ ICMP, значит, хост работает.

Ниже приведен снимок экрана Wireshark с командой nmap -sn -PE:

Ознакомьтесь с приведенным ниже ресурсом, чтобы узнать больше о протоколе ICMP.

https: // linkfy.в / ICMP

ПРИМЕЧАНИЕ: Эхо-запросы ICMP ненадежны и не позволяют сделать вывод на основе ответа. Например, рассмотрим тот же запрос в Microsoft.ком

$ nmap -sn -PE Майкрософт.ком

Результат будет таким, как показано ниже:

Запуск Nmap 7.91 Примечание: Хост не работает.
Если он действительно работает, но блокирует наши зонды ping, попробуйте -Pn
Nmap сделано:
1 IP-адрес (0 подключенных хостов) просканирован за 2.51 секунда

Вот скриншот для анализа Wireshark:

2: TCP SYN Ping

Другой метод обнаружения хоста - использовать ping-сканирование Nmap TCP SYN. Если вы знакомы с тремя рукопожатиями TCP SYN / ACK, Nmap заимствует технологию и отправляет запрос на различные порты, чтобы определить, работает ли хост или использует разрешающие фильтры.

Если мы говорим Nmap использовать SYN ping, он отправляет пакет на целевой порт, и, если хост включен, он отвечает пакетом ACK. Если хост не работает, он отвечает пакетом RST.

Используйте команду, как показано ниже, чтобы запустить запрос SYN ping.

sudo nmap -sn -PS scanme.nmap.org

Ответ на эту команду должен указывать, работает ли хост или нет. Ниже приведен фильтр запроса Wireshark.

TCP.флаги.синхронизация && tcp.флаги.подтверждать

ПРИМЕЧАНИЕ: Мы используем -PS, чтобы указать, что мы хотим использовать ping-запрос TCP SYN, который может быть более эффективным методом, чем необработанные пакеты ICMP. Ниже приведен запрос Nmap от Microsoft.com с использованием TCP SYN.

$ nmap -sn -PS Майкрософт.ком

Результат показан ниже:

Запуск Nmap 7.91 (https: // nmap.org)
Отчет о сканировании Nmap для Microsoft.com (104.215.148.63)
Хост включен (0.Задержка 29 с).
Другие адреса для Microsoft.com (не сканировано): 40.112.72.205 13.77.161.179 40.113.200.201 40.76.4.15
Nmap сделано:
1 IP-адрес (1 хост вверх) сканируется за 1.08 секунд

3: TCP ACK Ping

Метод проверки связи TCP ACK является дочерним по отношению к запросу проверки связи SYN. Он работает аналогично, но вместо этого использует пакет ACK. В этом методе NMAP пробует что-то умное.

Он начинается с отправки хосту пустого пакета TCP ACK. Если хост отключен, пакет не должен получать никакого ответа. Если он находится в сети, хост ответит пакетом RST, указывающим, что хост работает.

Если вы не знакомы с RST (пакет сброса), это пакет, отправленный после получения неожиданного пакета TCP. Поскольку пакет ACK, который отправляет Nmap, не является ответом на SYN, хост должен вернуть пакет RST.

Чтобы инициализировать эхо-запрос Nmap ACK, используйте следующую команду:

$ nmap -sn -PA 192.168.0.16

Приведенный ниже результат:

Запуск Nmap 7.91 (https: // nmap.org)
Отчет о сканировании Nmap для 192.168.0.16
Хост включен (0.Задержка 15 с).
MAC-адрес: EC: 08: 6B: 18: 11: D4 (Tp-link Technologies)
Nmap сделано:
1 IP-адрес (1 хост вверх) просканирован в 0.49 секунд

4. UDP Ping

Давайте поговорим о другом варианте обнаружения хоста в Nmap, i.е., UDP ping.

UDP ping работает, отправляя UDP-пакеты на указанные порты целевого хоста. Если хост находится в сети, UDP-пакет может встретить закрытый порт и ответить ICMP-сообщением о недоступности порта. Если хост не работает, в подсказке будут различные сообщения об ошибках ICMP, такие как превышение TTL или отсутствие ответа.

Порт по умолчанию для UDP ping - 40, 125. Пинг UDP - хороший метод для использования при обнаружении хостов для хостов за брандмауэром и фильтрами. Это потому, что большинство брандмауэров ищут и блокируют TCP, но разрешают трафик протокола UDP.

Чтобы запустить обнаружение хостов Nmap с помощью UDP ping, используйте следующую команду:

sudo nmap -sn -PU scanme.nmap.org

Выходные данные вышеуказанной команды можно проверить с помощью Wireshark, как показано на снимке экрана ниже. Используемый фильтр Wireshark - udp.порт == 40125

Как вы можете видеть на скриншоте выше, Nmap отправляет UDP-пинг на IP 45.33.32.156 (сканмэ.nmap.org). Сервер отвечает сообщением о недоступности ICMP, что указывает на то, что хост работает.

5. ARP Ping

Мы не можем забыть метод ARP ping, который очень хорошо работает для обнаружения хоста в локальных сетях. Метод ARP ping работает, отправляя серию ARP-зондов на указанный диапазон IP-адресов и обнаруживая активные хосты. ARP ping быстрый и очень надежный.

Чтобы запустить ARP ping с помощью Nmap, используйте команду:

sudo nmap -sn -PR 192.168.0.1/24

Если вы изучите команду с помощью Wireshark и отфильтруете ARP из источника 192.168.0.30, вы получите снимок экрана с пробными запросами ARP Broadcast, как показано ниже. Используемый фильтр Wireshark: arp.src.proto_ipv4 == 192.168.0.30

TCP SYN Stealth

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

Я не буду вдаваться в подробности того, как работает TCP SYN / ACK, но вы можете узнать больше об этом из различных ресурсов, представленных ниже:

Чтобы запустить скрытое сканирование Nmap TCP SYN, используйте команду:

sudo nmap -sS 192.168.0.1/24

Я предоставил Wireshark захват команды Nmap -sS и результатов сканирования Nmap, изучил их и посмотрел, как это работает. Ищите неполные запросы TCP с пакетом RST.

Заключение

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

Изучите Nmap, чтобы получить более глубокие знания.

Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...
Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...