Korzystanie z narzędzia wiersza polecenia PortQry
PortQry to narzędzie wiersza polecenia, którego można użyć do rozwiązywania problemów z łącznością TCP/IP. To narzędzie zgłasza stan docelowych portów TCP i User Datagram Protocol (UDP) na komputerze lokalnym lub na komputerze zdalnym. Zawiera również szczegółowe informacje o użyciu portów komputera lokalnego.
Ponieważ portQry ma być używany jako narzędzie do rozwiązywania problemów, użytkownicy, którzy używają go do rozwiązywania określonego problemu, powinni mieć wystarczającą wiedzę na temat środowiska obliczeniowego.
Możesz użyć narzędzia PortQry z wiersza polecenia w jednym z kilku trybów:
- Tryb wiersza polecenia. Ten tryb umożliwia rozwiązywanie problemów z komputerami lokalnymi lub zdalnymi.
- Tryb lokalny. W tym trybie można użyć kilku parametrów, które są przeznaczone do rozwiązywania problemów z komputerem lokalnym.
- Tryb interaktywny. Podobnie jak w przypadku trybu wiersza polecenia, można jednak użyć poleceń skrótów i parametrów.
Uwaga
Możesz pobrać oddzielne narzędzie o nazwie PortQryUI, które zawiera graficzny interfejs użytkownika dla usługi PortQry. PortQryUI ma kilka funkcji, które mogą ułatwić korzystanie z portqry. Aby uzyskać narzędzie PortQryUI, zobacz PortQryUI — interfejs użytkownika skanera portów wiersza polecenia PortQry.
Dotyczy: Obsługiwane wersje systemu Windows
Testy i wyniki usługi PortQry
Typowe narzędzia do skanowania portów donoszą, że port ma stan nasłuchiwania , jeśli docelowy port UDP nie zwraca komunikatu "Miejsce docelowe nieosiągalne" protokołu ICMP (Internet Control Message Protocol). Ten wynik może nie być dokładny z jednego lub obu następujących powodów:
- Jeśli nie ma odpowiedzi na skierowany datagram, port docelowy może być FILTROWANY.
- Większość usług nie odpowiada na niesformatowany program danych użytkownika, który jest do niego wysyłany. Zazwyczaj usługa lub program, który nasłuchuje portu, odpowiada tylko na komunikat, który używa określonej warstwy sesji lub protokołu warstwy aplikacji.
Aby uzyskać dokładniejsze i bardziej użyteczne wyniki, portQry używa dwuetapowego procesu testowania.
Krok 1. Test stanu portu
PortQry zgłasza stan portu jako jedną z trzech wartości:
- NASŁUCHIWANIE: Ta odpowiedź wskazuje, że proces nasłuchuje na porcie docelowym. PortQry otrzymał odpowiedź z portu docelowego.
-
NIE NASŁUCHIWANIE: Ta odpowiedź wskazuje, że żaden proces nie nasłuchuje na porcie docelowym. PortQry odebrał jeden z następujących komunikatów ICMP z portu docelowego:
Nieosiągalny port docelowy
- FILTROWANE: Ta odpowiedź wskazuje, że port docelowy jest filtrowany. PortQry nie otrzymał odpowiedzi z portu docelowego. Proces może lub nie nasłuchuje na porcie docelowym. Domyślnie portQry wysyła zapytanie do portu TCP trzy razy, zanim zwróci odpowiedź FILTROWANE i wysyła zapytanie do portu UDP jeden raz, zanim zwróci odpowiedź FILTROWANE.
Krok 2. Testy wyspecjalizowane
Jeśli nie ma odpowiedzi z docelowego portu UDP, portQry zgłasza, że port nasłuchuje lub filtruje. Jednak w przypadku rozwiązywania problemu z łącznością warto wiedzieć, czy port jest filtrowany, czy nasłuchuje. Jest to szczególnie prawdziwe w środowisku zawierającym co najmniej jedną zaporę.
PortQry uściśla swój raport o stanie portu przy użyciu drugiego zestawu testów, które mogą wchodzić w interakcje z usługą lub programem, który nasłuchuje na porcie docelowym. W przypadku tego testu portQry wykonuje następujące czynności:
- PortQry używa pliku usług znajdującego się w folderze %SYSTEMROOT%\System32\Drivers\Etc , aby określić, która usługa nasłuchuje na każdym porcie.
- PortQry tworzy komunikat, który jest specjalnie skonstruowany dla oczekiwanej usługi lub programu, a następnie wysyła ten komunikat do portu docelowego. W zależności od usługi lub programu komunikat może zażądać informacji przydatnych do rozwiązywania problemów, takich jak:
- Informacje o domenie i kontrolerze domeny (zapytania LDAP)
- Zarejestrowane usługi i porty klienta (zapytania RPC)
- Czy dostęp anonimowy jest dozwolony (zapytania FTP)
- Adres MAC (zapytania NetBIOS)
- Mspclnt.ini informacji o pliku (zapytania serwera ISA)
- PortQry analizuje, formatuje, a następnie zwraca odpowiedź z usługi lub programu w ramach raportu testowego.
Dodatkowe testy rozwiązywania problemów z komputerem lokalnym
Jeśli musisz rozwiązać problemy z portami na komputerze, na którym zainstalowano portQry, użyj narzędzia PortQry w trybie lokalnym. W przypadku korzystania z parametrów trybu lokalnego w wierszu polecenia można wykonywać zadania, takie jak następujące na komputerze lokalnym:
- Wyliczanie mapowań portów
- Monitorowanie określonego portu pod kątem zmian
- Monitorowanie określonego procesu pod kątem zmian
Aby uzyskać więcej informacji, zobacz Using PortQry in local (command-line) mode (Using PortQry in local (command-line) mode (Korzystanie z portqry w trybie lokalnym (wiersz polecenia).
Używanie narzędzia PortQry w trybie wiersza polecenia
PortQry można uruchomić w wierszu polecenia w taki sam sposób jak każde inne narzędzie wiersza polecenia. W większości przykładów w tym artykule przedstawiono polecenia portqry wiersza polecenia. W trybie wiersza polecenia można dodać wiele opcji do ciągu polecenia, aby określić, jakie zapytanie ma zostać uruchomione i jak je uruchomić. Aby uruchomić narzędzie PortQry w trybie wiersza polecenia, uruchom polecenie, które używa następującej składni:
portqry.exe -n <name_to_query> [options]
Uwaga
W tym poleceniu <name_to_query> jest adresem IP, nazwą komputera lub domeną do wykonywania zapytań. Ten parametr jest wymagany. [opcje] są opcjonalne parametry.
Parametry PortQry dla trybu wiersza polecenia
Następujące parametry są dostępne w zwykłym trybie wiersza polecenia:
Parametr | Opis | Komentarze |
---|---|---|
-n <name> |
Wykonywanie zapytań względem określonego miejsca docelowego |
|
-p <protocol> |
Korzystanie z określonego protokołu |
|
-e <port_number> |
Określ port docelowy (znany również jako "punkt końcowy") |
|
-o <port_number>,<port_number> |
Określanie wielu portów docelowych w sekwencji | Wartości <port_number,port_number>>< reprezentują rozdzielaną przecinkami listę numerów portów do wykonywania zapytań w sekwencji. Nie używaj spacji wokół przecinków. |
-r <port_number>:<port_number> |
Określanie zakresu portów docelowych |
|
-l <filename.txt> |
Generowanie pliku dziennika |
|
-y |
Zastąp poprzedni plik dziennika |
|
-sl |
Zaczekaj dodatkowy czas na odpowiedź (nazywaną również powolnym opóźnieniem połączenia) | Użyj tego parametru, aby podwoić czas oczekiwania przez port PortQry na odpowiedź z portu UDP, zanim port PortQry określi, że port nie nasłuchuje lub jest filtrowany. W przypadku wykonywania zapytań dotyczących wolnych lub zawodnych łączy sieciowych normalny czas oczekiwania może być zbyt krótki, aby otrzymać odpowiedź. |
-nr |
Pomiń wyszukiwanie odwrotnej nazwy |
|
-sp <port_number> |
Zapytanie z określonego portu źródłowego |
|
-cn !<community_name>! |
Wykonywanie zapytań do społeczności SNMP |
|
-q |
Uruchamianie narzędzia PortQry w trybie cichym |
|
Uwagi dotyczące parametrów w trybie wiersza polecenia
- Każda wartość numeru portu musi być prawidłowym numerem portu z zakresu od 1 do 65535 włącznie.
- Parametry
-e
,-o
i-r
wzajemnie się wykluczają. Pojedyncze polecenie PortQry może używać tylko jednego z tych parametrów. - Zapytanie do portu UDP 389 (LDAP) może nie działać na kontrolerach domeny z systemem Windows Server 2008. Aby sprawdzić dostępność usługi uruchomionej na porcie UDP 389, możesz użyć narzędzia Nltest zamiast PortQry. Aby uzyskać więcej informacji, zobacz Nltest.
- Podczas wykonywania zapytań dotyczących portu 135 (RPC) przy użyciu polecenia
-e
lub-o
funkcja PortQry zwraca wszystkie punkty końcowe, które są obecnie zarejestrowane w programie mapowania punktów końcowych RPC.Ważna
W przypadku korzystania z narzędzia
-r
PortQry nie wykonuje zapytania dotyczącego mapowania punktu końcowego RPC. - Podczas wykonywania zapytania o port 53 (DNS) portQry wysyła zapytanie DNS za
portqry.microsoft.com
pomocą protokołu TCP i UDP. Jeśli serwer zwraca odpowiedź, PortQry określa, że port nasłuchuje.Uwaga
Nie jest ważne, czy serwer DNS zwraca odpowiedź pozytywną, czy negatywną. Każda odpowiedź wskazuje, że port nasłuchuje.
Korzystanie z narzędzia PortQry w trybie lokalnym (wiersz polecenia)
Zamiast wykonywać zapytania o port na zdalnym komputerze docelowym, możesz użyć narzędzia PortQry w trybie lokalnym, aby uzyskać szczegółowe informacje o portach TCP i portach UDP na komputerze lokalnym, na którym działa port PortQry. Użyj następującej składni, aby uruchomić narzędzie PortQry w trybie lokalnym:
portqry -local | -wpid <pid> | -wport <port_number> [-wt <seconds>] [-l <filename.txt>] [-v]
Symbole zastępcze w tej składni zostały wyjaśnione w poniższej tabeli parametrów trybu lokalnego:
Parametr | Opis | Komentarze |
---|---|---|
-local |
Pobieranie informacji lokalnych |
|
-wport <port_number> |
Port zegarka |
|
-wpid <pid> |
Identyfikator procesu obserwacji (PID) |
|
-wt <seconds> |
Sprawdzanie w określonym interwale |
|
-l <filename.txt> |
Generowanie pliku dziennika |
|
-y |
Zastąp poprzedni plik dziennika |
|
-v |
Tworzenie pełnych danych wyjściowych | PortQry udostępnia dodatkowe szczegóły danych wyjściowych ekranu (i pliku dziennika, jeśli jest używany). |
Uwagi dotyczące parametrów w trybie lokalnym
- Parametry
-local
,-wport
i-wpid
wzajemnie się wykluczają. W jednym ciągu polecenia PortQry można użyć tylko jednego z tych parametrów. - Parametr
-q
nie działa w trybie lokalnym. - W niektórych przypadkach port PortQry może zgłaszać, że proces bezczynności systemu (PID 0) używa niektórych portów TCP. Takie zachowanie może wystąpić, jeśli program lokalny nawiązuje połączenie z portem TCP, a następnie zatrzymuje się. Mimo że program nie jest już uruchomiony, połączenie TCP programu z portem może pozostać w stanie "Czas oczekiwania" przez kilka minut. W takim przypadku PortQry może wykryć, że port jest używany, ale nie może zidentyfikować programu, który korzysta z portu, ponieważ został zwolniony identyfikator PID. Domyślnie port pozostaje w stanie "Czas oczekiwania" przez dwa razy dłużej niż maksymalny okres istnienia segmentu.
- Dla każdego procesu portQry zgłasza tyle informacji, ile może uzyskać dostęp. Dostęp do niektórych informacji jest ograniczony. Na przykład dostęp do informacji o module dla procesów Idle i CSRSS jest zabroniony, ponieważ ich ograniczenia dostępu uniemożliwiają otwieranie kodu na poziomie użytkownika. Aby uzyskać najlepsze wyniki, uruchom polecenie trybu lokalnego w kontekście administratora lokalnego lub konta z podobnymi poświadczeniami.
- Jeśli używasz polecenia
-wport
lub-wpid
razem z-l
programem , użyj klawisza Esc, aby przerwać i zamknąć portQry zamiast CTRL+C. Aby upewnić się, że portQry poprawnie zamyka plik dziennika i kończy pracę, naciśnij klawisz Esc. Jeśli naciśnijesz klawisze CTRL+C zamiast klawisza Esc, aby zatrzymać portQry, plik dziennika może stać się pusty lub uszkodzony.
Używanie narzędzia PortQry w trybie interaktywnym
W przypadku rozwiązywania problemów z łącznością między komputerami może być konieczne wpisanie wielu powtarzających się poleceń. Takie akcje można łatwiej wykonywać za pomocą narzędzia PortQry w trybie interaktywnym.
Tryb interaktywny jest podobny do funkcji interaktywnej w narzędziu Nslookup DNS lub w narzędziu Nblookup WINS.
Aby uruchomić portQry w trybie interaktywnym, użyj parametru -i
. Na przykład uruchom następujące polecenie:
portqry -i
Dane wyjściowe tego polecenia przypominają następujący fragment:
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)
>
Polecenia trybu interakcyjnego
W trybie interaktywnym można użyć następujących poleceń:
Polecenia | Opis | Komentarze |
---|---|---|
node <name> Lub n <name> |
Ustawianie miejsca docelowego na zapytanie |
|
query Lub q |
Wysyłanie zapytania |
|
set <option>=<value> |
Ustawianie wartości opcji zapytania |
|
exit |
Pozostaw tryb interaktywny |
Skróty zapytań trybu interakcyjnego
Możesz użyć następujących skrótów razem z poleceniem query
, aby uruchamiać typowe zapytania bez konieczności ustawiania opcji portów i protokołów. Należy stosować następującą składnię:
q <shortcut>
Uwaga
W tym poleceniu <skrót> reprezentuje jeden ze skrótów z poniższej tabeli. Jeśli pominiesz skrót, q
polecenie prześlij zapytanie do portu TCP 80.
Skrótów | Porty do zapytania |
---|---|
dns |
Port TCP 53, port UDP 53. |
ftp |
Port TCP 21 |
imap |
Port TCP 143 |
ipsec |
Port UDP 500 |
isa |
Port TCP 1745, port UDP 1745 |
ldap |
Port TCP 389, port UDP 389 |
l2tp |
Port UDP 1701 |
mail |
Porty TCP 25, 110 i 143 |
pop3 |
Port TCP 110 |
rpc |
Port TCP 135, port UDP 135 |
smtp |
Port TCP 25 |
snmp |
Port UDP 161 |
sql |
Port TCP 1433, port UDP 1434 |
tftp |
Port UDP 69 |
Na przykład wprowadzenie w trybie interaktywnym q dns
jest równoważne uruchamianiu portqry -n 127.0.0.1 -p both -e 135
w zwykłym trybie wiersza polecenia.
Opcje trybu interaktywnego
Możesz użyć polecenia , set
aby ustawić opcje, takie jak port źródłowy lub powolne opóźnienie łącza. Należy stosować następującą składnię:
set <option>=<value>
Uwaga
W tym poleceniu <opcja> reprezentuje nazwę opcji do ustawienia, a <wartość> reprezentuje nową wartość opcji.
Opcja | Opis | Komentarze |
---|---|---|
set all |
Wyświetlanie bieżących wartości opcji | |
set port=<port_number> set e=<port_number> |
Określanie portu docelowego | Wartość <port_number> reprezentuje port do wykonywania zapytań na komputerze docelowym. |
set sport=<port_number> set sp=<port_number> |
Określanie portu źródłowego |
|
set protocol=<protocol> set p=<protocol> |
Określanie protokołu do użycia | Wartość <protokołu> reprezentuje typ portu do zapytania (tcp , udp lub both ). |
set cn=<community_name> |
Określanie społeczności SNMP |
|
set nr |
Wyłączanie lub włączanie wyszukiwania wstecznego nazwy |
|
set sl |
Włączanie lub wyłączanie opóźnienia powolnego łącza |
|
Załóżmy, że chcesz wysłać zapytanie do komputera z adresem IP 10.0.1.10. W wierszu polecenia trybu interakcyjnego wprowadź .n 10.0.1.10
To polecenie generuje dane wyjściowe podobne do następującego fragmentu:
Default Node: 10.0.1.10
>
Aby wysłać zapytanie DNS, wprowadź w q dns
wierszu polecenia trybu interaktywnego. To polecenie generuje dane wyjściowe podobne do następującego fragmentu:
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
>
Dostosowywanie skojarzenia między portami i usługami
Domyślnie każdy komputer z systemem Windows ma plik usług znajdujący się w folderze %SYSTEMROOT%\System32\Drivers\Etc . PortQry używa tego pliku do rozpoznawania numerów portów do odpowiadających im nazw usług. PortQry używa tych informacji, aby wybrać format swoich zapytań. Możesz edytować ten plik, aby skierować portQry do wysyłania sformatowanych komunikatów do alternatywnego portu. Na przykład w typowym pliku usług zostanie wyświetlony następujący wpis:
ldap 389/tcp #Lightweight Directory Access Protocol
Możesz edytować ten wpis portu lub dodać dodatkowy wpis. Aby wymusić wysyłanie zapytań LDAP do portu 1025 przez port PortQry, zmodyfikuj wpis w następujący sposób:
ldap 1025/tcp #Lightweight Directory Access Protocol
Przykłady
W poniższych przykładach pokazano, jak używać narzędzia PortQry i jego parametrów:
Tryb lokalny
- Wykonywanie zapytań na komputerze lokalnym
- Wykonywanie zapytań na komputerze lokalnym, gdy dostęp może być ograniczony
- Monitorowanie identyfikatora procesu przy użyciu określonego interwału
- Wykonywanie zapytań za pośrednictwem powolnego linku
Tryb wiersza polecenia
- Określanie obiektu docelowego i protokołu
- Określanie co najmniej jednego portu docelowego
- Określanie pliku dziennika dla danych wyjściowych PortQry
- Używanie pliku wsadowego do uruchamiania narzędzia PortQry w trybie cichym
- Zapytanie o port 135 (usługa RPC)
Wykonywanie zapytań na komputerze lokalnym
Dane wyjściowe są portqry -local
podobne do następującego fragmentu:
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
Wykonywanie zapytań na komputerze lokalnym, gdy dostęp może być ograniczony
Po uruchomieniu narzędzia PortQry w trybie lokalnym, tak jak w poprzednim przykładzie, mogą zostać wyświetlone dane wyjściowe podobne do poniższego fragmentu. Takie dane wyjściowe wskazują, że kontekst zabezpieczeń używany przez portQry nie ma wystarczających uprawnień dostępu do wszystkich żądanych informacji.
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
======================================================
Monitorowanie identyfikatora procesu przy użyciu określonego interwału
Następujące polecenie monitoruje określony proces:
portqry.exe -wpid 1276 -wt 2 -v -l pid.txt
W związku z tym portQry wykonuje następujące akcje:
- Identyfikuje proces z identyfikatorem PID 1276 i sprawdza stan portów używanych co dwie sekundy do momentu naciśnięcia klawisza Esc.
- Tworzy plik dziennika pid.txt. Jeśli plik o tej nazwie już istnieje, portQry wyświetli monit o potwierdzenie zastąpienia pliku.
- Rejestruje wszystkie dane wyjściowe w pliku dziennika, w tym dodatkowe pełne dane wyjściowe.
Zawartość pliku dziennika przypomina następujący fragment:
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)
Określanie obiektu docelowego i protokołu
Uwaga
Każdy z przykładów w tej sekcji wysyła zapytanie do portu 80— portu domyślnego.
Następujące polecenie wykonuje zapytanie o domyślny port TCP na komputerze określonym przy użyciu w pełni kwalifikowanej nazwy domeny (FQDN):
portqry -n myDomainController.example.com -p tcp
Następujące polecenie wykonuje zapytanie dotyczące domyślnego portu UDP na komputerze określonym przy użyciu nazwy komputera:
portqry -n myServer -p udp
Następujące polecenie wykonuje zapytanie o domyślne porty TCP i UDP komputera określonego przy użyciu jego adresu IP:
portqry -n 192.168.1.20 -p both
Następujące polecenie uruchamia to samo zapytanie co poprzednie polecenie, ale pomija krok rozpoznawania nazw:
portqry -n 192.168.1.20 -p both -nr
Następujące polecenie wykonuje zapytanie o domyślny port TCP serwera internetowego:
portqry -n www.widgets.microsoft.com
Określanie co najmniej jednego portu docelowego
Następujące polecenie testuje usługę SMTP serwera poczty, wykonując zapytanie dotyczące portu TCP 25:
portqry -n mail.example.com -p tcp -e 25
Następujące polecenie wykonuje zapytania dotyczące portu TCP 60897 i portu UDP 60897 komputera z adresem IP 192.168.1.20:
portqry -n 192.168.1.20 -p both -e 60897
Następujące polecenie wykonuje zapytania dotyczące portów UDP 139, 1025 i 135 (w tej sekwencji) na komputerze "myServer":
portqry -n myServer -p udp -o 139,1025,135
Następujące polecenie wykonuje zapytanie o zakres portów od portu 135 do portu 139 (włącznie) na komputerze "myServer":
portqry -n myServer -p udp -r 135:139
Określanie pliku dziennika dla danych wyjściowych PortQry
Następujące polecenie wysyła zapytanie do portu TCP 143 na mail.widgets.microsoft.com i rejestruje dane wyjściowe w pliku portqry.txt . Jeśli plik już istnieje, portQry zastępuje go bez monitowania o potwierdzenie.
portqry -n mail.widgets.microsoft.com -p tcp -e 143 -l portqry.txt -y
Wykonywanie zapytań za pośrednictwem powolnego linku
Następujące polecenie wykonuje zapytania dotyczące portów TCP 143, 110 i 25 na mail.widgets.microsoft.com. Dla każdego portu docelowego port PortQry czeka dwa razy dłużej niż zwykle na odpowiedź.
portqry -n mail.widgets.microsoft.com -p tcp -o 143,110,25 -sl
Określanie portu źródłowego
Następujące polecenie używa portu UDP 3001 (jeśli jest dostępny) na komputerze lokalnym, aby wysłać zapytanie do portu UDP 53 w dniu 192.168.1.20. Jeśli usługa nasłuchuje na tym porcie i odpowiada na zapytanie, wysyła odpowiedź do portu UDP 3001 na komputerze lokalnym.
portqry -p udp -e 53 -sp 3001 -n 192.168.1.20
Następujące polecenie używa portu UDP 3000 (jeśli jest dostępny) na komputerze lokalnym, aby wysłać zapytanie do portu UDP 389 na myDomainController.contoso.com. Domyślnie usługa LDAP powinna nasłuchiwać na tym porcie. Jeśli usługa LDAP odpowiada na pierwsze zapytanie, portQry używa efemerycznego portu źródłowego do wysyłania sformatowanego zapytania i odbierania odpowiedzi.
portqry -n myDomainController.contoso.com -e 389 -sp 3000
Używanie pliku wsadowego do uruchamiania narzędzia PortQry w trybie cichym
Poniższy tekst jest przykładem pliku wsadowego z systemem PortQry w trybie cichym:
:Top
portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q
:end
Po uruchomieniu tego pliku wsadowego portQry tworzy plik dziennika o nazwie pqlog.txt. Zawartość tego pliku jest podobna do następującej:
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 =========
Zapytanie o port 135 (usługa RPC)
Następujące polecenie wysyła zapytanie do portu UDP 135 na komputerze myServer. Domyślnie usługa RPC powinna nasłuchiwać na tym porcie.
portqry -n myServer -p udp -e 135
W związku z tym portQry wykonuje następujące akcje:
- PortQry używa pliku Usług w folderze %SYSTEMROOT%\System32\Drivers\Etc , aby rozpoznać port UDP 135 w usłudze. Przy użyciu konfiguracji domyślnej PortQry rozpoznaje port do usługi mapowania punktu końcowego RPC (Epmap).
- PortQry wysyła niesformatowany datagram użytkownika do portu UDP 135 na komputerze docelowym.
PortQry nie odbiera odpowiedzi z portu docelowego. Dzieje się tak, ponieważ usługa mapowania punktu końcowego RPC odpowiada tylko na poprawnie sformatowane zapytanie RPC. PortQry zgłasza, że port nasłuchuje lub filtruje. - PortQry tworzy poprawnie sformatowane zapytanie RPC, które żąda wszystkich punktów końcowych, które są obecnie zarejestrowane w mapowaniu punktu końcowego RPC. PortQry wysyła to zapytanie do portu UDP 135 na komputerze docelowym.
- W zależności od odpowiedzi portQry wykonuje jedną z następujących akcji:
- Jeśli PortQry otrzyma odpowiedź na to zapytanie, portQry zwraca całą odpowiedź do użytkownika i zgłasza, że port nasłuchuje.
- Jeśli port PortQry nie otrzyma odpowiedzi na to zapytanie, raportuje, że port jest FILTROWANY.
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
Z tych danych wyjściowych można określić nie tylko, czy usługa nasłuchuje na porcie, ale także, które usługi lub programy są rejestrowane w bazie danych mapowania punktów końcowych RPC na komputerze docelowym. Dane wyjściowe obejmują uniwersalny unikatowy identyfikator (UUID) dla każdego programu, nazwę z adnotowaną nazwą (jeśli istnieje), protokół używany przez każdy program, adres sieciowy powiązany z programem oraz punkt końcowy programu w nawiasach kwadratowych.
Uwaga
Po określeniu -r
opcji w poleceniu PortQry do skanowania zakresu portów, PortQry nie wykonuje zapytania mapowania punktu końcowego RPC o informacje o punkcie końcowym. Ten parametr przyspiesza skanowanie zakresu portów.