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 PROTOKOŁU TCP i UDP (User Datagram Protocol) 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 konkretnego problemu, powinni mieć wystarczającą wiedzę na temat środowiska obliczeniowego.
PortQry można użyć 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 przeznaczonych do rozwiązywania problemów z komputerem lokalnym.
- Tryb interaktywny. Podobnie jak w trybie wiersza polecenia, ale można użyć skrótów poleceń i parametrów.
Uwaga 16.
Możesz pobrać oddzielne narzędzie o nazwie PortQryUI, które zawiera graficzny interfejs użytkownika dla portQry. PortQryUI ma kilka funkcji, które mogą ułatwić korzystanie z usługi PortQry. Aby uzyskać narzędzie PortQryUI, zobacz PortQryUI — interfejs użytkownika dla skanera portów wiersza polecenia PortQry.
Dotyczy: Obsługiwane wersje systemu Windows
Testy i wyniki portQry
Typowe narzędzia do skanowania portów zgłaszają, że port ma stan NASŁUCHIWANIA , jeśli docelowy port UDP nie zwraca komunikatu Internet Control Message Protocol (ICMP) "Destination unreachable". 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 datagram użytkownika, który jest do nich 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 przydatne wyniki, usługa PortQry korzysta z 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 SŁUCHAJ: 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:
Port docelowy jest niemożliwy do osiągnięcia
- 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 przed zwróceniem odpowiedzi FILTERED i wysyła zapytanie do portu UDP raz przed zwróceniem odpowiedzi FILTERED.
Krok 2. Wyspecjalizowane testy
Jeśli nie ma odpowiedzi z docelowego portu UDP, portQry zgłasza, że port nasłuchuje lub FILTRUJE. Jednak podczas rozwiązywania problemu z łącznością warto wiedzieć, czy port jest filtrowany, czy nasłuchuje. Dotyczy to szczególnie środowiska zawierającego co najmniej jedną zaporę.
PortQry uściśli raport o stanie portu przy użyciu drugiego zestawu testów, który może wchodzić w interakcje z usługą lub programem nasłuchujący na porcie docelowym. W tym teście usługa PortQry wykonuje następujące czynności:
- PortQry używa pliku usług, który znajduje 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 klienta i porty (zapytania RPC)
- Czy dostęp anonimowy jest dozwolony (zapytania FTP)
- Adres MAC (zapytania NetBIOS)
- Mspclnt.ini informacje o pliku (zapytania serwera ISA)
- PortQry analizuje, formatuje, a następnie zwraca odpowiedź z usługi lub programu w ramach raportu testowego.
Dodatkowe testy do rozwiązywania problemów z komputerem lokalnym
Jeśli musisz rozwiązać problemy z portami na komputerze, na którym zainstalowano portQry, użyj polecenia 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 Używanie portuQry w trybie lokalnym (wiersza polecenia).
Używanie usługi PortQry w trybie wiersza polecenia
PortQry można uruchomić w wierszu polecenia w taki sam sposób, jak w przypadku dowolnego innego narzędzia wiersza polecenia. Większość przykładów w tym artykule przedstawia polecenia wiersza polecenia PortQry. W trybie wiersza polecenia można dodać wiele opcji do ciągu polecenia, aby określić, które zapytanie ma zostać uruchomione i jak go uruchomić. Aby uruchomić portQry w trybie wiersza polecenia, uruchom polecenie, które używa następującej składni:
portqry.exe -n <name_to_query> [options]
Uwaga 16.
W tym poleceniu <name_to_query> jest adresem IP, nazwą komputera lub domeną do wykonywania zapytań. Ten parametr jest wymagany. [opcje] to parametry opcjonalne.
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> |
Użyj 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 |
Poczekaj dodatkowy czas odpowiedzi (znany również jako opóźnienie powolnego łącza) | Użyj tego parametru, aby podwoić czas oczekiwania portQry na odpowiedź z portu UDP przed portem PortQry określa, że port nie nasłuchuje lub czy 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ń dotyczących społeczności SNMP |
|
-q |
Uruchamianie usługi PortQry w trybie cichym |
|
Uwagi dotyczące parametrów w trybie wiersza polecenia
- Dowolna 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ą. Jedno 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 portu PortQry. Aby uzyskać więcej informacji, zobacz Nltest.
- Podczas wykonywania zapytania względem portu 135 (RPC) przy użyciu metody lub
-o
portQry zwraca wszystkie punkty końcowe, które są obecnie zarejestrowane za pomocą-e
mapowania punktu końcowego RPC.Ważne
W przypadku korzystania z
-r
programu portQry nie wysyła zapytań do mapera punktu końcowego RPC. - Podczas wykonywania zapytania o port 53 (DNS) usługa PortQry wysyła zapytanie DNS zarówno
portqry.microsoft.com
przy użyciu protokołu TCP, jak i UDP. Jeśli serwer zwraca odpowiedź, portQry określa, że port nasłuchuje.Uwaga 16.
Nie ważne jest, czy serwer DNS zwraca odpowiedź dodatnią, czy negatywną. Każda odpowiedź wskazuje, że port nasłuchuje.
Używanie protokołu PortQry w trybie lokalnym (wiersza polecenia)
Zamiast wykonywać zapytania dotyczące portu na zdalnym komputerze docelowym, można użyć portQry w trybie lokalnym, aby uzyskać szczegółowe informacje o portach TCP i portach UDP na komputerze lokalnym, na którym działa portQry. Użyj następującej składni, aby uruchomić usługę 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 czujki |
|
-wpid <pid> |
Identyfikator procesu obserwowanego (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 do pliku dziennika, jeśli jest używany). |
Uwagi dotyczące parametrów w trybie lokalnym
- Parametry
-local
,-wport
i-wpid
wzajemnie się wykluczają. Można użyć tylko jednego z tych parametrów w jednym ciągu polecenia PortQry. - Parametr
-q
nie działa w trybie lokalnym. - W niektórych przypadkach usługa PortQry może zgłosić, że proces bezczynności systemu (PID 0) używa niektórych portów TCP. To zachowanie może wystąpić, jeśli program lokalny łączy się 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 korzystającego z portu, ponieważ identyfikator PID został zwolniony. Domyślnie port pozostaje w stanie "Czas oczekiwania" przez dwa razy więcej niż maksymalny okres istnienia segmentu.
- W przypadku każdego procesu usługa PortQry raportuje 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 bezczynności 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, które ma podobne poświadczenia.
- Jeśli używasz
-wport
Esc lub-wpid
razem z-l
programem , użyj Esc, aby przerwać i zamknąć portQry zamiast CTRL+C. Należy nacisnąć Esc, aby upewnić się, że portQry poprawnie zamyka plik dziennika i kończy działanie. Jeśli naciśnij CTRL+C zamiast Esc, aby zatrzymać portQry, plik dziennika może stać się pusty lub uszkodzony.
Używanie usługi PortQry w trybie interaktywnym
Podczas rozwiązywania problemów z łącznością między komputerami może być konieczne wpisywanie wielu powtarzających się poleceń. Takie akcje można łatwiej wykonać przy użyciu usługi PortQry w trybie interaktywnym.
Tryb interaktywny jest podobny do funkcji interaktywnych w narzędziu DNS Nslookup 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 interaktywnego
W trybie interaktywnym można użyć następujących poleceń:
Polecenie | opis | Komentarze |
---|---|---|
node <name> lub n <name> |
Ustawianie miejsca docelowego na zapytanie |
|
query lub q |
Wyślij zapytanie |
|
set <option>=<value> |
Ustawianie wartości opcji zapytania |
|
exit |
Pozostaw tryb interaktywny |
Skróty zapytań w trybie interaktywnym
Poniższe skróty można używać razem z poleceniem query
, aby uruchamiać typowe zapytania bez konieczności ustawiania opcji portów i protokołów. Użyj następującej składni:
q <shortcut>
Uwaga 16.
W tym poleceniu <skrót> reprezentuje jeden ze skrótów z poniższej tabeli. Jeśli pominiesz skrót, q
polecenie wysyła zapytanie do portu TCP 80.
Skrót | 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 wprowadzanie q dns
w trybie interaktywnym 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ć set
polecenia , aby ustawić opcje, takie jak port źródłowy lub powolne opóźnienie łącza. Użyj następującej składni:
set <option>=<value>
Uwaga 16.
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 odwrotnej nazwy |
|
set sl |
Włącz lub wyłącz wolne opóźnienie łącza |
|
Załóżmy, że chcesz wykonać zapytanie dotyczące komputera, który ma adres IP 10.0.1.10. W wierszu polecenia trybu interaktywnego 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 odpowiadających im nazw usług. PortQry używa tych informacji do wybierania formatu zapytań. Możesz edytować ten plik, aby skierować portQry do wysyłania sformatowanych komunikatów do alternatywnego portu. Na przykład następujący wpis pojawia się w typowym pliku usług:
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, 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ć usługi PortQry i jego parametrów:
Tryb lokalny
- Wykonywanie zapytań względem komputera lokalnego
- Wykonywanie zapytań dotyczących komputera lokalnego, gdy dostęp może być ograniczony
- Monitorowanie identyfikatora procesu przy użyciu określonego interwału
- Wykonywanie zapytań za pośrednictwem powolnego łącza
Tryb wiersza polecenia
- Określanie obiektu docelowego i protokołu
- Określ co najmniej jeden port docelowy
- Określanie pliku dziennika dla danych wyjściowych portQry
- Uruchamianie usługi PortQry w trybie cichym przy użyciu pliku wsadowego
- Wykonywanie zapytań o port 135 (usługa RPC)
Wykonywanie zapytań względem komputera lokalnego
Dane wyjściowe funkcji portqry -local
przypominają następujący fragment:
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ń dotyczących komputera lokalnego, gdy dostęp może być ograniczony
Po uruchomieniu usługi PortQry w trybie lokalnym, podobnie 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 usługę 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 usługa PortQry wykonuje następujące akcje:
- Identyfikuje proces z 1276 identyfikatorem PID i sprawdza stan portów używanych co dwie sekundy do naciśnięcia Esc.
- Tworzy plik dziennika pid.txt. Jeśli plik o tej nazwie już istnieje, polecenie PortQry wyświetli monit o potwierdzenie, że chcesz zastąpić plik.
- 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 16.
Każdy z przykładów w tej sekcji wysyła zapytanie do portu 80, portu domyślnego.
Następujące polecenie wysyła zapytanie do domyślnego portu 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 wysyła zapytanie do domyślnego portu UDP na komputerze określonym przy użyciu jego nazwy komputera:
portqry -n myServer -p udp
Następujące polecenie wysyła zapytanie do domyślnych portów 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 wysyła zapytanie do domyślnego portu TCP serwera internetowego:
portqry -n www.widgets.microsoft.com
Określ co najmniej jeden port docelowy
Następujące polecenie testuje usługę SMTP serwera poczty, wykonując zapytanie o port TCP 25:
portqry -n mail.example.com -p tcp -e 25
Następujące polecenie wysyła zapytanie do portu TCP 60897 i portu UDP 60897 komputera, który ma adres IP 192.168.1.20:
portqry -n 192.168.1.20 -p both -e 60897
Następujące polecenie wysyła zapytania do 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 wysyła zapytanie do zakresu portów z 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 łącza
Następujące polecenie wysyła zapytania do portów TCP 143, 110 i 25 na mail.widgets.microsoft.com. Dla każdego portu docelowego portQry czeka dwa razy dłużej niż zwykle w przypadku odpowiedzi.
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 na 192.168.1.20. Jeśli usługa nasłuchuje na tym porcie i odpowiada na zapytanie, wysyła odpowiedź na port 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 w celu wysłania zapytania 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
Uruchamianie usługi PortQry w trybie cichym przy użyciu pliku wsadowego
Poniższy tekst jest przykładem pliku wsadowego, który uruchamia usługę 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 przypomina następującą zawartość:
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 =========
Wykonywanie zapytań 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 usługa PortQry wykonuje następujące akcje:
- PortQry używa pliku Usług w folderze %SYSTEMROOT%\System32\Drivers\Etc w celu rozpoznania portu UDP 135 do usługi. 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 FILTROWANY. - PortQry tworzy poprawnie sformatowane zapytanie RPC, które żąda wszystkich punktów końcowych, które są obecnie zarejestrowane za pomocą mapowania punktu końcowego RPC. PortQry wysyła to zapytanie do portu UDP 135 na komputerze docelowym.
- W zależności od odpowiedzi usługa PortQry wykonuje jedną z następujących akcji:
- Jeśli usługa PortQry otrzyma odpowiedź na to zapytanie, funkcja PortQry zwróci całą odpowiedź użytkownikowi i zgłosi, że port nasłuchuje.
- Jeśli usługa PortQry nie otrzyma odpowiedzi na to zapytanie, zgłasza, ż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 usług lub programów zarejestrowanych w bazie danych mapera punktów końcowych RPC na komputerze docelowym. Dane wyjściowe zawierają uniwersalny unikatowy identyfikator (UUID) dla każdego programu, nazwę adnotacji (jeśli istnieje), protokół używany przez każdy program, adres sieciowy, z którego jest powiązany program, oraz punkt końcowy programu w nawiasach kwadratowych.
Uwaga 16.
Po określeniu -r
opcji w poleceniu PortQry w celu skanowania zakresu portów portQry nie wysyła zapytań do mapera punktu końcowego RPC dla informacji o punkcie końcowym. Ten parametr przyspiesza skanowanie zakresu portów.