Использование PortQry для проверки открытых портов TCP/UDP (сканер портов)
В Windows имеется множество инструментов для диагностики проблем в сетях TCP/IP (
ping,
telnet,
pathping, и т. д.). Но не все из них позволяют удобно проверять статус или сканировать открытые сетевые порты на удаленном сервере. Утилита Portqry.exe — удобный инструмент для проверки реакции портов TCP/UDP на удаленных хостах для диагностики проблем, связанных с работой различных сетевых служб и межсетевых экранов в сетях TCP/IP. Чаще всего утилиту Portqry используют как более функциональную замену
telnetкоманда, и в отличие от telnet, она также позволяет проверять открытые порты UDP.
Сканирование открытых портов UDP/TCP с помощью PortQry
Первая версия PortQry для Windows Server 2003 некорректно работает в новых версиях ОС (Windows Server 2008 и новее), поэтому была выпущена вторая версия утилиты PortQryV2. Это версия, которую вам следует использовать сегодня (вы можете скачать PortQryV2 здесь).
Загрузите и распакуйте архив PortQryV2.exe. Запустите командную строку и перейдите в каталог с утилитой, например:
cd c:\tools\PortQryV2Например, чтобы проверить доступность DNS-сервера у клиента, нужно проверить, открыты ли на нем 53 порта TCP и UDP. Синтаксис команды проверки порта следующий:
PortQry -n server [-p protocol] [-e || -r || -o endpoint(s)]-n — имя или IP-адрес сервера, доступность которого вы проверяете;
-e — номер проверяемого порта (от 1 до 65535);
-r — диапазон проверяемых портов (например, 1:80);
-p — протокол, используемый для проверки. Это может быть TCP, UDP или ОБА (по умолчанию используется TCP).
Примечание. В отличие от командлета PowerShell Test-NetConnection, который можно использовать для проверки доступности только портов TCP, утилита PortQry поддерживает протоколы TCP и UDP.
В нашем примере команда выглядит так:
PortQry.exe -n 10.0.25.6 -p both -e 53
Portqry вернет одно из трех доступных состояний порта:
Прослушивание - означает, что порт открыт (принимает соединения), от него получен ответ;
Не Прослушивание — показывает, что в целевой системе нет процесса (службы), который принимает соединения по указанному порту. PortQry получил ответ ICMP «Destination Unreachable — Port Unreachable» при проверке порта UDP или TCP-пакета с флагом Reset;
Отфильтрован — означает, что PortQry не получил ответа от указанного порта или ответ был отфильтрован. Т. е. этот порт не прослушивается в целевой системе, либо доступ к нему ограничен брандмауэром или какими-то системными настройками. По умолчанию TCP-порты опрашиваются 3 раза, а UDP — один.
В нашем примере DNS-сервер доступен клиенту как через порты TCP, так и через UDP.
TCP port 53 (domain service): LISTENING
UDP port 53 (domain service): LISTENINGС помощью атрибута -o вы можете указать последовательность портов для проверки их доступности:
portqry -n 10.0.25.6 -p tcp -o 21,110,143Следующая команда сканирует диапазоны известных номеров портов TCP/IP и возвращает список портов, которые принимают соединения (работает как сканер портов TCP):
portqry -n 10.0.25.6 -r 1:1024 | find ": LISTENING"Вы можете сохранить результат сканирования открытых портов в текстовый файл:
portqry -n 10.0.25.6 -p tcp -r 20:500 -l scan_port_log.txtУтилита portqry имеет интерактивный режим:
portqry -i
Теперь в приглашении PortQry Interactive Mode вы можете указать имя удаленного компьютера и номер порта:
node srv-lic
set port=80Чтобы проверить порт на указанном сервере, нажмите q и Enter.
Используя аргументы -wport и -wpid, вы можете отслеживать состояние указанного порта (wport) или всех портов, связанных с указанным процессом (wpid) на локальном компьютере. хозяин.
Например, следующая команда будет следить за ответом указанного локального порта в течение 10 минут (например, RDP-порт 3389), и если его статус изменится, то уведомит об этом администратора (подробный журнал будет доступен в файле LogFile). .текст). Чтобы остановить мониторинг портов, нажмите Ctrl-C:
portqry -wport 3389 -wt 600 -l LogFile.txt -y -vВы можете получить информацию об открытых портах и активных TCP/UDP-соединениях на локальном компьютере:
portqry.exe -localСостояние открытых портов расширенных сетевых служб в PortQry
PortQry имеет встроенную поддержку некоторых сетевых служб. Это LDAP, вызовы удаленных процедур (RPC), протоколы электронной почты SMTP/POP3/IMAP4, SNMP, FTP/TFTP, служба имен NetBIOS, L2TP и т. д. Помимо проверки доступности порта, инструмент выполняет запросы, специфичные для протокола, к получить статус услуги.
Например, с помощью следующей команды вы можете проверить доступность службы сопоставления конечных точек RPC (TCP/135) и получить список имен конечных точек RPC, зарегистрированных на компьютере (включая их имена, UUID, адрес, к которому они привязаны, и приложение, с которым они связаны).
portqry -n 10.0.25.6 -p tcp -e 135TCP port 135 (epmap service): LISTENING
Using ephemeral source port
Querying Endpoint Mapper Database…
Server’s response:
UUID: d95afe72-a6d5-4259-822e-2c84da1ddb0d
ncacn_ip_tcp:10.0.25.6 [49152]
UUID: 8975497f-93f3-4376-9c9c-fd2277495c27 Frs2 Service
ncacn_ip_tcp:10.0.25.6 [5722]
UUID: 6b5bd21e-528c-422c-af8c-a4079be4a448 Remote Fw APIs
ncacn_ip_tcp:10.0.25.6 [63006]
UUID: 12345678-1234-abcd-ef22-0123456789ab IPSec Policy agent endpoint
ncacn_ip_tcp:10.0.25.6 [63006]
UUID: 367abb81-9844-35f1-ad32-912345001003
ncacn_ip_tcp:10.0.25.6 [63002]
UUID: 50cda2a3-574d-40b3-1d66-ee4aaa33a076
ncacn_ip_tcp:10.0.25.6 [56020]
……..
UUID: 3c4428c5-f0ab-448b-bda1-6ce01eb0a6d5 DHCP Client LRPC Endpoint
ncacn_ip_tcp:10.0.25.6 [49153]
Total endpoints found: 61
==== End of RPC Endpoint Mapper query response ====
portqry.exe -n 10.0.25.6 -e 135 -p TCP exits with return code 0x00000000.Или вы можете проверить доступность и ответ службы браузера SQL Server, работающей на Microsoft SQL Server:
PortQry.exe -n rome-sql01 -e 1434 -p UDPUDP port 1434 (ms-sql-m service): LISTENING or FILTERED
Sending SQL Server query to UDP port 1434...
Server's response:
ServerName ROME-SQL01
InstanceName MSSQLSERVER
IsClustered No
Version 15.0.2000.5
tcp 53200
ServerName ROME-SQL01
InstanceName DBINVENT
IsClustered No
Version 15.0.2000.5
tcp 1433
==== End of SQL Server query response ====
UDP port 1434 is LISTENING
Как видите, инструмент PortQry показал не только доступность порта 1434/UDP, но также версию SQL-сервера и имена экземпляров, работающих на SQL-сервере, и их TCP-порты. Первый экземпляр DBINVENT прослушивает порт TCP/1433 по умолчанию, а второй MSSQLSERVER использует фиксированный порт TCP/53200 из диапазона RPC.
Вы можете опросить порт SNMP на устройстве, указав имя сообщества:
portqry -n rome-sql1 -cn !snmp_trap! -e 161 -p udpПри проверке порта TCP/25 на SMTP-сервере вы можете увидеть служебный баннер SMTP:
portqry -n mx.active-directory.ru -p tcp -e 25Версия графического интерфейса PortQuery
Первоначально PortQry был исключительно консольным инструментом (CLI). Чтобы сделать его более удобным для пользователей, которые не любят использовать командную строку, Microsoft разработала простой графический интерфейс для portqry — PortQueryUI. Вы можете загрузить PortQueryUI с официального сайта загрузки Microsoft: PortQueryUI.
Фактически PortQueryUI — это графическая надстройка к portqry, позволяющая генерировать команду и возвращать результат в графическом окне.
Кроме того, PortQueryUI содержит несколько предопределенных наборов запросов для проверки доступности популярных сервисов Microsoft:
Домен и трасты (проверка служб ADDS на контроллере домена Active Directory)
Сервер обмена
SQL-сервер
сеть
IP-сек.
Веб-сервер
Чистая встреча
Думаю, PortQueryUI не нуждается в особых комментариях. Это должно быть ясно, если вы посмотрите на скриншот ниже. Введите DNS-имя или IP-адрес удаленного сервера, выберите одну из предопределенных служб (Запросить предопределенную службу) или укажите номера портов. для проверки порта вручную (Ввести порты запроса вручную) и нажмите кнопку Запрос.
Возможные коды возврата в PortQueryUI (выделены на скриншоте):
0 (0x00000000) - соединение успешно установлено и порт доступен;
1(0x00000001) - указанный порт недоступен или фильтруется;
2 (0x00000002 - обычный код возврата при проверке доступности UDP-соединения, поскольку ответ ACK не возвращается.




