Uso dello strumento da riga di comando PortQry

PortQry è uno strumento da riga di comando che è possibile usare per risolvere i problemi di connettività TCP/IP. Questo strumento segnala lo stato delle porte TCP e UDP (User Datagram Protocol) di destinazione in un computer locale o in un computer remoto. Fornisce inoltre informazioni dettagliate sull'utilizzo della porta del computer locale.

Poiché PortQry deve essere usato come strumento di risoluzione dei problemi, gli utenti che lo usano per risolvere un particolare problema devono avere una conoscenza sufficiente dell'ambiente di calcolo.

È possibile usare PortQry da un prompt dei comandi in una delle diverse modalità:

  • Modalità della riga di comando. È possibile usare questa modalità per risolvere i problemi dei computer locali o remoti.
  • Modalità locale. In questa modalità è possibile usare diversi parametri destinati alla risoluzione dei problemi del computer locale.
  • Modalità interattiva. Analogamente alla modalità della riga di comando, ma è possibile usare i comandi e i parametri di collegamento.

Nota

È possibile scaricare uno strumento separato, denominato PortQryUI, che include un'interfaccia utente grafica per PortQry. PortQryUI offre diverse funzionalità che possono semplificare l'uso di PortQry. Per ottenere lo strumento PortQryUI, vedere PortQryUI - User Interface for the Port Scanner della riga di comando di PortQry.

Si applica a: Versioni supportate di Windows

Test e risultati di PortQry

Gli strumenti di analisi delle porte tipici segnalano che la porta ha uno stato LISTENING se la porta UDP di destinazione non restituisce un messaggio ICMP (Internet Control Message Protocol) "Destinazione non raggiungibile". Questo risultato potrebbe non essere accurato per uno o entrambi i motivi seguenti:

  • Se non è presente alcuna risposta a un datagramma diretto, la porta di destinazione potrebbe essere FILTERED.
  • La maggior parte dei servizi non risponde a un datagramma utente non formattato inviato. In genere, il servizio o il programma in ascolto di una porta risponde solo a un messaggio che usa un livello di sessione o un protocollo a livello di applicazione specifico.

Per ottenere risultati più accurati e utili, PortQry usa un processo di test in due passaggi.

Passaggio 1: Test dello stato della porta

PortQry segnala lo stato di una porta come uno dei tre valori seguenti:

  • LISTENING: questa risposta indica che un processo è in ascolto sulla porta di destinazione. PortQry ha ricevuto una risposta dalla porta di destinazione.
  • NOT LISTENING: questa risposta indica che nessun processo è in ascolto sulla porta di destinazione. PortQry ha ricevuto uno dei messaggi ICMP seguenti dalla porta di destinazione:

    Porta non raggiungibile di destinazione non raggiungibile

  • FILTERED: questa risposta indica che la porta di destinazione viene filtrata. PortQry non ha ricevuto una risposta dalla porta di destinazione. Un processo può essere in ascolto o meno sulla porta di destinazione. Per impostazione predefinita, PortQry esegue una query su una porta TCP tre volte prima di restituire una risposta di FILTERED e esegue una query su una porta UDP una volta prima di restituire una risposta di FILTERED.

Passaggio 2: Test specializzati

Se non è presente alcuna risposta da una porta UDP di destinazione, PortQry segnala che la porta è IN ASCOLTO o FILTRATA. Tuttavia, quando si risolve un problema di connettività, è utile sapere se una porta viene filtrata o è in ascolto. Ciò è particolarmente vero in un ambiente che contiene uno o più firewall.

PortQry affina il report sullo stato della porta usando un secondo set di test che possono interagire con il servizio o il programma in ascolto sulla porta di destinazione. Per questo test, PortQry esegue le operazioni seguenti:

  • PortQry usa il file Services che si trova nella cartella %SYSTEMROOT%\System32\Drivers\Etc per determinare quale servizio è in ascolto su ogni porta.
  • PortQry crea un messaggio costruito in modo specifico per il servizio o il programma previsto e quindi invia il messaggio alla porta di destinazione. A seconda del servizio o del programma, il messaggio può richiedere informazioni utili per la risoluzione dei problemi, ad esempio:
    • Informazioni sul controller di dominio e di dominio (query LDAP)
    • Porte e servizi client registrati (query RPC)
    • Indica se l'accesso anonimo è consentito (query FTP)
    • Indirizzo MAC (query NetBIOS)
    • Mspclnt.ini informazioni sui file (query ISA Server)
  • PortQry analizza, formatta e quindi restituisce la risposta dal servizio o dal programma come parte del report di test.

Test aggiuntivi per la risoluzione dei problemi del computer locale

Quando è necessario risolvere i problemi relativi alle porte nel computer in cui è stato installato PortQry, usare PortQry in modalità locale. Quando si usano i parametri in modalità locale nella riga di comando, è possibile eseguire attività come le seguenti nel computer locale:

  • Enumerare i mapping delle porte
  • Monitorare una porta specifica per le modifiche
  • Monitorare un processo specifico per le modifiche

Per altre informazioni, vedere Uso di PortQry in modalità locale (riga di comando).

Uso di PortQry in modalità da riga di comando

È possibile eseguire PortQry al prompt dei comandi nello stesso modo di qualsiasi altro strumento da riga di comando. La maggior parte degli esempi in questo articolo mostra i comandi PortQry da riga di comando. In modalità da riga di comando è possibile aggiungere più opzioni alla stringa di comando per specificare la query da eseguire e come eseguirla. Per eseguire PortQry in modalità da riga di comando, eseguire un comando che usa la sintassi seguente:

portqry.exe -n <name_to_query> [options]

Nota

In questo comando name_to_query>< è l'indirizzo IP, il nome del computer o il dominio su cui eseguire la query. Questo parametro è obbligatorio. [options] sono i parametri facoltativi.

Parametri PortQry per la modalità della riga di comando

I parametri seguenti sono disponibili in modalità normale da riga di comando:

Parametro Descrizione Commenti
-n <name> Eseguire query sulla destinazione specifica
  • Questo è l'unico parametro obbligatorio per la modalità da riga di comando.
  • Il < valore name> rappresenta il nome o l'indirizzo IP del computer su cui eseguire una query. Questo valore non può includere spazi.
-p <protocol> Usare il protocollo specificato
  • Il valore del <protocollo> rappresenta il tipo di porta su cui eseguire la query (i valori possibili sono tcp, udpo both).
  • Il valore predefinito è tcp.
-e <port_number> Specificare la porta di destinazione (nota anche come "endpoint")
  • Il <valore port_number> rappresenta la porta su cui eseguire una query nel computer di destinazione.
  • Il valore predefinito è 80.
-o <port_number>,<port_number> Specificare più porte di destinazione in una sequenza I <valoriport_number,port_number>>< rappresentano un elenco delimitato da virgole di numeri di porta su cui eseguire una query in una sequenza. Non usare spazi intorno alle virgole.
-r <port_number>:<port_number> Specificare un intervallo di porte di destinazione
  • I <valori port_number>:<port_number> rappresentano i numeri di porta iniziale e finale, separati da due punti. Non usare spazi intorno ai due punti.
  • Il numero di porta iniziale deve essere inferiore al numero di porta finale.
-l <filename.txt> Generare un file di log
  • Il < valorefilename.txt> rappresenta il nome e l'estensione del file di log. Questo valore non può includere spazi.
  • Quando il comando viene eseguito, PortQry crea il file di log nella directory in cui è installato.
  • Se il file esiste già, PortQry chiede di confermare che si vuole sovrascriverlo ,a meno che non si usi anche il -y parametro .
-y Sovrascrivere il file di log precedente
  • Quando si usa -y insieme a -l, PortQry sovrascrive il file di log esistente senza richiedere di confermare l'azione.
  • Se la stringa di comando PortQry non include -l, PortQry ignora -y.
-sl Attendere un tempo aggiuntivo per la risposta (noto anche come ritardo del collegamento lento) Usare questo parametro per raddoppiare il tempo di attesa di PortQry per una risposta da una porta UDP prima che PortQry determini che la porta non è IN ASCOLTO o che è FILTRATA. Quando si esegue una query su collegamenti di rete lenti o inaffidabili, il tempo di attesa normale potrebbe essere troppo breve per ricevere una risposta.
-nr Ignorare la ricerca dei nomi inversi
  • Per impostazione predefinita, quando si usa -n per specificare un indirizzo IP per il computer di destinazione, PortQry esegue una ricerca del nome inverso per risolvere l'indirizzo IP in un nome. Questo processo può richiedere molto tempo, soprattutto se PortQry non riesce a risolvere l'indirizzo IP. Usare -nr per ignorare questo passaggio della query.
  • Se si usa -n per specificare un computer o un nome di dominio, PortQry ignora -nr.
-sp <port_number> Eseguire query da una porta di origine specifica
  • Il < valore port_number> rappresenta la porta usata da PortQry per inviare la query.
  • PortQry non può usare una porta già in uso da un altro processo. Se la porta specificata è già in uso, PortQry restituisce il messaggio di errore seguente:
    Impossibile usare la porta di origine specificata.
    La porta è già in uso.
    Specificare una porta che non è in uso ed eseguire di nuovo il comando.
  • Nei casi seguenti PortQry usa la porta specificata per il primo test della query, ma non il secondo test:
    • RPC (porte TCP e UDP 135)
    • LDAP (porta UDP 389)
    • Query sullo stato dell'adapter NetBIOS (porta UDP 137)
    In questi casi, PortQry usa una porta temporanea per il secondo test. In questo caso, PortQry registra "Uso della porta di origine temporanea" nell'output.
  • Se il computer in cui è installato PortQry esegue anche l'agente dei criteri IPSec, la porta UDP 500 potrebbe non essere disponibile per l'uso come porta di origine. Per disattivare temporaneamente l'agente dei criteri IPSec in modo che sia possibile usare la porta 500, eseguire net stop PolicyAgent. Al termine dei test, eseguire net start PolicyAgent.
-cn !<community_name>! Eseguire query su una community SNMP
  • Il <valore community_name> rappresenta il nome della community SNMP su cui eseguire una query. È necessario delimitare questo valore usando punti esclamativi, come illustrato nella colonna a sinistra.
  • Se il servizio SNMP non è in ascolto sulla porta di destinazione, PortQry ignora -cn.
  • Il nome predefinito della community è public.
-q Eseguire PortQry in modalità non interattiva
  • Quando si usa -q, PortQry elimina tutto l'output dello schermo ad eccezione dei messaggi di errore.
  • Per visualizzare l'output diverso da messaggi di errore, usare -q insieme a -l. PortQry registra l'output normale nel file di log.
  • Se esiste già un file di log e si usa -q insieme a -l, PortQry sovrascrive il file di log esistente senza richiedere conferma.
  • Non è possibile usare -q insieme a -o, -ro -p both.
  • Questo parametro è particolarmente utile quando si usa un file batch per eseguire una stringa di comando PortQry.

Osservazioni per i parametri in modalità da riga di comando

  • Qualsiasi valore del numero di porta deve essere un numero di porta valido compreso tra 1 e 65535, inclusi.
  • I -eparametri , -oe -r si escludono a vicenda. Un singolo comando PortQry può usare solo uno di questi parametri.
  • Una query sulla porta UDP 389 (LDAP) potrebbe non funzionare sui controller di dominio che eseguono Windows Server 2008. Per controllare la disponibilità del servizio in esecuzione sulla porta UDP 389, è possibile usare Nltest anziché PortQry. Per altre informazioni, vedere Nltest.
  • Quando si esegue una query sulla porta 135 (RPC) usando -e o -o, PortQry restituisce tutti gli endpoint attualmente registrati con il mapper degli endpoint RPC.

    Importante

    Quando si usa -r, PortQry non esegue query sul mapper dell'endpoint RPC.

  • Quando si esegue una query sulla porta 53 (DNS), PortQry invia una query DNS per portqry.microsoft.com tramite TCP e UDP. Se il server restituisce una risposta, PortQry determina che la porta è LISTENING.

    Nota

    Non è importante se il server DNS restituisce una risposta positiva o negativa. Qualsiasi risposta indica che la porta è in ascolto.

Uso di PortQry in modalità locale (riga di comando)

Anziché eseguire query su una porta in un computer di destinazione remoto, è possibile usare PortQry in modalità locale per ottenere informazioni dettagliate sulle porte TCP e sulle porte UDP nel computer locale in cui viene eseguito PortQry. Usare la sintassi seguente per eseguire PortQry in modalità locale:

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

I segnaposto in questa sintassi sono illustrati nella tabella seguente dei parametri della modalità locale:

Parametro Descrizione Commenti
-local Recuperare informazioni locali
  • Enumerare tutti i mapping delle porte TCP e UDP attualmente attivi nel computer locale. Questo output è simile all'output generato dal netstat.exe -an comando.
  • Nei computer che supportano i mapping da PID a porta, l'output include il PID del processo che usa la porta nel computer locale. Se si usa l'opzione dettagliata (-v), l'output include anche i nomi dei servizi a cui appartiene il PID ed elenca tutti i moduli caricati dal processo. È possibile usare queste informazioni per determinare quali porte sono associate a un particolare programma o servizio in esecuzione nel computer.
-wport <port_number> Porta di controllo
  • Monitorare una porta specifica per le modifiche. Il <valore port_number> rappresenta la porta da monitorare.
  • Nel caso di una porta TCP, PortQry segnala le modifiche tra gli stati seguenti:
    • CLOSE_WAIT
    • CHIUSO
    • STABILITO
    • FIN_WAIT_1
    • LAST_ACK
    • ASCOLTA
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • Per le porte UDP, PortQry segnala se un programma è associato alla porta, ma non indica se la porta UDP riceve i datagrammi.
  • Per interrompere il monitoraggio, premere ESC.
-wpid <pid> Id processo di controllo (PID)
  • Monitorare un PID specifico per le modifiche apportate al numero e allo stato delle connessioni. Il <valore process_number> rappresenta il PID da monitorare.
  • Per interrompere il monitoraggio, premere ESC.
-wt <seconds> Verifica a intervalli specifici
  • Controllare lo stato della destinazione identificata da -wport o "-wpid all'intervallo rappresentato dal valore /<seconds> .
  • Il < valore dei secondi> deve essere compreso tra uno e 1.200 (inclusi).
  • Il valore predefinito è 60.
  • Non è possibile usare -wt da solo o insieme a -local.
-l <filename.txt> Generare un file di log
  • Il < valorefilename.txt> rappresenta il nome e l'estensione del file di log. Questo valore non può includere spazi.
  • Quando il comando viene eseguito, PortQry crea il file di log nella directory in cui è installato.
  • Se il file esiste già, PortQry chiede di confermare che si vuole sovrascriverlo ,a meno che non si usi anche il -y parametro .
-y Sovrascrivere il file di log precedente
  • Quando si usa -y insieme a -l, PortQry sovrascrive il file di log esistente senza richiedere di confermare l'azione.
  • Se la stringa di comando PortQry non include -l, PortQry ignora -y.
-v Produrre un output dettagliato PortQry fornisce dettagli aggiuntivi per l'output dello schermo (e per il file di log, se usato).

Osservazioni per i parametri in modalità locale

  • I -localparametri , -wporte -wpid si escludono a vicenda. È possibile usare solo uno di questi parametri in una singola stringa di comando PortQry.
  • Il -q parametro non funziona in modalità locale.
  • In alcuni casi, PortQry può segnalare che il processo di inattività del sistema (PID 0) usa alcune porte TCP. Questo comportamento può verificarsi se un programma locale si connette a una porta TCP e quindi si arresta. Anche se il programma non è più in esecuzione, la connessione TCP del programma alla porta può essere lasciata in uno stato "Attesa a tempo" per alcuni minuti. In questo caso, PortQry può rilevare che la porta è in uso, ma non può identificare il programma che usa la porta perché il PID è stato rilasciato. Per impostazione predefinita, la porta rimane nello stato "Attesa a tempo" per il doppio della durata massima del segmento.
  • Per ogni processo, PortQry segnala tutte le informazioni a cui può accedere. L'accesso ad alcune informazioni è limitato. Ad esempio, l'accesso alle informazioni sui moduli per i processi Idle e CSRSS non è consentito perché le restrizioni di accesso impediscono al codice a livello di utente di aprirle. Per ottenere risultati ottimali, eseguire il comando in modalità locale nel contesto dell'amministratore locale o di un account con credenziali simili.
  • Quando si usa -wport o -wpid insieme a -l, usare il tasto ESC per interrompere e uscire da PortQry anziché CTRL+C. È necessario premere ESC per assicurarsi che PortQry chiuda correttamente il file di log e si chiuda. Se si preme CTRL+C anziché ESC per arrestare PortQry, il file di log potrebbe diventare vuoto o danneggiato.

Uso di PortQry in modalità interattiva

Quando si risolveno i problemi di connettività tra computer, potrebbe essere necessario digitare molti comandi ripetitivi. Tali azioni potrebbero essere eseguite più facilmente usando PortQry in modalità interattiva.

La modalità interattiva è simile alla funzionalità interattiva nell'utilità DNS Nslookup o nell'utilità WINS Nblookup.

Per avviare PortQry in modalità interattiva, usare il -i parametro . Ad esempio, eseguire il seguente comando:

portqry -i

L'output di questo comando è simile all'estratto seguente:

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

Comandi in modalità interattiva

È possibile usare i comandi seguenti in modalità interattiva:

Comando Descrizione Commenti
node <name> o n <name> Impostare la destinazione su cui eseguire una query
  • Il < valore name> rappresenta il nome o l'indirizzo IP del computer su cui eseguire una query. Questo valore non può includere spazi.
  • Il valore predefinito è 127.0.0.1 (il computer locale).
query o q Invia query
  • Esegue una query sulla destinazione corrente usando le impostazioni correnti.
  • Il protocollo predefinito è tcp.
  • La porta di destinazione predefinita è la porta TCP 80.
  • La porta di origine predefinita è la porta 0 (una porta temporanea).
  • È possibile usare uno dei diversi collegamenti con il query comando per eseguire una qualsiasi delle diverse query comuni. Per un elenco dei collegamenti disponibili, vedere Collegamenti alle query in modalità interattiva.
set <option>=<value> Impostare il valore di un'opzione di query
  • In questo comando, <l'opzione> rappresenta il nome dell'opzione da impostare e <value> rappresenta il nuovo valore dell'opzione.
  • Per visualizzare un elenco dei valori correnti delle opzioni disponibili, immettere set all.
  • Per un elenco delle opzioni disponibili, vedere Opzioni della modalità interattiva.
exit Lasciare la modalità interattiva

Collegamenti alle query in modalità interattiva

È possibile usare i collegamenti seguenti insieme al query comando per eseguire query comuni senza dover impostare le opzioni di porta e protocollo. Usare la sintassi seguente:

q <shortcut>

Nota

In questo comando, <il collegamento> rappresenta uno dei collegamenti della tabella seguente. Se si omette il collegamento, il comando esegue una query sulla q porta TCP 80.

Scelta rapida Porte su cui eseguire query
dns Porta TCP 53, porta UDP 53.
ftp Porta TCP 21
imap Porta TCP 143
ipsec Porta UDP 500
isa Porta TCP 1745, porta UDP 1745
ldap Porta TCP 389, porta UDP 389
l2tp Porta UDP 1701
mail Porte TCP 25, 110 e 143
pop3 Porta TCP 110
rpc Porta TCP 135, porta UDP 135
smtp Porta TCP 25
snmp Porta UDP 161
sql Porta TCP 1433, porta UDP 1434
tftp Porta UDP 69

Ad esempio, l'immissione q dns in modalità interattiva equivale all'esecuzione portqry -n 127.0.0.1 -p both -e 135 in modalità normale della riga di comando.

Opzioni della modalità interattiva

È possibile usare il set comando per impostare opzioni come la porta di origine o il ritardo del collegamento lento. Usare la sintassi seguente:

set <option>=<value>

Nota

In questo comando, <l'opzione> rappresenta il nome dell'opzione da impostare e <value> rappresenta il nuovo valore dell'opzione.

Opzione Descrizione Commenti
set all Visualizzare i valori correnti delle opzioni
set port=<port_number>
set e=<port_number>
Specificare la porta di destinazione Il <valore port_number> rappresenta la porta su cui eseguire una query nel computer di destinazione.
set sport=<port_number>
set sp=<port_number>
Specificare la porta di origine
  • Il < valore port_number> rappresenta la porta usata da PortQry per inviare la query.
  • PortQry non può usare una porta già in uso da un altro processo.
  • Se si specifica un numero di porta pari a zero, PortQry usa una porta temporanea.
set protocol=<protocol>
set p=<protocol>
Specificare il protocollo da usare Il valore del <protocollo> rappresenta il tipo di porta su cui eseguire una query (tcp, udpo both).
set cn=<community_name> Specificare una community SNMP
  • Il <valore community_name> rappresenta il nome della community SNMP su cui eseguire una query.
  • Se il servizio SNMP non è in ascolto sulla porta di destinazione, PortQry ignora -cn.
  • Il nome predefinito della community è public.
set nr Disattivare o attivare la ricerca del nome inverso
  • Per impostazione predefinita, se è stato impostato un indirizzo IP come destinazione della query, PortQry risolve l'indirizzo IP in un nome. Se si modifica questa opzione, PortQry ignora il passaggio di risoluzione dei nomi.
  • Per attivare nuovamente la ricerca dei nomi inversi, eseguire set nr una seconda volta.
set sl Attivare o disattivare il ritardo del collegamento lento
  • Se si modifica questa opzione, PortQry raddoppia il tempo di attesa di una risposta da una porta UDP prima che PortQry determini che la porta non è IN ASCOLTO o che è FILTRATA. Quando si esegue una query su collegamenti di rete lenti o inaffidabili, il tempo di attesa normale potrebbe essere troppo breve per ricevere una risposta.
  • Per disattivare nuovamente il ritardo del collegamento lento, eseguire set sl una seconda volta.

Si supponga di voler eseguire una query su un computer con indirizzo IP 10.0.1.10. Al prompt dei comandi in modalità interattiva immettere n 10.0.1.10. Questo comando produce un output simile all'estratto seguente:

Default Node: 10.0.1.10

>

Per inviare una query DNS, immettere q dns al prompt dei comandi in modalità interattiva. Questo comando produce un output simile all'estratto seguente:

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

>

Personalizzazione dell'associazione tra porte e servizi

Per impostazione predefinita, ogni computer basato su Windows ha un file di servizi che si trova nella cartella %SYSTEMROOT%\System32\Drivers\Etc . PortQry usa questo file per risolvere i numeri di porta nei nomi di servizio corrispondenti. PortQry usa queste informazioni per selezionare il formato per le relative query. È possibile modificare questo file per indirizzare PortQry all'invio di messaggi formattati a una porta alternativa. Ad esempio, la voce seguente viene visualizzata in un tipico file di Servizi:

ldap              389/tcp                           #Lightweight Directory Access Protocol

È possibile modificare questa voce di porta o aggiungere una voce aggiuntiva. Per forzare PortQry a inviare query LDAP alla porta 1025, modificare la voce nel modo seguente:

ldap              1025/tcp                           #Lightweight Directory Access Protocol

Esempi

Gli esempi seguenti illustrano come usare PortQry e i relativi parametri:

Modalità locale

Modalità da riga di comando

Eseguire query sul computer locale

L'output di portqry -local è simile all'estratto seguente:

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  

Eseguire query sul computer locale quando l'accesso potrebbe essere limitato

Quando si esegue PortQry in modalità locale, come nell'esempio precedente, potrebbe essere visualizzato un output simile all'estratto seguente. Tale output indica che il contesto di sicurezza usato da PortQry non dispone di autorizzazioni sufficienti per accedere a tutte le informazioni richieste.

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

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

Monitorare un ID processo usando un intervallo specifico

Il comando seguente monitora un processo specifico:

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

Di conseguenza, PortQry esegue le azioni seguenti:

  • Identifica il processo con il PID 1276 e controlla lo stato delle porte che usa ogni due secondi fino a quando non si preme ESC.
  • Crea il file di log pid.txt. Se esiste già un file con tale nome, PortQry richiede di confermare che si vuole sovrascrivere il file.
  • Registra qualsiasi output nel file di log, incluso l'output dettagliato aggiuntivo.

Il contenuto del file di log è simile all'estratto seguente:

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)

Specificare una destinazione e un protocollo

Nota

Ognuno degli esempi in questa sezione esegue una query sulla porta 80, la porta predefinita.

Il comando seguente esegue una query sulla porta TCP predefinita in un computer specificato usando il nome di dominio completo (FQDN):

portqry -n myDomainController.example.com -p tcp

Il comando seguente esegue una query sulla porta UDP predefinita in un computer specificato usando il nome del computer:

portqry -n myServer -p udp

Il comando seguente esegue una query sulle porte TCP e UDP predefinite di un computer specificato usando il relativo indirizzo IP:

portqry -n 192.168.1.20 -p both

Il comando seguente esegue la stessa query del comando precedente, ma ignora il passaggio di risoluzione dei nomi:

portqry -n 192.168.1.20 -p both -nr

Il comando seguente esegue una query sulla porta TCP predefinita di un server Web:

portqry -n www.widgets.microsoft.com

Specificare una o più porte di destinazione

Il comando seguente testa il servizio SMTP di un server di posta eseguendo una query sulla porta TCP 25:

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

Il comando seguente esegue una query sulla porta TCP 60897 e sulla porta UDP 60897 di un computer con indirizzo IP 192.168.1.20:

portqry -n 192.168.1.20 -p both -e 60897

Il comando seguente esegue una query sulle porte UDP 139, 1025 e 135 (in tale sequenza) nel computer "myServer":

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

Il comando seguente esegue una query sull'intervallo di porte dalla porta 135 alla porta 139 (inclusi) nel computer "myServer":

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

Specificare un file di log per l'output di PortQry

Il comando seguente esegue una query sulla porta TCP 143 su mail.widgets.microsoft.com e registra l'output nel file portqry.txt . Se il file esiste già, PortQry lo sovrascrive senza richiedere conferma.

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

Eseguire query su un collegamento lento

Il comando seguente esegue una query sulle porte TCP 143, 110 e 25 su mail.widgets.microsoft.com. Per ogni porta di destinazione, PortQry attende due volte più tempo del solito per una risposta.

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

Specificare una porta di origine

Il comando seguente usa la porta UDP 3001 (se disponibile) nel computer locale per inviare una query alla porta UDP 53 il 192.168.1.20. Se un servizio è in ascolto su tale porta e risponde alla query, invia la risposta alla porta UDP 3001 nel computer locale.

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

Il comando seguente usa la porta UDP 3000 (se disponibile) nel computer locale per inviare una query alla porta UDP 389 in myDomainController.contoso.com. Per impostazione predefinita, il servizio LDAP deve essere in ascolto su questa porta. Se il servizio LDAP risponde alla prima query, PortQry usa una porta di origine temporanea per inviare la query formattata e ricevere eventuali risposte.

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

Usare un file batch per eseguire PortQry in modalità non interattiva

Il testo seguente è un esempio di file batch che esegue PortQry in modalità non interattiva:

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

Quando questo file batch viene eseguito, PortQry produce un file di log denominato pqlog.txt. Il contenuto di questo file è simile al seguente:

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

Porta di query 135 (servizio RPC)

Il comando seguente esegue una query sulla porta UDP 135 nel computer myServer. Per impostazione predefinita, il servizio RPC deve essere in ascolto su questa porta.

portqry -n myServer -p udp -e 135

Di conseguenza, PortQry esegue le azioni seguenti:

  • PortQry usa il file Services nella cartella %SYSTEMROOT%\System32\Drivers\Etc per risolvere la porta UDP 135 in un servizio. Usando la configurazione predefinita, PortQry risolve la porta nel servizio di mapper degli endpoint RPC (Epmap).
  • PortQry invia un datagramma utente non formattato alla porta UDP 135 nel computer di destinazione.
    PortQry non riceve una risposta dalla porta di destinazione. Questo perché il servizio mapper degli endpoint RPC risponde solo a una query RPC formattata correttamente. PortQry segnala che la porta è IN ASCOLTO o FILTRATA.
  • PortQry crea una query RPC formattata correttamente che richiede tutti gli endpoint attualmente registrati con il mapper degli endpoint RPC. PortQry invia questa query alla porta UDP 135 nel computer di destinazione.
  • A seconda della risposta, PortQry esegue una delle azioni seguenti:
    • Se PortQry riceve una risposta a questa query, PortQry restituisce l'intera risposta all'utente e segnala che la porta è LISTENING.
    • Se PortQry non riceve una risposta a questa query, segnala che la porta è 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

Da questo output è possibile determinare non solo se il servizio è in ascolto sulla porta, ma anche quali servizi o programmi sono registrati con il database di mapper degli endpoint RPC nel computer di destinazione. L'output include l'identificatore univoco universale (UUID) per ogni programma, il nome annotato (se presente), il protocollo usato da ogni programma, l'indirizzo di rete a cui è associato il programma e l'endpoint del programma tra parentesi quadre.

Nota

Quando si specifica l'opzione -r nel comando PortQry per analizzare un intervallo di porte, PortQry non esegue query sul mapper dell'endpoint RPC per ottenere informazioni sull'endpoint. Questo parametro accelera l'analisi di una gamma di porte.