В этом руководстве основное внимание будет уделено ключевому использованию 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, но вы можете узнать больше об этом из различных ресурсов, представленных ниже:
- https: // linkfy.в / tcpWiki
- https: // linkfy.к / 3-стороннее-рукопожатие-объяснение
- https: // linkfy.к / 3-сторонняя анантомия
Чтобы запустить скрытое сканирование Nmap TCP SYN, используйте команду:
sudo nmap -sS 192.168.0.1/24Я предоставил Wireshark захват команды Nmap -sS и результатов сканирования Nmap, изучил их и посмотрел, как это работает. Ищите неполные запросы TCP с пакетом RST.
- https: // linkfy.в / wirehark-capture
- https: // linkfy.в / nmap-output-txt
Заключение
Напомним, что мы сосредоточились на обсуждении того, как использовать функцию обнаружения хостов Nmap и получить информацию об указанном хосте. Мы также обсудили, какой метод использовать, когда вам нужно выполнить обнаружение хостов для хостов за брандмауэрами, заблокировать запросы ping ICMP и многое другое.
Изучите Nmap, чтобы получить более глубокие знания.