Uso de la herramienta de línea de comandos PortQry

PortQry es una herramienta de línea de comandos que puede usar para ayudar a solucionar problemas de conectividad TCP/IP. Esta herramienta notifica el estado de los puertos TCP de destino y protocolo de datagramas de usuario (UDP) en un equipo local o en un equipo remoto. También proporciona información detallada sobre el uso del puerto del equipo local.

Dado que PortQry está pensado para usarse como una herramienta de solución de problemas, los usuarios que la usan para solucionar un problema determinado deben tener conocimientos suficientes de su entorno informático.

Puede usar PortQry desde un símbolo del sistema en uno de los modos siguientes:

  • Modo de línea de comandos. Puede usar este modo para solucionar problemas de equipos locales o remotos.
  • Modo local. En este modo, puede usar varios parámetros destinados a solucionar problemas del equipo local.
  • Modo interactivo. De forma similar al modo de línea de comandos, pero puede usar comandos y parámetros de acceso directo.

Nota:

Puede descargar una herramienta independiente, denominada PortQryUI, que incluye una interfaz de usuario gráfica para PortQry. PortQryUI tiene varias características que pueden facilitar el uso de PortQry. Para obtener la herramienta PortQryUI, consulte PortQryUI - User Interface for the PortQry Command Line Port Scanner.

Se aplica a: versiones admitidas de Windows

Pruebas y resultados de PortQry

Las herramientas de examen de puertos típicas notifican que el puerto tiene un estado DE ESCUCHA si el puerto UDP de destino no devuelve un mensaje "Destino inaccesible" del Protocolo de mensajes de control de Internet (ICMP). Es posible que este resultado no sea preciso por uno o ambos de los siguientes motivos:

  • Si no hay ninguna respuesta a un datagrama dirigido, el puerto de destino podría estar FILTRADO.
  • La mayoría de los servicios no responden a un datagrama de usuario sin formato que se les envía. Normalmente, el servicio o programa que escucha un puerto solo responde a un mensaje que usa una capa de sesión específica o un protocolo de capa de aplicación.

Para producir resultados más precisos y útiles, PortQry usa un proceso de prueba en dos pasos.

Paso 1: Prueba de estado de puerto

PortQry notifica el estado de un puerto como uno de los tres valores:

  • ESCUCHA: esta respuesta indica que un proceso está escuchando en el puerto de destino. PortQry recibió una respuesta del puerto de destino.
  • NO ESCUCHANDO: esta respuesta indica que ningún proceso está escuchando en el puerto de destino. PortQry recibió uno de los siguientes mensajes ICMP desde el puerto de destino:

    No se puede acceder al puerto de destino

  • FILTERED: esta respuesta indica que se está filtrando el puerto de destino. PortQry no recibió una respuesta del puerto de destino. Un proceso puede o no estar escuchando en el puerto de destino. De forma predeterminada, PortQry consulta un puerto TCP tres veces antes de devolver una respuesta de FILTERED y consulta un puerto UDP una vez antes de devolver una respuesta de FILTERED.

Paso 2: Pruebas especializadas

Si no hay ninguna respuesta de un puerto UDP de destino, PortQry informa de que el puerto es LISTENING o FILTERED. Sin embargo, al solucionar un problema de conectividad, es útil saber si se está filtrando o escuchando un puerto. Esto es especialmente cierto en un entorno que contiene uno o varios firewalls.

PortQry refina su informe de estado de puerto mediante un segundo conjunto de pruebas que pueden interactuar con el servicio o programa que escucha en el puerto de destino. Para esta prueba, PortQry hace lo siguiente:

  • PortQry usa el archivo Services que se encuentra en la carpeta %SYSTEMROOT%\System32\Drivers\Etc para determinar qué servicio escucha en cada puerto.
  • PortQry crea un mensaje que se construye específicamente para el servicio o programa esperado y, a continuación, envía ese mensaje al puerto de destino. En función del servicio o programa, el mensaje puede solicitar información útil para solucionar problemas, como los siguientes:
    • Información del controlador de dominio y dominio (consultas LDAP)
    • Puertos y servicios cliente registrados (consultas RPC)
    • Si se permite el acceso anónimo (consultas FTP)
    • Dirección MAC (consultas NetBIOS)
    • Mspclnt.ini información de archivo (consultas del servidor ISA)
  • PortQry analiza, da formato y, a continuación, devuelve la respuesta del servicio o programa como parte de su informe de prueba.

Pruebas adicionales para solucionar problemas del equipo local

Cuando tenga que solucionar problemas de puertos en el equipo donde instaló PortQry, use PortQry en modo local. Al usar los parámetros de modo local en la línea de comandos, puede realizar tareas como las siguientes en el equipo local:

  • Enumeración de asignaciones de puertos
  • Supervisión de cambios en un puerto específico
  • Supervisión de un proceso específico para los cambios

Para obtener más información, vea Uso de PortQry en el modo local (línea de comandos).

Uso de PortQry en modo de línea de comandos

Puede ejecutar PortQry en un símbolo del sistema de la misma manera que cualquier otra herramienta de línea de comandos. La mayoría de los ejemplos de este artículo muestran comandos PortQry de línea de comandos. En el modo de línea de comandos, puede agregar varias opciones a la cadena de comandos para especificar qué consulta se va a ejecutar y cómo ejecutarla. Para ejecutar PortQry en modo de línea de comandos, ejecute un comando que use la sintaxis siguiente:

portqry.exe -n <name_to_query> [options]

Nota:

En este comando, <name_to_query> es la dirección IP, el nombre de equipo o el dominio que se va a consultar. Este parámetro es obligatorio. [options] son los parámetros opcionales.

Parámetros PortQry para el modo de línea de comandos

Los parámetros siguientes están disponibles en modo de línea de comandos normal:

Parámetro Descripción Comentarios
-n <name> Consulta del destino específico
  • Este es el único parámetro necesario para el modo de línea de comandos.
  • El < valor de nombre> representa el nombre o la dirección IP del equipo que se va a consultar. Este valor no puede incluir espacios.
-p <protocol> Uso del protocolo especificado
  • El < valor del protocolo> representa el tipo de puerto que se va a consultar (los valores posibles son tcp, udpo both).
  • El valor predeterminado es tcp.
-e <port_number> Especificar el puerto de destino (también conocido como "punto de conexión")
  • El < valor port_number> representa el puerto que se va a consultar en el equipo de destino.
  • El valor predeterminado es 80.
-o <port_number>,<port_number> Especificar varios puertos de destino en una secuencia Los < valores port_number,port_number>>< representan una lista delimitada por comas de números de puerto que se van a consultar en una secuencia. No use espacios alrededor de las comas.
-r <port_number>:<port_number> Especificar un intervalo de puertos de destino
  • Los < valores port_number>:<port_number> representan los números de puerto inicial y final, separados por dos puntos. No use espacios alrededor de dos puntos.
  • El número de puerto inicial debe ser menor que el número de puerto final.
-l <filename.txt> Generación de un archivo de registro
  • El < valorfilename.txt> representa el nombre y la extensión del archivo de registro. Este valor no puede incluir espacios.
  • Cuando se ejecuta el comando, PortQry crea el archivo de registro en el directorio donde está instalado.
  • Si el archivo ya existe, PortQry le pide que confirme que desea sobrescribirlo (a menos que también use el -y parámetro ).
-y Sobrescribir el archivo de registro anterior
  • Cuando se usa -y junto con -l, PortQry sobrescribe el archivo de registro existente sin solicitarle que confirme la acción.
  • Si la cadena del comando PortQry no incluye -l, PortQry omite -y.
-sl Esperar tiempo adicional para la respuesta (también conocido como retraso de vínculo lento) Use este parámetro para duplicar el tiempo que PortQry espera una respuesta de un puerto UDP antes de que PortQry determine que el puerto no está ESCUCHANDO o que está FILTRADO. Al realizar consultas a través de vínculos de red lentos o poco confiables, el tiempo de espera normal puede ser demasiado corto para recibir una respuesta.
-nr Omitir búsqueda inversa de nombres
  • De forma predeterminada, cuando se usa -n para especificar una dirección IP para el equipo de destino, PortQry realiza una búsqueda de nombre inverso para resolver la dirección IP en un nombre. Este proceso puede llevar mucho tiempo, especialmente si PortQry no puede resolver la dirección IP. Use -nr para omitir este paso de la consulta.
  • Si usa -n para especificar un equipo o un nombre de dominio, PortQry omite -nr.
-sp <port_number> Consulta desde un puerto de origen específico
  • El < valor port_number> representa el puerto que PortQry usa para enviar la consulta.
  • PortQry no puede usar un puerto que ya esté usando otro proceso. Si el puerto que especifique ya está en uso, PortQry devuelve el siguiente mensaje de error:
    No se puede usar el puerto de origen especificado.
    El puerto ya está en uso.
    Especifique un puerto que no esté en uso y vuelva a ejecutar el comando.
  • En los casos siguientes, PortQry usa el puerto especificado para la primera prueba de la consulta, pero no la segunda prueba:
    • RPC (puertos TCP y UDP 135)
    • LDAP (puerto UDP 389)
    • Consulta de estado del adaptador de NetBIOS (puerto UDP 137)
    En estos casos, PortQry usa un puerto efímero para la segunda prueba. Cuando esto ocurre, PortQry registra "Using ephemeral source port" en su salida.
  • Si el equipo donde está instalado PortQry también ejecuta el agente de directiva IPSec, es posible que el puerto UDP 500 no esté disponible para usarlo como puerto de origen. Para desactivar temporalmente el agente de directivas IPSec para que pueda usar el puerto 500, ejecute net stop PolicyAgent. Cuando haya terminado de realizar las pruebas, ejecute net start PolicyAgent.
-cn !<community_name>! Consulta de una comunidad SNMP
  • El < valor community_name> representa el nombre de la comunidad SNMP que se va a consultar. Debe delimitar este valor mediante signos de exclamación, como se muestra en la columna izquierda.
  • Si el servicio SNMP no escucha en el puerto de destino, PortQry omite -cn.
  • El nombre predeterminado de la comunidad es public.
-q Ejecución de PortQry en modo silencioso
  • Cuando se usa -q, PortQry suprime todas las salidas de pantalla excepto los mensajes de error.
  • Para ver la salida que no sean los mensajes de error, use -q junto con -l. PortQry registra la salida normal en el archivo de registro.
  • Si ya existe un archivo de registro y se usa -q junto con -l, PortQry sobrescribe el archivo de registro existente sin preguntarle.
  • No se puede usar -q junto con -o, -ro -p both.
  • Este parámetro es especialmente útil cuando se usa un archivo por lotes para ejecutar una cadena de comandos PortQry.

Comentarios de parámetros en modo de línea de comandos

  • Cualquier valor de número de puerto debe ser un número de puerto válido entre 1 y 65535, ambos inclusive.
  • Los -eparámetros , -oy -r son mutuamente excluyentes. Un único comando PortQry solo puede usar uno de estos parámetros.
  • Es posible que una consulta al puerto UDP 389 (LDAP) no funcione con controladores de dominio que ejecutan Windows Server 2008. Para comprobar la disponibilidad del servicio que se ejecuta en el puerto UDP 389, puede usar Nltest en lugar de PortQry. Para obtener más información, consulte Nltest.
  • Al consultar el puerto 135 (RPC) mediante -e o -o, PortQry devuelve todos los puntos de conexión que están registrados actualmente con el asignador de puntos de conexión RPC.

    Importante

    Cuando se usa -r, PortQry no consulta el asignador de puntos de conexión RPC.

  • Al consultar el puerto 53 (DNS), PortQry envía una consulta DNS para portqry.microsoft.com mediante TCP y UDP. Si el servidor devuelve una respuesta, PortQry determina que el puerto es LISTENING.

    Nota:

    No es importante si el servidor DNS devuelve una respuesta positiva o negativa. Cualquier respuesta indica que el puerto está escuchando.

Uso de PortQry en modo local (línea de comandos)

En lugar de consultar un puerto en un equipo de destino remoto, puede usar PortQry en modo local para obtener información detallada sobre los puertos TCP y los puertos UDP en el equipo local donde se ejecuta PortQry. Use la sintaxis siguiente para ejecutar PortQry en modo local:

portqry -local | -wpid <pid> | -wport <port_number> [-wt <seconds>] [-l <filename.txt>] [-v]

Los marcadores de posición de esta sintaxis se explican en la tabla siguiente de parámetros de modo local:

Parámetro Descripción Comentarios
-local Recuperar información local
  • Enumera todas las asignaciones de puertos TCP y UDP que están activas actualmente en el equipo local. Esta salida es similar a la salida que genera el netstat.exe -an comando.
  • En los equipos que admiten asignaciones de PID a puerto, la salida incluye el PID del proceso que usa el puerto en el equipo local. Si usa la opción detallada (-v), la salida también incluye los nombres de los servicios a los que pertenece el PID y enumera todos los módulos que el proceso ha cargado. Puede usar esta información para determinar qué puertos están asociados a un programa o servicio determinado que se ejecuta en el equipo.
-wport <port_number> Inspección del puerto
  • Supervise un puerto específico para ver si hay cambios. El < valor port_number> representa el puerto que se va a supervisar.
  • En el caso de un puerto TCP, PortQry informa de los cambios entre los siguientes estados:
    • CLOSE_WAIT
    • CERRADO
    • ESTABLECIDO
    • FIN_WAIT_1
    • LAST_ACK
    • ESCUCHA
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • En el caso de los puertos UDP, PortQry notifica si un programa está enlazado al puerto, pero no indica si el puerto UDP recibe datagramas.
  • Para detener la supervisión, presione Esc.
-wpid <pid> Identificador de proceso de inspección (PID)
  • Supervise un PID específico para ver los cambios en el número y el estado de las conexiones. El < valor process_number> representa el PID que se va a supervisar.
  • Para detener la supervisión, presione Esc.
-wt <seconds> Comprobación en un intervalo específico
  • Compruebe el estado del destino identificado por -wport o "-wpid en el intervalo representado por el valor /<seconds> .
  • El < valor de segundos> debe estar entre uno y 1200 (ambos inclusive).
  • El valor predeterminado es 60.
  • No se puede usar -wt por sí mismo o junto con -local.
-l <filename.txt> Generación de un archivo de registro
  • El < valorfilename.txt> representa el nombre y la extensión del archivo de registro. Este valor no puede incluir espacios.
  • Cuando se ejecuta el comando, PortQry crea el archivo de registro en el directorio donde está instalado.
  • Si el archivo ya existe, PortQry le pide que confirme que desea sobrescribirlo (a menos que también use el -y parámetro ).
-y Sobrescribir el archivo de registro anterior
  • Cuando se usa -y junto con -l, PortQry sobrescribe el archivo de registro existente sin solicitarle que confirme la acción.
  • Si la cadena del comando PortQry no incluye -l, PortQry omite -y.
-v Generar salida detallada PortQry proporciona detalles adicionales a la salida de pantalla (y al archivo de registro, si se usa).

Comentarios de parámetros en modo local

  • Los -localparámetros , -wporty -wpid son mutuamente excluyentes. Solo puede usar uno de estos parámetros en una sola cadena de comandos PortQry.
  • El -q parámetro no funciona en modo local.
  • En algunos casos, PortQry puede informar de que el proceso de inactividad del sistema (PID 0) usa algunos puertos TCP. Este comportamiento puede producirse si un programa local se conecta a un puerto TCP y, a continuación, se detiene. Aunque el programa ya no se está ejecutando, es posible que la conexión TCP del programa al puerto se deje en un estado "Espera con tiempo" durante varios minutos. En tal caso, PortQry puede detectar que el puerto está en uso, pero no puede identificar el programa que usa el puerto porque se ha liberado el PID. De forma predeterminada, el puerto permanece en un estado de "espera con tiempo" el doble de tiempo que la duración máxima del segmento.
  • Para cada proceso, PortQry informa de toda la información a la que puede acceder. El acceso a cierta información está restringido. Por ejemplo, el acceso a la información del módulo para los procesos idle y CSRSS está prohibido porque sus restricciones de acceso impiden que el código de nivel de usuario los abra. Para obtener los mejores resultados, ejecute el comando de modo local en el contexto del administrador local o de una cuenta que tenga credenciales similares.
  • Cuando use -wport o -wpid junto con -l, use la tecla Esc para interrumpir y salir de PortQry en lugar de CTRL+C. Debe presionar Esc para asegurarse de que PortQry cierra correctamente el archivo de registro y se cierra. Si presiona CTRL+C en lugar de Esc para detener PortQry, el archivo de registro podría estar vacío o dañado.

Uso de PortQry en modo interactivo

Al solucionar problemas de conectividad entre equipos, es posible que tenga que escribir muchos comandos repetitivos. Estas acciones pueden realizarse más fácilmente mediante PortQry en modo interactivo.

El modo interactivo es similar a la funcionalidad interactiva de la utilidad DNS Nslookup o de la utilidad WINS de Nblookup.

Para iniciar PortQry en modo interactivo, use el -i parámetro . Por ejemplo, ejecute el comando siguiente:

portqry -i

La salida de este comando es similar al siguiente extracto:

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)
>

Comandos de modo interactivo

Puede usar los siguientes comandos en modo interactivo:

Comando Descripción Comentarios
node <name> o n <name> Establecer el destino en la consulta
  • El < valor de nombre> representa el nombre o la dirección IP del equipo que se va a consultar. Este valor no puede incluir espacios.
  • El valor predeterminado es 127.0.0.1 (el equipo local).
query o q Enviar consulta
  • Consulta el destino actual, con la configuración actual.
  • El protocolo predeterminado es tcp.
  • El puerto de destino predeterminado es el puerto TCP 80.
  • El puerto de origen predeterminado es el puerto 0 (un puerto efímero).
  • Puede usar uno de los varios accesos directos con el query comando para ejecutar cualquiera de varias consultas comunes. Para obtener una lista de los accesos directos disponibles, consulte Accesos directos de consulta en modo interactivo.
set <option>=<value> Establecer el valor de una opción de consulta
  • En este comando, <option> representa el nombre de la opción que se va a establecer y <value> representa el nuevo valor de la opción.
  • Para ver una lista de los valores actuales de las opciones disponibles, escriba set all.
  • Para obtener una lista de las opciones disponibles, consulte Opciones de modo interactivo.
exit Salir del modo interactivo

Métodos abreviados de consulta en modo interactivo

Puede usar los siguientes accesos directos junto con el query comando para ejecutar consultas comunes sin tener que establecer opciones de puerto y protocolo. Utilice la siguiente sintaxis:

q <shortcut>

Nota:

En este comando, <el acceso directo> representa uno de los accesos directos de la tabla siguiente. Si omite el acceso directo, el comando consulta el q puerto TCP 80.

Acceso directo Puertos que se van a consultar
dns Puerto TCP 53, puerto UDP 53.
ftp Puerto TCP 21
imap Puerto TCP 143
ipsec Puerto UDP 500
isa Puerto TCP 1745, puerto UDP 1745
ldap Puerto TCP 389, puerto UDP 389
l2tp Puerto UDP 1701
mail Puertos TCP 25, 110 y 143
pop3 Puerto TCP 110
rpc Puerto TCP 135, puerto UDP 135
smtp Puerto TCP 25
snmp Puerto UDP 161
sql Puerto TCP 1433, puerto UDP 1434
tftp Puerto UDP 69

Por ejemplo, escribir q dns en modo interactivo equivale a ejecutarse portqry -n 127.0.0.1 -p both -e 135 en modo de línea de comandos normal.

Opciones de modo interactivo

Puede usar el set comando para establecer opciones como el puerto de origen o el retraso de vínculo lento. Utilice la siguiente sintaxis:

set <option>=<value>

Nota:

En este comando, <option> representa el nombre de la opción que se va a establecer y <value> representa el nuevo valor de la opción.

Opción Descripción Comentarios
set all Mostrar los valores actuales de las opciones
set port=<port_number>
set e=<port_number>
Especificar el puerto de destino El < valor port_number> representa el puerto que se va a consultar en el equipo de destino.
set sport=<port_number>
set sp=<port_number>
Especificar el puerto de origen
  • El < valor port_number> representa el puerto que PortQry usa para enviar la consulta.
  • PortQry no puede usar un puerto que ya esté usando otro proceso.
  • Si especifica un número de puerto de cero, PortQry usa un puerto efímero.
set protocol=<protocol>
set p=<protocol>
Especificar el protocolo que se va a usar El < valor del protocolo> representa el tipo de puerto que se va a consultar (tcp, udpo both).
set cn=<community_name> Especificación de una comunidad SNMP
  • El < valor community_name> representa el nombre de la comunidad SNMP que se va a consultar.
  • Si el servicio SNMP no escucha en el puerto de destino, PortQry omite -cn.
  • El nombre predeterminado de la comunidad es public.
set nr Desactivar o activar la búsqueda inversa de nombres
  • De forma predeterminada, si ha establecido una dirección IP como destino de la consulta, PortQry resuelve la dirección IP en un nombre. Si cambia esta opción, PortQry omite el paso de resolución de nombres.
  • Para volver a activar la búsqueda inversa de nombres, ejecute set nr una segunda vez.
set sl Activar o desactivar el retraso del vínculo lento
  • Si cambia esta opción, PortQry duplica el tiempo que espera una respuesta de un puerto UDP antes de que PortQry determine que el puerto NO está ESCUCHANDO o que está FILTRADO. Al realizar consultas a través de vínculos de red lentos o poco confiables, el tiempo de espera normal puede ser demasiado corto para recibir una respuesta.
  • Para volver a desactivar el retraso del vínculo lento, ejecute set sl una segunda vez.

Supongamos que desea consultar un equipo que tenga la dirección IP 10.0.1.10. En el símbolo del sistema del modo interactivo, escriba n 10.0.1.10. Este comando genera una salida similar al siguiente extracto:

Default Node: 10.0.1.10

>

Para enviar una consulta DNS, escriba q dns en el símbolo del sistema del modo interactivo. Este comando genera una salida similar al siguiente extracto:

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

>

Personalización de la asociación entre puertos y servicios

De forma predeterminada, todos los equipos basados en Windows tienen un archivo de servicios que se encuentra en la carpeta %SYSTEMROOT%\System32\Drivers\Etc . PortQry usa este archivo para resolver los números de puerto en sus nombres de servicio correspondientes. PortQry usa esta información para seleccionar el formato de sus consultas. Puede editar este archivo para que PortQry envíe mensajes con formato a un puerto alternativo. Por ejemplo, la siguiente entrada aparece en un archivo de servicios típico:

ldap              389/tcp                           #Lightweight Directory Access Protocol

Puede editar esta entrada de puerto o agregar una entrada adicional. Para forzar a PortQry a enviar consultas LDAP al puerto 1025, modifique la entrada de la siguiente manera:

ldap              1025/tcp                           #Lightweight Directory Access Protocol

Ejemplos

En los ejemplos siguientes se muestra cómo usar PortQry y sus parámetros:

Modo local

Modo de línea de comandos

Consulta del equipo local

La salida de portqry -local es similar al extracto siguiente:

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  

Consultar el equipo local cuando el acceso puede estar restringido

Al ejecutar PortQry en modo local, como en el ejemplo anterior, es posible que vea una salida similar al siguiente extracto. Dicha salida indica que el contexto de seguridad que PortQry usa no tiene permisos suficientes para acceder a toda la información que solicitó.

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

======================================================

Supervisión de un identificador de proceso mediante un intervalo específico

El siguiente comando supervisa un proceso específico:

portqry.exe -wpid 1276 -wt 2 -v -l pid.txt

Como resultado, PortQry realiza las siguientes acciones:

  • Identifica el proceso que tiene el PID 1276 y comprueba el estado de los puertos que usa cada dos segundos hasta que presione Esc.
  • Crea el archivo de registro pid.txt. Si ya existe un archivo con ese nombre, PortQry le pide que confirme que desea sobrescribir el archivo.
  • Registra cualquier salida en el archivo de registro, incluida la salida detallada adicional.

El contenido del archivo de registro es similar al siguiente extracto:

PortQry Version 2.0 Log File
  
System Date: <DateTime>
  
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: <DateTime>

======================================================

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)

Especificar un destino y un protocolo

Nota:

Cada uno de los ejemplos de esta sección consulta el puerto 80, el puerto predeterminado.

El comando siguiente consulta el puerto TCP predeterminado en un equipo especificado mediante su nombre de dominio completo (FQDN):

portqry -n myDomainController.example.com -p tcp

El siguiente comando consulta el puerto UDP predeterminado en un equipo especificado mediante su nombre de equipo:

portqry -n myServer -p udp

El siguiente comando consulta los puertos TCP y UDP predeterminados de un equipo especificado mediante su dirección IP:

portqry -n 192.168.1.20 -p both

El siguiente comando ejecuta la misma consulta que el comando anterior, pero omite el paso de resolución de nombres:

portqry -n 192.168.1.20 -p both -nr

El siguiente comando consulta el puerto TCP predeterminado de un servidor web:

portqry -n www.widgets.microsoft.com

Especificar uno o varios puertos de destino

El siguiente comando prueba el servicio SMTP de un servidor de correo consultando el puerto TCP 25:

portqry -n mail.example.com -p tcp -e 25

El siguiente comando consulta el puerto TCP 60897 y el puerto UDP 60897 de un equipo que tiene la dirección IP 192.168.1.20:

portqry -n 192.168.1.20 -p both -e 60897

El siguiente comando consulta los puertos UDP 139, 1025 y 135 (en esa secuencia) en el equipo "myServer":

portqry -n myServer -p udp -o 139,1025,135

El siguiente comando consulta el intervalo de puertos del puerto 135 al puerto 139 (inclusivo) en el equipo "myServer":

portqry -n myServer -p udp -r 135:139

Especificar un archivo de registro para la salida de PortQry

El siguiente comando consulta el puerto TCP 143 en mail.widgets.microsoft.com y registra la salida en el archivo portqry.txt . Si el archivo ya existe, PortQry lo sobrescribe sin pedir confirmación.

portqry -n mail.widgets.microsoft.com -p tcp -e 143 -l portqry.txt -y

Consulta a través de un vínculo lento

El siguiente comando consulta los puertos TCP 143, 110 y 25 en mail.widgets.microsoft.com. Para cada puerto de destino, PortQry espera el doble de tiempo que de costumbre para obtener una respuesta.

  portqry -n mail.widgets.microsoft.com -p tcp -o 143,110,25 -sl

Especificar un puerto de origen

El comando siguiente usa el puerto UDP 3001 (si está disponible) en el equipo local para enviar una consulta al puerto UDP 53 en 192.168.1.20. Si un servicio escucha en ese puerto y responde a la consulta, envía la respuesta al puerto UDP 3001 en el equipo local.

portqry -p udp -e 53 -sp 3001 -n 192.168.1.20

El comando siguiente usa el puerto UDP 3000 (si está disponible) en el equipo local para enviar una consulta al puerto UDP 389 en myDomainController.contoso.com. De forma predeterminada, el servicio LDAP debe estar escuchando en este puerto. Si el servicio LDAP responde a la primera consulta, PortQry usa un puerto de origen efímero para enviar la consulta con formato y recibir cualquier respuesta.

portqry -n myDomainController.contoso.com -e 389 -sp 3000

Uso de un archivo por lotes para ejecutar PortQry en modo silencioso

El texto siguiente es un ejemplo de un archivo por lotes que ejecuta PortQry en modo silencioso:

:Top
portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q
:end

Cuando se ejecuta este archivo por lotes, PortQry genera un archivo de registro denominado pqlog.txt. El contenido de este archivo es similar al siguiente:

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 ========= 

Puerto de consulta 135 (servicio RPC)

El siguiente comando consulta el puerto UDP 135 en el equipo myServer. De forma predeterminada, el servicio RPC debe estar escuchando en este puerto.

portqry -n myServer -p udp -e 135

Como resultado, PortQry realiza las siguientes acciones:

  • PortQry usa el archivo Services en la carpeta %SYSTEMROOT%\System32\Drivers\Etc para resolver el puerto UDP 135 en un servicio. Con la configuración predeterminada, PortQry resuelve el puerto en el servicio asignador de puntos de conexión RPC (Epmap).
  • PortQry envía un datagrama de usuario sin formato al puerto UDP 135 en el equipo de destino.
    PortQry no recibe una respuesta del puerto de destino. Esto se debe a que el servicio asignador de puntos de conexión RPC solo responde a una consulta RPC con formato correcto. PortQry informa de que el puerto está ESCUCHANDO o FILTRADO.
  • PortQry crea una consulta RPC con formato correcto que solicita todos los puntos de conexión que están registrados actualmente con el asignador de puntos de conexión RPC. PortQry envía esta consulta al puerto UDP 135 en el equipo de destino.
  • En función de la respuesta, PortQry realiza una de las siguientes acciones:
    • Si PortQry recibe una respuesta a esta consulta, PortQry devuelve toda la respuesta al usuario e informa de que el puerto está ESCUCHANDO.
    • Si PortQry no recibe una respuesta a esta consulta, notifica que el puerto está FILTRADO.
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

A partir de esta salida, puede determinar no solo si el servicio está escuchando en el puerto, sino también qué servicios o programas se registran con la base de datos del asignador de puntos de conexión RPC en el equipo de destino. La salida incluye el identificador único universal (UUID) para cada programa, el nombre anotado (si existe), el protocolo que usa cada programa, la dirección de red a la que está enlazado el programa y el punto de conexión del programa entre corchetes.

Nota:

Cuando se especifica la -r opción en el comando PortQry para examinar un intervalo de puertos, PortQry no consulta el asignador de puntos de conexión RPC para obtener información sobre el punto de conexión. Este parámetro acelera el examen de una serie de puertos.