TCP/UDP Açık Bağlantı Noktalarını Kontrol Etmek için PortQry'yi Kullanma (Port Tarayıcı)


Windows, TCP/IP ağlarındaki sorunları tanılamak için birçok araca sahiptir (

ping

,

telnet

,

pathping

, vesaire.). Ancak hepsi, uzak bir sunucuda durumu kolayca kontrol etmenize veya açık ağ bağlantı noktalarını taramanıza izin vermez. Portqry.exe yardımcı programı, TCP/IP ağlarındaki çeşitli ağ hizmetlerinin ve güvenlik duvarlarının çalışmasıyla ilgili sorunları teşhis etmek için uzak ana bilgisayarlardaki TCP/UDP bağlantı noktalarının yanıtını kontrol etmeye yarayan kullanışlı bir araçtır. Çoğu zaman, Portqry yardımcı programı, daha işlevsel bir yedek olarak kullanılır.

telnet

komut ve telnet'ten farklı olarak, açık UDP bağlantı noktalarını kontrol etmenizi de sağlar.

Açık UDP/TCP Bağlantı Noktalarını PortQry ile Tarama

Windows Server 2003 için PortQry'nin ilk sürümü, daha yeni işletim sistemi sürümlerinde (Windows Server 2008 ve daha yeni) düzgün çalışmadığından, yardımcı programın ikinci sürümü olan PortQryV2 piyasaya sürüldü. Bugün kullanmanız gereken sürümdür (PortQryV2'yi buradan indirebilirsiniz).

PortQryV2.exe arşivini indirip ayıklayın. Komut istemini çalıştırın ve yardımcı programın bulunduğu dizine gidin, örneğin:

cd c:\tools\PortQryV2

Örneğin, bir istemciden bir DNS sunucusunun kullanılabilirliğini kontrol etmek için, üzerinde 53 TCP ve UDP bağlantı noktasının açık olup olmadığını kontrol etmeniz gerekir. Port check komutunun sözdizimi aşağıdaki gibidir:

PortQry -n server [-p protocol] [-e || -r || -o endpoint(s)]
  • -n uygunluğunu kontrol ettiğiniz sunucunun adı veya IP adresidir;

  • -e, kontrol edilecek bağlantı noktası numarasıdır (1'den 65535'e kadar);

  • -r, kontrol edilecek bağlantı noktası aralığıdır (örneğin, 1:80);

  • -p, kontrol için kullanılan protokoldür. TCP, UDP veya BOTH olabilir (varsayılan olarak TCP kullanılır).

Not. Yalnızca TCP bağlantı noktalarının kullanılabilirliğini kontrol etmek için kullanılabilen Test-NetConnection PowerShell cmdlet'inden farklı olarak, PortQry yardımcı programı hem TCP hem de UDP protokollerini destekler.

Örneğimizde, komut şöyle görünür:

PortQry.exe -n 10.0.25.6 -p both -e 53

Portqry, kullanılabilir üç bağlantı noktası durumundan birini döndürür:

  • Dinleniyor - bağlantı noktasının açıldığı (bağlantıları kabul ettiği), porttan bir yanıt alındığı anlamına gelir;

  • Değil Dinleniyor - hedef sistemde belirtilen bağlantı noktasındaki bağlantıları kabul eden herhangi bir işlem (hizmet) olmadığını gösterir. PortQry, UDP bağlantı noktasını veya Reset bayrağıyla TCP paketini kontrol ederken "Hedefe Ulaşılamaz - Bağlantı Noktasına Ulaşılamaz" şeklinde bir ICMP yanıtı aldı;

  • Filtrelenmiş - PortQry'nin belirtilen bağlantı noktasından herhangi bir yanıt almadığı veya yanıtın filtrelendiği anlamına gelir. Yani, bu bağlantı noktası hedef sistemi dinlemiyor veya buna erişim bir güvenlik duvarı veya bazı sistem ayarları tarafından kısıtlanıyor. Varsayılan olarak, TCP bağlantı noktaları 3 kez yoklanır ve UDP birdir.

Örneğimizde, DNS sunucusu istemciden hem TCP hem de UDP bağlantı noktaları üzerinden kullanılabilir.

TCP port 53 (domain service): LISTENING
UDP port 53 (domain service): LISTENING

-o niteliğini kullanarak, kullanılabilirliklerini kontrol etmek için bağlantı noktalarının sırasını belirleyebilirsiniz:

portqry -n 10.0.25.6 -p tcp -o 21,110,143

Bir sonraki komut, iyi bilinen TCP/IP bağlantı noktası numaralarının aralıklarını tarar ve bağlantıları kabul eden bağlantı noktalarının listesini döndürür (TCP Bağlantı Noktası Tarayıcısı olarak çalışır):

portqry -n 10.0.25.6 -r 1:1024 | find ": LISTENING"

Açık bağlantı noktaları tarama sonucunu bir metin dosyasına kaydedebilirsiniz:

portqry -n 10.0.25.6 -p tcp -r 20:500 -l scan_port_log.txt

portqry yardımcı programının etkileşimli bir modu vardır:

portqry -i

Artık PortQry Etkileşimli Mod isteminde, uzak bilgisayarın adını ve bağlantı noktası numarasını belirtebilirsiniz:

node srv-lic
set port=80

Belirtilen sunucudaki bağlantı noktasını kontrol etmek için q ve Enter'a basın.

-wport ve -wpid argümanlarını kullanarak, yerelde belirtilen bağlantı noktasının (wport) veya belirtilen işlemle ilişkili tüm bağlantı noktalarının (wpid) durumunu izleyebilirsiniz. ev sahibi.

Örneğin, aşağıdaki komut, belirtilen yerel bağlantı noktasının yanıtını 10 dakika içinde izleyecektir (örneğin, RDP bağlantı noktası 3389) ve durumu değişirse yöneticiye bunu bildirecektir (ayrıntılı bir günlük, LogFile dosyasında mevcut olacaktır) .txt). Bağlantı noktası izlemeyi durdurmak için Ctrl-C tuşlarına basın:

portqry -wport 3389 -wt 600 -l LogFile.txt -y -v

Yerel bilgisayarda açık portlar ve etkin TCP/UDP bağlantıları hakkında bilgi alabilirsiniz:

portqry.exe -local

Gelişmiş Ağ Hizmetleri PortQry'de Açık Bağlantı Noktaları Durumu

PortQry, bazı ağ hizmetleri için yerleşik desteğe sahiptir. Bunlar LDAP, Uzaktan Yordam Çağrıları (RPC), e-posta protokolleri SMTP/POP3/IMAP4, SNMP, FTP/TFTP, NetBIOS Ad Hizmeti, L2TP vb. hizmetlerin durumunu öğrenin.

Örneğin, aşağıdaki komutu kullanarak, RPC uç noktası eşleyici hizmetinin (TCP/135) kullanılabilirliğini kontrol edebilir ve bilgisayarda kayıtlı RPC uç noktalarının adlarının listesini alabilirsiniz (adları, UUID'si, bağlı oldukları adres, ve ilgili oldukları uygulama).

portqry -n 10.0.25.6 -p tcp -e 135
TCP port 135 (epmap service): LISTENING
Using ephemeral source port
Querying Endpoint Mapper Database…
Server’s response:
UUID: d95afe72-a6d5-4259-822e-2c84da1ddb0d
ncacn_ip_tcp:10.0.25.6 [49152]
UUID: 8975497f-93f3-4376-9c9c-fd2277495c27 Frs2 Service
ncacn_ip_tcp:10.0.25.6 [5722]
UUID: 6b5bd21e-528c-422c-af8c-a4079be4a448 Remote Fw APIs
ncacn_ip_tcp:10.0.25.6 [63006]
UUID: 12345678-1234-abcd-ef22-0123456789ab IPSec Policy agent endpoint
ncacn_ip_tcp:10.0.25.6 [63006]
UUID: 367abb81-9844-35f1-ad32-912345001003
ncacn_ip_tcp:10.0.25.6 [63002]
UUID: 50cda2a3-574d-40b3-1d66-ee4aaa33a076
ncacn_ip_tcp:10.0.25.6 [56020]
……..
UUID: 3c4428c5-f0ab-448b-bda1-6ce01eb0a6d5 DHCP Client LRPC Endpoint
ncacn_ip_tcp:10.0.25.6 [49153]
Total endpoints found: 61
==== End of RPC Endpoint Mapper query response ====
portqry.exe -n 10.0.25.6 -e 135 -p TCP exits with return code 0x00000000.

Veya Microsoft SQL Server üzerinde çalışan SQL Server Browser hizmetinden kullanılabilirliği ve yanıtı kontrol edebilirsiniz:

PortQry.exe -n rome-sql01 -e 1434 -p UDP
UDP port 1434 (ms-sql-m service): LISTENING or FILTERED
Sending SQL Server query to UDP port 1434...
Server's response:
ServerName ROME-SQL01
InstanceName MSSQLSERVER
IsClustered No
Version 15.0.2000.5
tcp 53200

ServerName ROME-SQL01
InstanceName DBINVENT
IsClustered No
Version 15.0.2000.5
tcp 1433
==== End of SQL Server query response ====
UDP port 1434 is LISTENING

Gördüğünüz gibi, PortQry aracı yalnızca 1434/UDP bağlantı noktasının kullanılabilirliğini değil, aynı zamanda SQL sunucusunun sürümünü ve SQL sunucusunda çalışan örneklerin adlarını ve bunların TCP bağlantı noktalarını da gösterdi. İlk DBINVENT yönetim ortamı, TCP/1433 varsayılan bağlantı noktasını dinler ve ikinci MSSQLSERVER, RPC aralığından sabit bir TCP/53200 bağlantı noktasını kullanır.

Topluluk adını belirterek cihazdaki SNMP bağlantı noktasını sorgulayabilirsiniz:

portqry -n rome-sql1 -cn !snmp_trap! -e 161 -p udp

Bir SMTP sunucusunda TCP/25 bağlantı noktasını kontrol ederken, SMTP başlığını alabilirsiniz:

portqry -n mx.a-d.site  -p tcp -e 25

PortQuery GUI Sürümü

Başlangıçta PortQry yalnızca bir konsol (CLI) aracıydı. Microsoft, komut istemini kullanmaktan hoşlanmayan kullanıcılar için daha uygun hale getirmek amacıyla portqry için basit bir grafik arayüz geliştirdi - PortQueryUI. PortQueryUI'yi resmi Microsoft indirme web sitesinden indirebilirsiniz: PortQueryUI.

Aslında, PortQueryUI, portqry'nin bir komut oluşturması ve sonucu grafik penceresinde döndürmesi için bir grafik eklentisidir.

Ek olarak, PortQueryUI, popüler Microsoft hizmetlerinin kullanılabilirliğini kontrol etmek için önceden tanımlanmış birkaç sorgu seti içerir:

  • Etki alanı ve tröstler (bir Active Directory etki alanı denetleyicisinde ADDS hizmetlerini kontrol etme)

  • Değişim Sunucusu

  • SQL Server

  • ağ oluşturma

  • IP Güvenliği

  • Web sunucusu

  • Ağ Toplantısı

PortQueryUI'nin herhangi bir özel yoruma ihtiyacı olmadığını düşünüyorum. Aşağıdaki ekran görüntüsüne bakarsanız açık olmalıdır. Uzak sunucunun DNS adını veya IP adresini girin, önceden tanımlanmış hizmetlerden birini seçin (Önceden tanımlanmış hizmeti sorgula) veya bağlantı noktası numaralarını belirtin manuel bağlantı noktası kontrolü için (Sorgu bağlantı noktalarını manuel olarak girin) ve Sorgu düğmesini tıklayın.

PortQueryUI'deki olası dönüş kodları (ekran görüntüsünde vurgulanmıştır):

  • 0 (0x00000000) - bağlantı başarıyla kuruldu ve bağlantı noktası kullanılabilir;

  • 1 (0x00000001) - belirtilen bağlantı noktası mevcut değil veya filtrelenmiş;

  • 2 (0x00000002 - ACK yanıtı döndürülmediğinden, bir UDP bağlantısının kullanılabilirliği kontrol edilirken normal bir dönüş kodu.

İlgili makaleler