Uso de PortQry para comprobar los puertos abiertos TCP/UDP (escáner de puertos)
Windows tiene muchas herramientas para diagnosticar problemas en redes TCP/IP (
ping,
telnet,
pathping, etc.). Pero no todos le permiten verificar convenientemente el estado o escanear puertos de red abiertos en un servidor remoto. La utilidad Portqry.exe es una herramienta conveniente para verificar la respuesta de los puertos TCP/UDP en hosts remotos para diagnosticar problemas relacionados con la operación de varios servicios de red y firewalls en redes TCP/IP. Muy a menudo, la utilidad Portqry se usa como un reemplazo más funcional para
telnety, a diferencia de telnet, también le permite comprobar los puertos UDP abiertos.
Escaneo de puertos UDP/TCP abiertos con PortQry
La primera versión de PortQry para Windows Server 2003 no funciona correctamente en las versiones más recientes del sistema operativo (Windows Server 2008 y posteriores), por lo que se lanzó la segunda versión de la utilidad, PortQryV2. Es la versión que deberías usar hoy (puedes descargar PortQryV2 aquí).
Descargue y extraiga el archivo PortQryV2.exe. Ejecute el símbolo del sistema y vaya al directorio con la utilidad, por ejemplo:
cd c:\tools\PortQryV2Por ejemplo, para verificar la disponibilidad de un servidor DNS de un cliente, debe verificar si 53 puertos TCP y UDP están abiertos en él. La sintaxis del comando de verificación de puerto es la siguiente:
PortQry -n server [-p protocol] [-e || -r || -o endpoint(s)]-n es el nombre o la dirección IP del servidor, cuya disponibilidad está comprobando;
-e es el número de puerto a comprobar (del 1 al 65535);
-r es el rango de puertos a verificar (por ejemplo, 1:80);
-p es el protocolo utilizado para la comprobación. Puede ser TCP, UDP o AMBOS (TCP se usa de forma predeterminada).
Nota. A diferencia del cmdlet Test-NetConnection PowerShell que se puede usar para verificar la disponibilidad solo de los puertos TCP, la utilidad PortQry admite los protocolos TCP y UDP.
En nuestro ejemplo, el comando se ve así:
PortQry.exe -n 10.0.25.6 -p both -e 53
Portqry devolverá uno de los tres estados de puerto disponibles:
Escucha: significa que el puerto está abierto (acepta conexiones), se ha recibido una respuesta de él;
No Escucha: muestra que no hay ningún proceso (servicio) en el sistema de destino que acepte conexiones en el puerto especificado. PortQry recibió una respuesta ICMP "Destino inalcanzable - Puerto inalcanzable" al verificar el puerto UDP o el paquete TCP con el indicador Restablecer;
Filtrado: significa que PortQry no ha recibido ninguna respuesta del puerto especificado o que la respuesta se ha filtrado. Es decir, este puerto no está escuchando en el sistema de destino, o el acceso al mismo está restringido por un firewall o alguna configuración del sistema. De manera predeterminada, los puertos TCP se sondean 3 veces y UDP es uno.
En nuestro ejemplo, el servidor DNS está disponible desde el cliente a través de los puertos TCP y UDP.
TCP port 53 (domain service): LISTENING
UDP port 53 (domain service): LISTENINGUsando el atributo -o, puede especificar la secuencia de puertos para verificar su disponibilidad:
portqry -n 10.0.25.6 -p tcp -o 21,110,143El siguiente comando escanea los rangos de los números de puerto TCP/IP conocidos y devuelve la lista de puertos que aceptan las conexiones (funciona como un escáner de puerto TCP):
portqry -n 10.0.25.6 -r 1:1024 | find ": LISTENING"Puede guardar el resultado del escaneo de puertos abiertos en un archivo de texto:
portqry -n 10.0.25.6 -p tcp -r 20:500 -l scan_port_log.txtLa utilidad portqry tiene un modo interactivo:
portqry -i
Ahora, en el indicador del modo interactivo de PortQry, puede especificar el nombre de la computadora remota y el número de puerto:
node srv-lic
set port=80Para verificar el puerto en el servidor especificado, presione q y Enter.
Usando los argumentos -wport y -wpid, puede monitorear el estado del puerto especificado (wport), o todos los puertos asociados con el proceso especificado (wpid) en el local. anfitrión.
Por ejemplo, el siguiente comando monitoreará la respuesta del puerto local especificado dentro de los 10 minutos (por ejemplo, el puerto RDP 3389), y si su estado cambia, notificará al administrador sobre esto (un registro detallado estará disponible en LogFile .TXT). Para detener la supervisión de puertos, presione Ctrl-C:
portqry -wport 3389 -wt 600 -l LogFile.txt -y -vPuede obtener información sobre puertos abiertos y conexiones TCP/UDP activas en la computadora local:
portqry.exe -localServicios de red avanzados Estado de puertos abiertos en PortQry
PortQry tiene soporte integrado para algunos servicios de red. Estos son LDAP, llamadas a procedimientos remotos (RPC), protocolos de correo electrónico SMTP/POP3/IMAP4, SNMP, FTP/TFTP, servicio de nombres NetBIOS, L2TP, etc. Además de verificar la disponibilidad del puerto, la herramienta realiza solicitudes específicas del protocolo para obtener el estado de los servicios.
Por ejemplo, con el siguiente comando puede comprobar la disponibilidad del servicio de asignación de puntos finales de RPC (TCP/135) y obtener la lista de nombres de puntos finales de RPC registrados en la computadora (incluidos sus nombres, UUID, la dirección a la que están vinculados y la aplicación con la que están relacionados).
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.O puede comprobar la disponibilidad y la respuesta del servicio SQL Server Browser que se ejecuta en 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
Como puede ver, la herramienta PortQry mostró no solo la disponibilidad del puerto 1434/UDP, sino también la versión del servidor SQL y los nombres de las instancias que se ejecutan en el servidor SQL y sus puertos TCP. La primera instancia de DBINVENT escucha en el puerto predeterminado TCP/1433 y la segunda MSSQLSERVER usa un puerto fijo TCP/53200 del rango RPC.
Puede sondear el puerto SNMP en el dispositivo especificando el nombre de la comunidad:
portqry -n rome-sql1 -cn !snmp_trap! -e 161 -p udpAl verificar el puerto TCP/25 en un servidor SMTP, puede obtener el banner de servicio SMTP:
portqry -n mx.a-d.site -p tcp -e 25Versión de interfaz gráfica de usuario de PortQuery
Originalmente, PortQry era exclusivamente una herramienta de consola (CLI). Para que sea más conveniente para los usuarios a los que no les gusta usar el símbolo del sistema, Microsoft ha desarrollado una interfaz gráfica simple para portqry: PortQueryUI. Puede descargar PortQueryUI desde el sitio web oficial de descargas de Microsoft: PortQueryUI.
En realidad, PortQueryUI es un complemento gráfico para que portqry genere un comando y devuelva el resultado en la ventana gráfica.
Además, PortQueryUI contiene varios conjuntos predefinidos de consultas para verificar la disponibilidad de los servicios populares de Microsoft:
Dominio y confianzas (comprobación de los servicios ADDS en un controlador de dominio de Active Directory)
Servidor de intercambio
servidor SQL
Redes
seguridad IP
Servidor web
Reunión en la red
Creo que PortQueryUI no necesita ningún comentario especial. Debería quedar claro si miras la captura de pantalla a continuación. Introduzca el nombre DNS o la dirección IP del servidor remoto, seleccione uno de los servicios predefinidos (Consultar servicio predefinido) o especifique los números de puerto para la comprobación manual de puertos (Introducir puertos de consulta manualmente) y haga clic en el botón Consulta.
Posibles códigos de retorno en PortQueryUI (resaltados en la captura de pantalla):
0 (0x00000000): la conexión se ha establecido correctamente y el puerto está disponible;
1 (0x00000001): el puerto especificado no está disponible o está filtrado;
2 (0x00000002: un código de retorno normal al comprobar la disponibilidad de una conexión UDP, ya que no se devuelve la respuesta ACK.




