Compartir a través de


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 informa del estado de los puertos TCP y Protocolo de datagramas de usuario (UDP) de destino 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 herramienta de solución de problemas, los usuarios que lo usan para solucionar un problema determinado deben tener conocimientos suficientes sobre 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. Similar al modo de línea de comandos, pero puede usar comandos y parámetros de método abreviado.

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 : interfaz de usuario para portQry Command Line Port Scanner.

Se aplica a: versiones admitidas de Windows

Pruebas y resultados de PortQry

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

  • Si no hay respuesta a un datagrama dirigido, es posible que el puerto de destino sea FILTERED.
  • 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 un protocolo específico de capa de sesión o capa de aplicación.

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

Paso 1: Prueba de estado del puerto

PortQry informa del 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.
  • NOT LISTENING: esta respuesta indica que ningún proceso está escuchando en el puerto de destino. PortQry recibió uno de los siguientes mensajes ICMP del puerto de destino:

    No se puede acceder al puerto inaccesible de destino

  • FILTERED: esta respuesta indica que se está filtrando el puerto de destino. PortQry no recibió una respuesta del puerto de destino. Es posible que un proceso escuche o no 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 está ESCUCHAndo o FILTRADO. Sin embargo, cuando se soluciona un problema de conectividad, resulta útil saber si un puerto se está filtrando o escuchando. 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 el 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 esperados 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 la siguiente:
    • Información de dominio y controlador de dominio (consultas LDAP)
    • Servicios y puertos de cliente registrados (consultas RPC)
    • Si se permite el acceso anónimo (consultas FTP)
    • Dirección MAC (consultas NetBIOS)
    • Mspclnt.ini información del archivo (consultas del servidor ISA)
  • PortQry analiza, da formato y 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 en el que instaló PortQry, use PortQry en modo local. Al usar los parámetros en modo local en la línea de comandos, puede realizar tareas como las siguientes en el equipo local:

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

Para obtener más información, consulte Uso de PortQry en 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 la 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 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 del equipo o el dominio que se va a consultar. Este parámetro es obligatorio. [options] son los parámetros opcionales.

Parámetros de 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> Usar el 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> Especifique el puerto de destino (también conocido como "punto de conexión")
  • El <valor de 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 los 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 <valor filename.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 pedir que confirme la acción.
  • Si la cadena de comandos de PortQry no incluye -l, PortQry omite -y.
-sl Tiempo de espera adicional para la respuesta (también conocido como retraso de vínculo lento) Use este parámetro para duplicar la hora en que PortQry espera una respuesta desde un puerto UDP antes de que PortQry determine que el puerto NO escucha o que está FILTRADO. Al consultar vínculos de red lentos o no confiables, el tiempo de espera normal puede ser demasiado corto para recibir una respuesta.
-nr Omitir la búsqueda de nombres inversos
  • De forma predeterminada, cuando se usa -n para especificar una dirección IP para el equipo de destino, PortQry realiza una búsqueda inversa de nombre 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 de 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 netBIOS (puerto UDP 137)
    En estos casos, PortQry usa un puerto efímero para la segunda prueba. Cuando esto ocurre, PortQry registra "Uso del puerto de origen efímero" en su salida.
  • Si el equipo donde se instala 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 directiva IPSec para que pueda usar el puerto 500, ejecute net stop PolicyAgent. Cuando haya terminado de probar, 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 de comunidad predeterminado es public.
-q Ejecutar PortQry en modo silencioso
  • Cuando se usa -q, PortQry suprime toda la salida de pantalla, excepto los mensajes de error.
  • Para ver la salida que no sea 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 usa -q junto con -l, PortQry sobrescribe el archivo de registro existente sin preguntarlo.
  • 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 para los 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 incluidos.
  • 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 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 Recuperación de información local
  • Enumere todas las asignaciones de puertos TCP y UDP que están actualmente activas 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> Puerto de inspección
  • Supervise un puerto específico para ver los cambios. El <valor de port_number> representa el puerto que se va a supervisar.
  • En el caso de un puerto TCP, PortQry notifica los cambios entre los estados siguientes:
    • CLOSE_WAIT
    • CERRADO
    • ESTABLECIDO
    • FIN_WAIT_1
    • LAST_ACK
    • ESCUCHAR
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • En el caso de los puertos UDP, PortQry informa si un programa está enlazado al puerto, pero no informa de si el puerto UDP recibe datagramas.
  • Para detener la supervisión, presione Esc.
-wpid <pid> Id. 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 de process_number> representa el PID que se va a supervisar.
  • Para detener la supervisión, presione Esc.
-wt <seconds> Comprobación a intervalo específico
  • Compruebe el estado del destino identificado por -wport o en el intervalo representado por el valor /<seconds>."-wpid
  • El <valor de segundos> debe estar entre uno y 1200 (ambos incluidos).
  • El valor predeterminado es 60.
  • No se puede usar -wt por sí mismo ni junto con -local.
-l <filename.txt> Generación de un archivo de registro
  • El <valor filename.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 pedir que confirme la acción.
  • Si la cadena de comandos de PortQry no incluye -l, PortQry omite -y.
-v Generar una salida detallada PortQry proporciona detalles adicionales a la salida de la pantalla (y al archivo de registro, si se usa).

Comentarios para 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, la conexión TCP del programa con el puerto puede dejarse en un estado de "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 "Timed Wait" durante el doble de tiempo que la duración máxima del segmento.
  • Para cada proceso, PortQry notifica tanta información como pueda acceder. El acceso a alguna información está restringido. Por ejemplo, el acceso a la información del módulo para los procesos Inactivos 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 o -wport -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 cierre correctamente el archivo de registro y salga. 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 se pueden realizar con mayor facilidad mediante PortQry en modo interactivo.

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

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

portqry -i

La salida de este comando es similar al fragmento siguiente:

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 mediante 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 varios métodos abreviados con el query comando para ejecutar cualquiera de las 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, <la opción> representa el nombre de la opción que se va a establecer y< el valor> 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 Dejar el modo interactivo

Métodos abreviados de consulta en modo interactivo

Puede usar los siguientes métodos abreviados junto con el query comando para ejecutar consultas comunes sin tener que establecer opciones de puerto y protocolo. Use la sintaxis siguiente:

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 del modo interactivo

Puede usar el set comando para establecer opciones como el puerto de origen o el retraso de vínculos lentos. Use la sintaxis siguiente:

set <option>=<value>

Nota:

En este comando, <la opción> representa el nombre de la opción que se va a establecer y <el valor> 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 de 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 de 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>
Especificación del 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> Especificar 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 de comunidad predeterminado es public.
set nr Activar o desactivar la búsqueda de nombres inversos
  • 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 período de tiempo que espera una respuesta de un puerto UDP antes de que PortQry determine que el puerto NO escucha o que está FILTRADO. Al consultar vínculos de red lentos o no 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 fragmento siguiente:

Default Node: 10.0.1.10

>

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

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 a sus nombres de servicio correspondientes. PortQry usa esta información para seleccionar el formato de sus consultas. Puede editar este archivo para dirigir PortQry para enviar 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 fragmento 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 se pueda restringir el acceso

Al ejecutar PortQry en modo local, como en el ejemplo anterior, es posible que vea la salida similar al fragmento siguiente. Esta salida indica que el contexto de seguridad que usa PortQry 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 se presiona Esc.
  • Crea el archivo de registro pid.txt. Si ya existe un archivo que tiene ese nombre, PortQry le pedirá 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 siguiente comando consulta el puerto TCP predeterminado en un equipo especificado mediante su nombre de dominio completo (FQDN):

portqry -n myDomainController.example.com -p tcp

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

portqry -n myServer -p udp

El comando siguiente 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 comando siguiente consulta el puerto TCP predeterminado de un servidor web:

portqry -n www.widgets.microsoft.com

Especificar uno o varios puertos de destino

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

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

El comando siguiente 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 comando siguiente 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 comando siguiente consulta el intervalo de puertos del puerto 135 al puerto 139 (incluido) en el equipo "myServer":

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

Especificación de un archivo de registro para la salida de PortQry

El comando siguiente 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 comando siguiente 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 una respuesta.

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

Especificar un puerto de origen

El siguiente comando 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 las respuestas.

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 comando siguiente 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 del 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 el formato correcto que solicita todos los puntos de conexió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, informa de que el puerto es FILTERED.
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 están registrados 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:

Al especificar 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 un intervalo de puertos.