Nmap (Русский)
Состояние перевода: На этой странице представлен перевод статьи Nmap. Дата последней синхронизации: 10 декабря 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Nmap (“Network Mapper”) — инструмент с открытым исходным кодом для исследования сети и аудита безопасности. Он был разработан для быстрого сканирования больших сетей, хотя прекрасно работает и с отдельными хостами. Nmap использует raw IP-пакеты для определения, какие хосты доступны в сети, какие сервисы (имя и версия приложения) на них запущены, какие операционные системы (и версии ОС) на них установлены, какие типы пакетных фильтров/межсетевых экранов используются, и десятки других характеристик. Хотя Nmap обычно используется для аудита безопасности, многие системные и сетевые администраторы находят его полезным для выполнения рутинных задач, таких как инвентаризация сети, управление графиком обновления служб и мониторинг времени работы хостов или служб.
Важно: Сканирование чужих сетей является незаконным в довольно многих юрисдикциях. Дважды проверьте, что вы сканируете только свои собственные узлы (смотрите раздел #Сканирование с целью составления списка), или получите разрешение у соответствующего владельца, прежде чем выполнять сканирование!
Установка
Также есть графический интерфейс zenmap AUR , но в этой статье рассматривается только использование командной строки.
Использование
Определение цели сканирования
Совет: Чтобы вывести все пакеты, которые отправляет и получает Nmap, используйте опцию —packet-trace .
Есть несколько способов задать цель, которую Nmap должен будет просканировать. Самый простой способ — написать адрес или домен:
$ nmap scanme.nmap.org $ nmap 74.207.244.221
Определение нескольких целей
С помощью CIDR-нотации можно задать диапазон адресов. Следующий пример будет сканировать все 256 IP-адресов, начинающихся на 10.1.1 :
$ nmap 10.1.1.0/24
Примечание: Число 0 в данном примере ни на что не влияет: nmap 10.1.1.0/24 и, к примеру, nmap 10.1.1.134/24 означают одно и то же.
Можно задать диапазон через дефис. Пример сканирования 10.1.50.1 , 10.1.51.1 и 10.1.52.1 :
$ nmap 10.1.50-52.1
Задать определённые значения через запятую:
$ nmap 10.1.50,51,52,57,59.1
$ nmap 10.1,2.50-52.1/30 10.1.1.1 10.1.1.2
Сканирование с целью составления списка
Опция -sL (list scan) полезна для проверки, что вы задали правильные цели сканирования, перед выполнением реального сканирования:
$ nmap -sL 10.1,2.50-52.1/30 10.1.1.1 10.1.1.2
Запуск с этой опцией просто выведет список всех прописанных адресов без отправки им каких-либо пакетов.
Опции по умолчанию
Если вы укажете только IP-адрес или домен без дополнительных опций:
$ nmap 74.207.244.221
Nmap сделает следующее:
- Домен будет преобразован в IP-адрес или, наоборот, IP-адрес будет преобразован в домен с помощью reverse-DNS (для отключения добавьте опцию -n ).
- Выполнится пинг-сканирование с использованием TCP ACK:80 и ICMP. Это эквивалентно -PA -PE (для отключения добавьте опцию -PN ).
- Выполнится сканирование 1000 самых популярных портов. При запуске от имени root используется скрытное SYN-сканирование. При запуске от имени пользователя используется сканирование с помощью системного вызова connect .
Пинг-сканирование
Пинг-сканирование (ping scan, обнаружение хостов) — это метод определения, работают ли указанные компьютеры. По умолчанию Nmap выполняет пинг-сканирование перед сканированием портов, чтобы не тратить время на хосты, которых даже нет в сети. Чтобы выполнить только пинг-сканирование, используйте опцию:
$ nmap -sn 10.1.1.1/8
Nmap проверит доступность каждого указанного хоста и выведет список ответивших хостов.
Nmap использует разные типы пингования при запуске с правами пользователя или root и при сканировании своей или сторонней подсети:
| Внешний IP | Локальный IP | |
|---|---|---|
| Обычный пользователь | TCP SYN на портах 80 и 443 | TCP SYN на портах 80 и 443 и ARP |
| Суперпользователь | TCP SYN на портах 80 и 443 и IGMP | ARP |
Типы пинг-сканирования
| Опция | Тип |
|---|---|
| -Pn | Отключение пинг-сканирования |
| -PS | TCP SYN (по умолчанию на порту 80) |
| -PA | TCP ACK (по умолчанию на порту 80) |
| -PU | UDP |
| -PY | SCTP INIT |
| -PE | ICMP Echo |
| -PP | ICMP timestamp |
| -PM | ICMP address mask |
| -PO | Other IP protocol |
| -PR | ARP сканирование |
-Pn полезен, когда сканируемый хост защищён межсетевым экраном, который блокирует доступ к TCP-портам 80 и 443 и IGMP-запросы, но может принимать подключения на других менее распространённых портах.
Сканирование портов
Порт может быть в трёх основных состояниях:
- открыт ( open ) — на хосте есть программа, которая слушает этот порт и успешно ответила на запрос
- закрыт ( closed ) — хост ответил, что этот порт никто не слушает
- фильтруется ( filtered ) — хост вообще не ответил. Это может означать, что запрос был заблокирован межсетевым экраном
В дополнение к ним существует ещё 3 состояния, в которых Nmap может классифицировать порт. Они используются, когда Nmap не может достоверно определить состояние, но подозревает два из трех возможных состояний:
- open|closed ( unfiltered ) — порт открыт или закрыт (при ACK-сканировании)
- closed|filtered ) — порт закрыт или фильтруется (при сканировании IP ID idle типа)
- open|filtered — порт открыт или фильтруется (например, при UDP-сканировании)
По умолчанию Nmap сканирует 1000 самых популярных портов, указанных в файле /usr/share/nmap/nmap-services . Можно задать сканирование другого количества популярных портов:
$ nmap --top-ports 1000 10.1.1.1
Чтобы задать свои номера портов, используйте опцию -p :
$ nmap -p -25,135-137 10.1.1.1
Определение портов с дефисами и запятыми работает так же, как и #Определение цели сканирования. Кроме того, можно указать все порты до/после заданного, пропуская начальный/конечный порт при использовании дефиса. Например, для сканирования всех возможных 65535 портов (кроме порта 0):
$ nmap -p -
Типы сканирования
| Опция | Тип |
|---|---|
| -sP | Только пинг-сканирование |
| -sS | TCP SYN (скрытное) (По умолчанию при запуске суперпользователем) |
| -sT | TCP с системным вызовом connect (По умолчанию при запуске обычным пользователем) |
| -sA | TCP ACK |
| -sF | TCP FIN |
| -sX | TCP FIN, SYN, ACK |
| -sW | TCP window |
| -sM | TCP сканирование Мэймона (Maimon) |
| -sU | UDP-сканирование |
| -sI | «Ленивое» idle сканирование |
| -b | FTP bounce сканирование |
| -sO | Сканирование других IP-протоколов |
Методы борьбы со сканированием
Модуль PSD для iptables
PSD — модуль расширения для iptables. Он также применяется в некоторых коммерческих маршрутизаторах, использующих Linux.
У него есть 4 параметра:
- —psd-weight-threshold порог , по умолчанию: 21
- —psd-delay-threshold задержка , по умолчанию: 300 (3 секунды)
- —psd-lo-ports-weight вес , по умолчанию: 3
- —psd-hi-ports-weight вес , по умолчанию: 1
Принцип действия PSD простой. Если запросы с одного IP набрали суммарный вес, превышающий заданный порог в течение заданной задержки, то IP классифицируется как сканер портов. В математическом выражении:
lo_ports_weight * REQUESTS_LOW + hi_ports_weight * REQUESTS_HIGH >= threshold
REQUESTS_LOW = число запросов к привилегированным (от 0 до 1023) портам в течение заданной задержки REQUESTS_HI = число запросов к непривилегированным (от 1024 до 65535) портам в течение заданной задержки
Примеры при использовании параметров по умолчанию:
- Если хост обратился как минимум к 7 привилегированным портам в течение 3 секунд, он считается сканером портов.
- Если хост обратился как минимум к 21 непривилегированным портам в течение 3 секунд, он считается сканером портов.
- Если хост обратился к 4 привилегированным и к 9 непривилегированным портам в течение 3 секунд, он считается сканером портов, потому что 4*3 + 9*1 >= 21 .
Избегание обнаружения
Простейший способ обойти PSD — просто сканировать медленно. Для параметров PSD по умолчанию достаточно добавить такую опцию:
$ nmap --scan-delay 3.1 192.168.56.1
Ещё одним интересным фактом о PSD является то, что он не определяет запрос как сканирование порта, если установлены флаги ack или rst (смотрите функцию is_portscan в xt_psd.c).
Также, если вы сканируете порт хоста, а на нём запущена служба HTTP(S), nmap по умолчанию будет использовать User-Agent Mozilla/5.0 (compatible; Nmap Scripting Engine; https://nmap.org/book/nse.html) . Таким образом, ваши действия будут легко обнаружены, особенно если администратор или робот следят за появлением такого User-Agent в журналах сервера. К счастью, nmap позволяет нам легко изменить эту строку: просто добавьте опцию -script-args http.useragent . Источник
Советы и рекомендации
Ограничение скорости сканирования
Сканирование Nmap происходит быстро. Хотя это обычно желательно, иногда это может стать проблемой. Например, когда вы хотите протестировать межсетевой экран вашей системы, не отключая активированные правила обнаружения флуда, или когда вы хотите провести длительное тестирование для определённого порта/сервиса. Следующие опции определяют скорость, с которой Nmap отправляет пакеты.
Чтобы отправлять пакеты не чаще, чем каждые 3,333 секунды:
$ nmap --max-rate 0.3 192.168.56.1
Чтобы отправлять пакеты раз в 3,1 секунды:
$ nmap --scan-delay 3.1 192.168.56.1
Есть и другие опции, которые подробно описаны в nmap(1) .
Считывание целей из файла
Если нужно просканировать большое количество несмежных адресов, то прописывать их все в командной строке обычно неудобно. По этой причине Nmap поддерживает чтение целей из файла с помощью опции -iL (input from a list file):
addresses.txt
10.1.1.1 10.1.1.2 10.1.1-10.3 10.3.1.3 10.3.1.50 10.3.2.55 10.1.1.100 .
$ nmap -iL addresses.txt
Адреса нужно разделять пробельными символами.
Также можно считывать список из стандартного ввода ( — означает стандартный ввод во многих консольных инструментах):
$ echo "10.1.1.1 10.1.1.2 10.1.1-10.3" | nmap -iL -
Исключение целей из сканирования
$ nmap 10.1.1.1-10 --exclude 10.1.1.5,7
Или считывание из файла:
$ nmap 10.1.1.1-10 --excludefile excludeaddr.txt
Подмена
Подмена исходящего IP-адреса:
$ nmap -S 192.168.56.35 -e vboxnet0 192.168.56.11
$ nmap --spoof-mac 01:02:03:04:05:06 192.168.56.11
Подмена исходящего порта:
$ nmap --source-port 22 192.168.56.11
Ускорение сканирования
По умолчанию nmap выполняет DNS/reverse-DNS запросы. Чтобы отключить это, используйте опцию -n :
$ nmap -n 192.168.56.0/24
Это ускоряет сканирование примерно в 2 раза.
Сканирование порта 0
По умолчанию порт с номером 0 не сканируется, даже если указать опцию -p — . Чтобы просканировать и его тоже, явно задайте диапазон с его использованием. Например, чтобы просканировать абсолютно все порты:
$ nmap -p 0-65535
Имейте в виду, что этот номер порта считается недействительным в стандартах RFC. Однако он может использоваться, например, вредоносными программами, чтобы спрятаться более наивных сканеров портов.
Форматы вывода файлов
Помимо вывода в терминал, Nmap умеет записывать результаты сканирования в файл:
- -oN файл
- -oX файл
- -oG файл
- -oA имя
Например, чтобы записать вывод в терминал, в файл и в XML-файл:
$ nmap -oN output.txt -oX output.xml scanme.nmap.org
Смотрите также
- Wikipedia:ru:nmap
- Официальный сайт
- Nmap Network Scanning book
Port filtered что это
Хотя Nmap постоянно наращивала функциональность, изначально утилита разрабатывалась как эффективный сканер портов, и она по-прежнему сохраняет свои основные функции. Простой командой nmap будет произведено сканирование более чем 1660 TCP портов на . В то время как многие сканеры портов традиционно разделяют все порты на закрытые и открытые, Nmap имеет более подробную шкалу деления. Она подразделяет порты на шесть состояний: открыт , закрыт , фильтруется , не фильтурется , открыт|фильтруется или закрыт|фильтруется .
Эти состояния не являются собственно характеристиками самих портов, а лишь описывают, как Nmap видит их. Например, сканирование из той же сети, что и цель, может показать, что порт 135/tcp открыт, в то время как сканирование из Интернета в то же время и с теми же опциями может показать, что порт фильтруется .
Шесть состояний портов распознаваемых Nmap
Приложение принимает запросы на TCP соединение или UDP пакеты на этот порт. Обнаружение этого состояния обычно является основной целью сканирования. Люди разбирающиеся в безопасности знают, что каждый открытый порт это прямой путь к осуществлению атаки. Атакующие хотят использовать открытые порты, а администраторы пытаются закрыть их или защитить с помощью брадмауэров так, чтобы не мешать работе обычных пользователей. Октрытые порты также интересны с точки зрения сканирования, не связанного с безопасностью, т.к. они позволяют определить службы доступные в сети.
Закрытый порт доступен (он принимает и отвечает на запросы Nmap), но не используется каким-либо приложением. Они могут быть полезны для установления, что по заданному IP адресу есть работающий хост (определение хостов, ping сканирование), или для определения ОС. Т.к. эти порты достижимы, может быть полезным произвести сканирование позже, т.к. некоторые из них могут открыться. Администраторы могут заблокировать такие порты с помощью брандмауэров. Тогда их состояние будет определено как фильтруется, что обсуждается далее.
Nmap не может определить, открыт ли порт, т.к. фильтрация пакетов не позволяет достичь запросам Nmap этого порта. Фильтрация может осуществляться выделенным брадмауэром, правилами роутера или брандмауэром на целевой машине. Эти порты бесполезны для атакующих, т.к. предоставляют очень мало информации. Иногда они отвечают ICMP сообщениями об ошибке, такими как тип 3 код 13 (destination unreachable: communication administratively prohibited (цель назначения недоступна: связь запрещена администратором)), но чаще встречаются фильтры, которые отбрасывают запросы без предоставления какой-либо информации. Это заставляет Nmap совершить еще несколько запросов, чтобы убедиться, что запрос был отброшен фильтром, а не затором в сети. Это очень сильно замедляет сканирование.
Это состояние означает, что порт доступен, но Nmap не может определить открыт он или закрыт. Только ACK сканирование, используемое для определения правил брандмауэра, может охарактеризовать порт этим состоянием. Сканирование не фильтруемых портов другими способами, такими как Window сканирование, SYN сканирование или FIN сканирование может помочь определить, является ли порт открытым.
Nmap характеризует порт таким состоянием, когда не может определить октрыт порт или фильтруется. Это состояние возникает при таких типах сканирования, при которых открытые порты не отвечают. Отсутствие ответа также может означать, что пакетный фильтр не пропустил запрос или ответ не был получен. Поэтому Nmap не может определить наверняка открыт порт или фильтруется. При сканировании UDP, по IP протоколу, FIN, NULL, а также Xmas порт может быть охарактеризован таким состоянием.
Это состояние используется, когда Nmap не может определить закрыт порт или фильтруется. Используется только при сканировании IP ID idle типа.
Основы Nmap: типы сканирования и флаги
Nmap — это самый известный инструмент сканирования среди пентестеров и хакеров. По сути, это сканер портов, который помогает сканировать сети и идентифицировать доступные порты и службы, а также предоставляет дополнительную информацию о целях (включая обратные DNS-имена, предположительную операционную систему, типы устройств и MAC-адреса). Он также пригодится во время аудита сети.
Базовый синтаксис Nmap:
$ nmap [FLAGS] [IP]
Обратите внимание, что выполнения некоторых типов сканирования могут потребоваться привилегии sudo.
Флаги Nmap
Nmap — это мощный инструмент сканирования сетей, который позволяет настраивать сканирование с помощью передаваемых через командную строку флагов. Несколько важных флагов:
- -h: вывод краткой справки
- -sS: выполнить сканирование TCP SYN
- -sU: выполнить сканирование UDP
- -sV: проверить открытые порты для определения информации о службе/версии
- -O: включить обнаружение ОС
- -v: включить расширенный вывод (выводит больше информации). Уровень расширенности можно установить следующим образом:
- -vv: 2-й уровень verbosity. Минимальный рекомендуемый уровень verbosity.
- -v3: 3-й уровень verbosity. Указав число, можно задать уровень verbosity.
- -oN: перенаправить обычный вывод в заданное имя файла
- -oX: делать вывод в чистом формате XML и сохранять его в заданном файле.
- -oG: предоставить вывод, который можно обработать через grep, и сохранять его в файл. Это устаревший формат, так как пользователи теперь переходят на XML-выводы.
- nmap -p 80 127.0.0.0.1: сканируется порт 80 на localhost
- nmap -p 1-100 127.0.0.1: сканирует порты с 1 по 100 на localhost.
- nmap -p- 127.0.0.1: сканирует все порты на localhost.
Типы сканирования в Nmap
Nmap поддерживает разные типы сканирования. Самые популярные из них:
1: TCP (-sT)
В этом типе сканирования Nmap отправляет TCP-пакет на порт с установленным флагом SYN. В этом случае может произойти следующее:
- Цель отвечает пакетом RST – значит, порт закрыт.
- Цель вообще не отвечает. Возможно, из-за того, что брандмауэр отбрасывает все входящие пакеты и в этом случае порт будет считаться отфильтрованным.
- Цель отвечает TCP-пакетом с установленными флагами SYN/ACK, значит, порт открыт. А затем Nmap ответит TCP-пакетом с установленным флагом ACK, что завершает трехстороннее рукопожатие TCP.
Это не очень надежный метод сканирования, так как брандмауэр можно легко настроить на ответные пакеты RST или сбрасывание всех входящих пакетов. Кроме того, этот метод очень медленный, поскольку он ожидает всего трехэтапного рукопожатия TCP.
2: Сканирование SYN “Half-open” (-sS)
Сканирование SYN, или так называемое “полуоткрытое”, или “скрытое сканирование” — улучшение по сравнению с предыдущим методом. В предыдущем методе после получения пакета SYN/ACK мы отправляли обратно TCP-пакет с установленным флагом ACK, теперь мы отправляем RST-пакет. Это предотвращает повторные попытки сервера выполнить запросы и значительно сокращает время сканирования.
Этот метод является усовершенствованием предыдущего, потому что:
- Он быстрее
- Может обойти примитивные брандмауэры
- Часто SYN-сканирование не регистрируется приложениями на портах, поскольку большинство приложений начинают регистрировать соединение только после того, как оно полностью установлено, чего нельзя сказать о SYN-сканировании
Однако в производственных средах запускать SYN-сканирование не рекомендуется, так как это может привести к выходу из строя некоторых нестабильных приложений. Также следует отметить, что для сканирования SYN требуются привилегии sudo, поскольку оно требует обработки неформатированных пакетов.
Фактически при запуске с привилегиями sudo nmap по умолчанию использует SYN-сканирование. А в противном случае по умолчанию используется сканирование TCP.
3: Сканирование UDP (-sU)
Сканирование UDP менее надежно, чем два предыдущих, поскольку UDP-соединения не имеют статических данных. Это означает, что нет “фидбек механизма”, такого, как TCP. UDP работает по принципу “сделал и забыл” — он отправляет пакеты, направленные на определенные порты, и надеется, что они дойдут. При этом больше внимания уделяется скорости, а не качеству. Однако отсутствие механизма обратной связи затрудняет идентификацию открытых портов.
При отправке UDP-пакета на целевой порт возможны три сценария:
- Ответ не получен, тогда nmap помечает порт как open|filtered. В таком случае он отправляет еще один UDP-пакет для повторной проверки и если ответа снова нет, он помечает порт как open|filtered и идет дальше.
- Он может получить ответ UDP, но это бывает очень редко. В таком случае порт помечается как open.
- Если порт closed и он получает обратный echo -запрос ICMP, это означает, что порт недоступен.
Специальные виды сканирования в Nmap
Кроме этих типов сканирования, есть несколько менее популярных, которые более “скрытны”, чем сканирование TCP SYN. К ним относятся следующие:
1: Сканирование TCP Null (-sN)
При сканировании TCP Null у отправленных TCP-пакетов нет установленных флагов. Если порт closed, цель должна ответить RST (согласно RFC).
2: Сканирование TCP FIN (-sF)
Этот способ сканирования очень похож на TCP Null, за исключением того, что вместо отправки полностью пустого TCP-пакета он отправляет пакет с установленным флагом FIN, который используется для корректного закрытия соединения. Следовательно, цель должна ответить RST для closed портов, в соответствии с RFC.
3: Сканирование TCP Xmas (-sX)
Сканирование TCP Xmas также похоже на два предыдущих метода, за исключением того, что они используют TCP-пакеты с установленными флагами PSH, URG и FIN. Как и в предыдущих двух типах сканирования, этот тип также ожидает пакеты RST для closed портов в соответствии с RFC.
Ограничения
Поскольку эти сканирования имеют схожее поведение, они также имеют аналогичные результаты с UDP-сканированием. В этом случае могут быть только три ответа:
- open|filtered : когда нет ответа, порт классифицируется так, потому что отсутствие ответа может означать только две вещи:
- Порт открыт
- Порт защищен брандмауэром, поэтому filtered
Также отметим, что, хотя RFC 793 требует, чтобы сетевые хосты отвечали на искаженные пакеты TCP-пакетом RST для closed портов и вообще не отвечали для open портов, некоторые системы отвергают это соглашение. Такое поведение в основном наблюдается на серверах Microsoft Windows и некоторых устройствах CISCO, где все некорректно сформированные пакеты отбрасываются по умолчанию.
Сканирование сети на наличие хостов с помощью Nmap
Одна из самых важных вещей, которую нужно сделать при подключении к сети — получить список всех активных хостов в сети перед дальнейшим исследованием. Это можно сделать с помощью “Ping Sweep”, который включает отправку ICMP-пакета на все IP-адреса в сети и ожидает ответы. В этом случае активными считаются хосты, ответившие ICMP-пакетом.
Указать целевые диапазоны IP-адресов можно с помощью дефисов или через CIDR следующим образом:
$ nmap -sn 192.168.0.1-254$ nmap -sn 192.168.0.0/24Флаг -sn подавляет любое сканирование портов и заставляет nmap полагаться исключительно на эхо-пакеты ICMP (или ARP-запросы при запуске с привилегиями суперпользователя) для идентификации активных хостов в сети. Он также отправляет TCP-пакет SYN на целевой порт 443 и TCP-запрос ACK (TCP SYN, если запущен с привилегиями суперпользователя) на целевой порт 80.
Скриптовый движок Nmap
Nmap Scripting Engine (NSE) — это мощное дополнение к Nmap, которое позволяет расширить его функционал. Написанный на языке Lua, он позволяет писать сценарии и автоматизировать многие виды задач (к примеру, тестирование на уязвимости и взлом).
Несколько полезных категорий:
- safe: Не влияет на цель
- intrusive: Небезопасный: может повлиять на цель
- vuln: Сканировать на наличие уязвимостей
- exploit: Попытаться использовать уязвимость
- auth: Попытаться обойти аутентификацию для запущенных служб
- brute: Попытаться перебрать учетные данные для запущенных служб
- discovery: Попытка запросить у запущенных служб дополнительную информацию о сети
Для запуска скрипта нужно указать его в виде –script=
Также можно указать несколько скриптов для одновременного запуска, разделяя их имена запятыми, например –script=,.
Некоторым скриптам нужен аргумент, который можно указать так –script-args .
Отдельные скрипты имеют встроенное меню справки, которое можно вызвать с помощью:
$ nmap --script-help
Полный список скриптов можно найти здесь .
Подводим итоги
У Nmap есть много бесплатных и хорошо оформленных материалов. Вы можете найти больше информации о флагах, скриптах и многом другом на официальном сайте . Поэкспериментируйте с разными флагами и сценариями и посмотрите, как отличаются их результаты в разных средах.
Использование программы командной строки PortQry
PortQry — это средство командной строки, которое можно использовать для устранения неполадок с подключением TCP/IP. Это средство сообщает о состоянии целевых портов TCP и UDP на локальном или удаленном компьютере. Здесь также содержатся подробные сведения об использовании портов локального компьютера.
Так как PortQry предназначен для использования в качестве средства устранения неполадок, пользователи, которые используют его для устранения конкретной проблемы, должны обладать достаточными знаниями о своей вычислительной среде.
PortQry можно использовать из командной строки в одном из нескольких режимов:
- Режим командной строки. Этот режим можно использовать для устранения неполадок на локальных или удаленных компьютерах.
- Локальный режим. В этом режиме можно использовать несколько параметров, предназначенных для устранения неполадок на локальном компьютере.
- Интерактивный режим. Аналогично режиму командной строки, но можно использовать сочетания команд и параметров.
Вы можете скачать отдельное средство с именем PortQryUI, включающее графический пользовательский интерфейс для PortQry. PortQryUI имеет несколько функций, которые упрощают использование PortQry. Сведения о том, как получить средство PortQryUI, см. в статье PortQryUI — пользовательский интерфейс для средства проверки портов в командной строке PortQry.
Применимо к: Поддерживаемые версии Windows
Тесты и результаты PortQry
Типичные средства сканирования портов сообщают о том, что порт имеет состояние LISTENING , если целевой UDP-порт не возвращает сообщение ICMP «Назначение недоступно». Этот результат может быть неверным по одной или обоим из следующих причин:
- Если нет ответа на направленную датаграмму, целевой порт может быть ФИЛЬТРОВАН.
- Большинство служб не отвечают на неформатированную пользовательскую датаграмму, отправленную им. Как правило, служба или программа, прослушивающая порт, реагирует только на сообщение, использующее определенный уровень сеанса или протокол прикладного уровня.
Чтобы получить более точные и полезные результаты, PortQry использует двухфакторный процесс тестирования.
Шаг 1. Проверка состояния порта
PortQry сообщает о состоянии порта в виде одного из трех значений:
- LISTENING: этот ответ указывает, что процесс прослушивает целевой порт. PortQry получил ответ от целевого порта.
- NOT LISTENING: этот ответ указывает, что ни в каких процессах не выполняется прослушивание целевого порта. PortQry получил одно из следующих сообщений ICMP от целевого порта:
Назначение недоступно Порт недоступен
Шаг 2. Специализированные тесты
Если нет ответа от целевого порта UDP, PortQry сообщает, что порт прослушивается или фильтруется. Однако при устранении неполадок с подключением полезно узнать, фильтруется ли порт или прослушивается. Это особенно верно в среде, содержащей один или несколько брандмауэров.
PortQry уточняет отчет о состоянии порта, используя второй набор тестов, которые могут взаимодействовать со службой или программой, прослушивающей целевой порт. Для этого теста PortQry выполняет следующие действия:
- PortQry использует файл служб, расположенный в папке %SYSTEMROOT%\System32\Drivers\Etc , чтобы определить, какая служба прослушивает каждый порт.
- PortQry создает сообщение, специально созданное для ожидаемой службы или программы, а затем отправляет его на целевой порт. В зависимости от службы или программы сообщение может запрашивать сведения, полезные для устранения неполадок, например следующие:
- Сведения о домене и контроллере домена (запросы LDAP)
- Зарегистрированные клиентские службы и порты (запросы RPC)
- Разрешен ли анонимный доступ (запросы FTP)
- MAC-адрес (запросы NetBIOS)
- Mspclnt.ini сведения о файле (запросы ISA Server)
Дополнительные тесты для устранения неполадок на локальном компьютере
Если вам нужно устранить неполадки с портами на компьютере, где вы установили PortQry, используйте PortQry в локальном режиме. При использовании параметров локального режима в командной строке на локальном компьютере можно выполнять следующие задачи:
- Перечисление сопоставлений портов
- Мониторинг определенного порта на наличие изменений
- Мониторинг определенного процесса на наличие изменений
Использование PortQry в режиме командной строки
PortQry можно запустить в командной строке так же, как и любое другое средство командной строки. В большинстве примеров в этой статье показаны команды PortQry командной строки. В режиме командной строки в командную строку можно добавить несколько параметров, чтобы указать, какой запрос следует выполнять и как его выполнять. Чтобы запустить PortQry в режиме командной строки, выполните команду, которая использует следующий синтаксис:
portqry.exe -n [options]В этой команде name_to_query> является IP-адрес, имя компьютера или домен для запроса. Это обязательный параметр. [параметры] являются необязательными параметрами.
Параметры PortQry для режима командной строки
В обычном режиме командной строки доступны следующие параметры:
Примечания к параметрам в режиме командной строки
- Любое значение номера порта должно быть допустимым номером порта от 1 до 65535 включительно.
- Параметры -e , -o и -r являются взаимоисключающими. Одна команда PortQry может использовать только один из этих параметров.
- Запрос к UDP-порту 389 (LDAP) может не работать с контроллерами домена под управлением Windows Server 2008. Чтобы проверка доступность службы, работающей на UDP-порту 389, можно использовать Nltest вместо PortQry. Дополнительные сведения см. в разделе Nltest.
- При запросе порта 135 (RPC) с помощью -e или -o PortQry возвращает все конечные точки, зарегистрированные в средстве сопоставления конечных точек RPC.
Важно! При использовании -r PortQry не запрашивает сопоставитель конечных точек RPC.
Примечание. Не важно, возвращает ли DNS-сервер положительный или отрицательный ответ. Любой ответ указывает, что порт прослушивает.
Использование PortQry в локальном режиме (командная строка)
Вместо того, чтобы запрашивать порт на удаленном целевом компьютере, можно использовать PortQry в локальном режиме, чтобы получить подробные сведения о портах TCP и портах UDP на локальном компьютере, где выполняется PortQry. Используйте следующий синтаксис для запуска PortQry в локальном режиме:
portqry -local | -wpid | -wport [-wt ] [-l ] [-v]Заполнители в этом синтаксисе описаны в следующей таблице параметров локального режима:
- Перечисление всех сопоставлений портов TCP и UDP, которые в настоящее время активны на локальном компьютере. Эти выходные данные похожи на выходные данные, создаваемые netstat.exe -an командой .
- На компьютерах, поддерживающих сопоставления PID-портов, выходные данные включают PID процесса, который использует порт на локальном компьютере. Если вы используете подробный параметр ( -v ), выходные данные также включают имена служб, к которым принадлежит PID, и перечисляют все модули, загруженные процессом. Эти сведения можно использовать, чтобы определить, какие порты связаны с определенной программой или службой, запущенной на компьютере.
- Отслеживайте определенный порт на наличие изменений. Значение port_number> представляет отслеживаемое порт.
- В случае tcp-порта PortQry сообщает об изменениях между следующими состояниями:
- CLOSE_WAIT
- ЗАКРЫТ
- УСТАНОВЛЕНО
- FIN_WAIT_1
- LAST_ACK
- СЛУШАЙ
- SYN_RECEIVED
- SYN_SEND
- TIMED_WAIT
- Отслеживайте определенный PID на наличие изменений в количестве и состоянии подключений. Значение process_number> представляет идентификатор PID для отслеживания.
- Чтобы остановить мониторинг, нажмите клавишу ESC.
- Проверьте состояние целевого объекта, определяемого -wport или «-wpid через интервал, представленный значением /seconds> .
- Значение секунд> должно находиться в диапазоне от 1 до 1200 (включительно).
- Значение по умолчанию — 60 .
- Нельзя использовать -wt сам по себе или вместе с -local .
- Значение filename.txt> представляет имя и расширение файла журнала. Это значение не может включать пробелы.
- При выполнении команды PortQry создает файл журнала в каталоге, в котором он установлен.
- Если файл уже существует, PortQry просит подтвердить его перезапись (если вы также не используете -y параметр ).
- При использовании -y вместе с -l параметром PortQry перезаписывает существующий файл журнала без запроса на подтверждение действия.
- Если командная строка PortQry не включает -l , PortQry игнорирует -y .
Примечания для параметров в локальном режиме
- Параметры -local , -wport и -wpid являются взаимоисключающими. В одной командной строке PortQry можно использовать только один из этих параметров.
- Параметр -q не работает в локальном режиме.
- В некоторых случаях PortQry может сообщить, что процесс простоя системы (PID 0) использует некоторые TCP-порты. Это может произойти, если локальная программа подключается к TCP-порту, а затем останавливается. Несмотря на то, что программа больше не выполняется, TCP-подключение программы к порту может оставаться в состоянии «Время ожидания» в течение нескольких минут. В этом случае PortQry может обнаружить, что порт используется, но не может определить программу, которая использует порт, так как PID был освобожден. По умолчанию порт остается в состоянии «Timed Wait» в два раза дольше максимального времени существования сегмента.
- Для каждого процесса PortQry сообщает столько сведений, сколько он может получить. Доступ к некоторым сведениям ограничен. Например, доступ к сведениям о модулях для процессов простоя и CSRSS запрещен, так как их ограничения доступа не позволяют коду уровня пользователя открывать их. Для достижения наилучших результатов выполните команду локального режима в контексте локального администратора или учетной записи с похожими учетными данными.
- Если вы используете или -wport -wpid вместе с -l , используйте клавишу ESC, чтобы прервать и выйти из PortQry, а не CTRL+C. Необходимо нажать клавишу ESC, чтобы убедиться, что PortQry правильно закрывает файл журнала и завершает работу. Если нажать клавиши CTRL+C вместо ESC, чтобы остановить PortQry, файл журнала может стать пустым или поврежденным.
Использование PortQry в интерактивном режиме
При устранении неполадок с подключением между компьютерами может потребоваться ввести много повторяющихся команд. Такие действия можно упростить с помощью PortQry в интерактивном режиме.
Интерактивный режим аналогичен интерактивным функциям в служебной программе Nslookup DNS или в программе Nblookup WINS.
Чтобы запустить PortQry в интерактивном режиме -i , используйте параметр . Например, выполните следующую команду:
portqry -iВыходные данные этой команды выглядят примерно так:
Portqry Interactive Mode Type 'help' for a list of commands Default Node: 127.0.0.1 Current option values: end port= 80 protocol= TCP source port= 0 (ephemeral) >Команды интерактивного режима
В интерактивном режиме можно использовать следующие команды:
- Значение name> представляет имя или IP-адрес компьютера для запроса. Это значение не может включать пробелы.
- Значение по умолчанию — 127.0.0.1 (локальный компьютер).
- Запрашивает текущее назначение с использованием текущих параметров.
- По умолчанию используется tcp протокол .
- Порт назначения по умолчанию — TCP-порт 80.
- Исходный порт по умолчанию — порт 0 (временный порт).
- Для выполнения любого из нескольких распространенных запросов с командой query можно использовать один из нескольких сочетаний клавиш. Список доступных сочетаний клавиш см. в разделе Сочетания клавиш запросов в интерактивном режиме.
- В этой команде параметр> представляет имя параметра для задания, < а значение> — новое значение параметра.
- Чтобы просмотреть список текущих значений доступных параметров, введите set all .
- Список доступных параметров см. в разделе Параметры интерактивного режима.
Сочетания запросов в интерактивном режиме
Вы можете использовать следующие сочетания клавиш вместе с командой query для выполнения распространенных запросов без необходимости задавать параметры порта и протокола. Используйте следующий синтаксис.
В этой команде ярлык> представляет один из сочетаний клавиш из следующей таблицы. Если опустить ярлык, q команда запрашивает TCP-порт 80.
Ярлык Порты для запроса dns TCP-порт 53, UDP-порт 53. ftp TCP-порт 21 imap TCP-порт 143 ipsec UDP-порт 500 isa TCP-порт 1745, UDP-порт 1745 ldap TCP-порт 389, UDP-порт 389 l2tp UDP-порт 1701 mail TCP-порты 25, 110 и 143 pop3 TCP-порт 110 rpc TCP-порт 135, UDP-порт 135 smtp TCP-порт 25 snmp UDP-порт 161 sql TCP-порт 1433, UDP-порт 1434 tftp UDP-порт 69 Например, вход q dns в интерактивный режим эквивалентен запуску portqry -n 127.0.0.1 -p both -e 135 в обычном режиме командной строки.
Параметры интерактивного режима
С помощью set команды можно задать такие параметры, как исходный порт или задержка медленной связи. Используйте следующий синтаксис.
В этой команде параметр> представляет имя параметра для задания, а значение> — новое значение параметра.
- Значение port_number> представляет порт, используемый PortQry для отправки запроса.
- PortQry не может использовать порт, который уже использует другой процесс.
- Если указать нулевой номер порта, PortQry использует временный порт.
- Значение community_name> представляет имя сообщества SNMP для запроса.
- Если служба SNMP не прослушивает целевой порт, PortQry игнорирует -cn .
- Имя сообщества по умолчанию — public .
- По умолчанию, если в качестве назначения запроса задан IP-адрес, PortQry разрешает IP-адрес в имя. При изменении этого параметра PortQry пропускает шаг разрешения имен.
- Чтобы снова включить обратный поиск по имени, выполните set nr второй раз.
- При изменении этого параметра PortQry удвоит время ожидания ответа от порта UDP до того, как PortQry определит, что порт не прослушивается или фильтруется. При выполнении запросов по медленным или ненадежным сетевым каналам обычное время ожидания может быть слишком коротким для получения ответа.
- Чтобы снова отключить задержку медленной связи, выполните set sl второй раз.
Предположим, вы хотите запросить компьютер с IP-адресом 10.0.1.10. В командной строке интерактивного режима введите n 10.0.1.10 . Эта команда создает выходные данные, аналогичные следующему фрагменту:
Default Node: 10.0.1.10 >Чтобы отправить ЗАПРОС DNS, введите в q dns командной строке интерактивного режима. Эта команда создает выходные данные, аналогичные следующему фрагменту:
resolving service name using local services file. UDP port resolved to the 'domain' service IP address resolved to myserver.contoso.com querying. UDP port 53 (domain service): LISTENING >Настройка связи между портами и службами
По умолчанию каждый компьютер под управлением Windows имеет файл служб, который находится в папке %SYSTEMROOT%\System32\Drivers\Etc . PortQry использует этот файл для разрешения номеров портов в соответствующие имена служб. PortQry использует эти сведения для выбора формата для своих запросов. Этот файл можно изменить, чтобы направить PortQry на отправку форматированных сообщений на другой порт. Например, в типичном файле служб отображается следующая запись:
ldap 389/tcp #Lightweight Directory Access ProtocolВы можете изменить эту запись порта или добавить дополнительную запись. Чтобы заставить PortQry отправлять запросы LDAP на порт 1025, измените запись следующим образом:
ldap 1025/tcp #Lightweight Directory Access ProtocolПримеры
В следующих примерах показано, как использовать PortQry и его параметры:
Локальный режим
- Запрос к локальному компьютеру
- Запрос к локальному компьютеру, если доступ может быть ограничен
- Мониторинг идентификатора процесса с использованием определенного интервала
- Запрос по медленной ссылке
Режим командной строки
- Указание целевого объекта и протокола
- Указание одного или нескольких целевых портов
- Указание файла журнала для выходных данных PortQry
- Использование пакетного файла для запуска PortQry в тихом режиме
- Порт запроса 135 (служба RPC)
Запрос к локальному компьютеру
Выходные данные portqry -local выглядят примерно так:
TCP/UDP Port Usage 96 active ports found Port Local IPState Remote IP:Port TCP 80 0.0.0.0 LISTENING 0.0.0.0:18510 TCP 80 169.254.149.9 TIME WAIT 169.254.74.55:3716 TCP 80 169.254.149.9 TIME WAIT 169.254.200.222:3885 TCP 135 0.0.0.0 LISTENING 0.0.0.0:10280 UDP 135 0.0.0.0 : UDP 137 169.254.149.9 : UDP 138 169.254.149.9 : TCP 139 169.254.149.9 LISTENING 0.0.0.0:43065 TCP 139 169.254.149.9 ESTABLISHED 169.254.4.253:4310 TCP 139 169.254.149.9 ESTABLISHED 169.254.74.55:3714Запрос локального компьютера, если доступ может быть ограничен
При запуске PortQry в локальном режиме, как в предыдущем примере, могут появиться выходные данные, похожие на приведенный ниже фрагмент. Такие выходные данные указывают на то, что контекст безопасности, используемый PortQry, не имеет достаточных разрешений для доступа ко всем запрошенным сведениям.
Port and Module Information by Process Note: restrictions applied to some processes may prevent Portqry from accessing more information For best results run Portqry in the context of the local administrator ====================================================== Process ID: 0 (System Idle Process) PIDPortLocal IPState Remote IP:Port 0TCP 4442 169.254.113.96 TIME WAIT 169.254.5.136:80 0TCP 4456 169.254.113.96 TIME WAIT 169.254.5.44:445 Port Statistics TCP mappings: 2 UDP mappings: 0 TCP ports in a TIME WAIT state: 2 = 100.00% Could not access module information for this process ======================================================Мониторинг идентификатора процесса с использованием определенного интервала
Следующая команда отслеживает определенный процесс:
portqry.exe -wpid 1276 -wt 2 -v -l pid.txtВ результате PortQry выполняет следующие действия:
- Определяет процесс с 1276 PID и проверяет состояние портов, которые он использует каждые две секунды до нажатия клавиши ESC.
- Создает файл журнала pid.txt. Если файл с таким именем уже существует, PortQry предложит подтвердить, что вы хотите перезаписать файл.
- Записывает все выходные данные в файл журнала, включая дополнительные подробные выходные данные.
Содержимое файла журнала выглядит следующим фрагментом:
PortQry Version 2.0 Log File System Date: Command run: portqry -wpid 1276 -wt 2 -v -l pid.txt Local computer name: host123 Watching PID: 1276 Checking for changes every 2 seconds verbose output requested Service Name: DNS Display Name: DNS Server Service Type: runs in its own process ============ System Date: ====================================================== Process ID: 1276 (dns.exe) Service Name: DNS Display Name: DNS Server Service Type: runs in its own process PIDPortLocal IPState Remote IP:Port 1276TCP 53 0.0.0.0 LISTENING 0.0.0.0:2160 1276TCP 1087 0.0.0.0 LISTENING 0.0.0.0:37074 1276UDP 1086 0.0.0.0 : 1276UDP 2126 0.0.0.0 : 1276UDP 53 127.0.0.1 : 1276UDP 1085 127.0.0.1 : 1276UDP 53 169.254.11.96 : Port Statistics TCP mappings: 2 UDP mappings: 5 TCP ports in a LISTENING state: 2 = 100.00% Loaded modules: C:\WINDOWS\System32\dns.exe (0x01000000) C:\WINDOWS\system32\ntdll.dll (0x77F40000) C:\WINDOWS\system32\kernel32.dll (0x77E40000) C:\WINDOWS\system32\msvcrt.dll (0x77BA0000) C:\WINDOWS\system32\ADVAPI32.dll (0x77DA0000) C:\WINDOWS\system32\RPCRT4.dll (0x77C50000) C:\WINDOWS\System32\WS2_32.dll (0x71C00000) C:\WINDOWS\System32\WS2HELP.dll (0x71BF0000) C:\WINDOWS\system32\USER32.dll (0x77D00000) C:\WINDOWS\system32\GDI32.dll (0x77C00000) C:\WINDOWS\System32\NETAPI32.dll (0x71C40000)Указание целевого объекта и протокола
Каждый из примеров в этом разделе запрашивает порт 80, порт по умолчанию.
Следующая команда запрашивает TCP-порт по умолчанию на компьютере, указанном с использованием его полного доменного имени (FQDN):
portqry -n myDomainController.example.com -p tcpСледующая команда запрашивает порт UDP по умолчанию на компьютере, указанном с помощью имени компьютера:
portqry -n myServer -p udpСледующая команда запрашивает порты TCP и UDP по умолчанию для компьютера, указанного с помощью его IP-адреса:
portqry -n 192.168.1.20 -p bothСледующая команда выполняет тот же запрос, что и предыдущая команда, но пропускает шаг разрешения имен:
portqry -n 192.168.1.20 -p both -nrСледующая команда запрашивает TCP-порт веб-сервера по умолчанию:
portqry -n www.widgets.microsoft.comУказание одного или нескольких целевых портов
Следующая команда проверяет службу SMTP почтового сервера, запрашивая TCP-порт 25:
portqry -n mail.example.com -p tcp -e 25Следующая команда запрашивает TCP-порт 60897 и UDP-порт 60897 компьютера с IP-адресом 192.168.1.20:
portqry -n 192.168.1.20 -p both -e 60897Следующая команда запрашивает порты UDP 139, 1025 и 135 (в этой последовательности) на компьютере myServer:
portqry -n myServer -p udp -o 139,1025,135Следующая команда запрашивает диапазон портов от порта 135 до порта 139 (включительно) на компьютере myServer:
portqry -n myServer -p udp -r 135:139Указание файла журнала для выходных данных PortQry
Следующая команда запрашивает TCP-порт 143 на mail.widgets.microsoft.com и записывает выходные данные в файлportqry.txt . Если файл уже существует, PortQry перезаписывает его без запроса на подтверждение.
portqry -n mail.widgets.microsoft.com -p tcp -e 143 -l portqry.txt -yЗапрос по медленной ссылке
Следующая команда запрашивает TCP-порты 143, 110 и 25 на mail.widgets.microsoft.com. Для каждого целевого порта PortQry ожидает ответ в два раза дольше, чем обычно.
portqry -n mail.widgets.microsoft.com -p tcp -o 143,110,25 -slУказание порта источника
Следующая команда использует UDP-порт 3001 (если он доступен) на локальном компьютере для отправки запроса на UDP-порт 53 на 192.168.1.20. Если служба прослушивает этот порт и отвечает на запрос, она отправляет ответ на UDP-порт 3001 на локальном компьютере.
portqry -p udp -e 53 -sp 3001 -n 192.168.1.20Следующая команда использует UDP-порт 3000 (если он доступен) на локальном компьютере для отправки запроса на UDP-порт 389 на myDomainController.contoso.com. По умолчанию служба LDAP должна прослушивать этот порт. Если служба LDAP отвечает на первый запрос, PortQry использует временный исходный порт для отправки форматированного запроса и получения ответов.
portqry -n myDomainController.contoso.com -e 389 -sp 3000Использование пакетного файла для запуска PortQry в тихом режиме
Ниже приведен пример пакетного файла, который запускает PortQry в тихом режиме:
:Top portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q :endПри выполнении этого пакетного файла PortQry создает файл журнала с именемpqlog.txt. Содержимое этого файла выглядит следующим образом:
PortQry Version 2.0 Log File System Date: Thu Sep 16 10:35:03 2021 Command run: portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q Local computer name: SOURCESERVER Querying target system called: 169.254.18.22 TCP port 443 (https service): LISTENING ========= end of log file =========Порт запроса 135 (служба RPC)
Следующая команда запрашивает UDP-порт 135 на компьютере myServer. По умолчанию служба RPC должна прослушивать этот порт.
portqry -n myServer -p udp -e 135В результате PortQry выполняет следующие действия:
- PortQry использует файл Служб в папке %SYSTEMROOT%\System32\Drivers\Etc для разрешения UDP-порта 135 в службу. Используя конфигурацию по умолчанию, PortQry разрешает порт службе сопоставителя конечных точек RPC (Epmap).
- PortQry отправляет неформатированную пользовательской датаграмму на UDP-порт 135 на конечном компьютере.
PortQry не получает ответ от целевого порта. Это связано с тем, что служба сопоставителя конечных точек RPC реагирует только на запрос RPC с правильным форматированием. PortQry сообщает, что порт прослушивается или фильтруется. - PortQry создает правильно отформатированный запрос RPC, который запрашивает все конечные точки, зарегистрированные в сопоставитель конечных точек RPC. PortQry отправляет этот запрос на UDP-порт 135 на конечном компьютере.
- В зависимости от ответа PortQry выполняет одно из следующих действий:
- Если PortQry получает ответ на этот запрос, PortQry возвращает пользователю весь ответ и сообщает, что порт прослушивается.
- Если PortQry не получает ответ на этот запрос, он сообщает о том, что порт фильтруется.
UDP port 135 (epmap service): LISTENING or FILTERED Querying Endpoint Mapper Database. Server's response: UUID: 50abc2a4-574d-40b3-9d66-ee4fd5fba076 ncacn_ip_tcp:169.254.12.191[4144] UUID: ecec0d70-a603-11d0-96b1-00a0c91ece30 NTDS Backup Interface ncacn_np:\\MYSERVER[\PIPE\lsass] UUID: e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface ncacn_ip_tcp:169.254.12.191[1030] UUID: e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface ncadg_ip_udp:169.254.12.191[1032] UUID: 12345678-1234-abcd-ef00-01234567cffb ncacn_np:\\MYSERVER[\PIPE\lsass] UUID: 12345678-1234-abcd-ef00-01234567cffb ncacn_np:\\MYSERVER[\PIPE\POLICYAGENT] Total endpoints found: 6 ==== End of RPC Endpoint Mapper query response ==== UDP port 135 is LISTENINGИз этих выходных данных можно определить не только, прослушивает ли служба порт, но и какие службы или программы зарегистрированы в базе данных сопоставителя конечных точек RPC на конечном компьютере. Выходные данные включают универсальный уникальный идентификатор (UUID) для каждой программы, имя с заметками (если оно существует), протокол, используемый каждой программой, сетевой адрес, к которому привязана программа, и конечная точка программы в квадратных скобках.
При указании -r параметра в команде PortQry для сканирования диапазона портов PortQry не запрашивает у сопоставителя конечных точек RPC сведения о конечной точке. Этот параметр ускоряет сканирование диапазона портов.