Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การใช้ PortQry เพื่อตรวจสอบพอร์ตที่เปิด TCP/UDP (เครื่องสแกนพอร์ต)

Windows มีเครื่องมือมากมายสำหรับการวินิจฉัยปัญหาในเครือข่าย TCP/IP (ping , telnet , pathping เป็นต้น) แต่ไม่ใช่ทั้งหมดที่ช่วยให้คุณสามารถตรวจสอบสถานะหรือสแกนพอร์ตเครือข่ายที่เปิดอยู่บนเซิร์ฟเวอร์ระยะไกลได้อย่างสะดวก Portqry.exe ยูทิลิตีเป็นเครื่องมือที่สะดวกในการตรวจสอบการตอบสนองของพอร์ต TCP/UDP บนโฮสต์ระยะไกลเพื่อวินิจฉัยปัญหาที่เกี่ยวข้องกับการทำงานของบริการเครือข่ายและไฟร์วอลล์ต่างๆ ในเครือข่าย TCP/IP บ่อยครั้งที่ยูทิลิตี้ Portqry ถูกใช้แทน telnet คำสั่ง ซึ่งต่างจาก telnet ตรงที่ให้คุณตรวจสอบพอร์ต UDP ที่เปิดอยู่

การสแกนพอร์ต UDP/TCP แบบเปิดด้วย PortQry

PortQry เวอร์ชันแรกสำหรับ Windows Server 2003 ทำงานไม่ถูกต้องในระบบปฏิบัติการเวอร์ชันใหม่กว่า (Windows Server 2008 และใหม่กว่า) ดังนั้นยูทิลิตี้เวอร์ชันที่สอง PortQryV2 ,ได้รับการปล่อยตัว. เป็นเวอร์ชันที่คุณควรใช้วันนี้ (คุณสามารถดาวน์โหลด PortQryV2 ได้ที่นี่)

ใน Windows 10 คุณสามารถติดตั้ง PortQry โดยใช้ตัวจัดการแพ็คเกจ Chokolaty ด้วยคำสั่ง:

choco install portqry

ดาวน์โหลดและแตกไฟล์ PortQryV2.exe คลังเก็บเอกสารสำคัญ. เรียกใช้พรอมต์คำสั่งและไปที่ไดเร็กทอรีที่มียูทิลิตี้ ตัวอย่างเช่น:

cd c:\tools\PortQryV2

การใช้ PortQry เพื่อตรวจสอบพอร์ตที่เปิด TCP/UDP (เครื่องสแกนพอร์ต)

ตัวอย่างเช่น ในการตรวจสอบความพร้อมใช้งานของเซิร์ฟเวอร์ DNS จากไคลเอนต์ คุณต้องตรวจสอบว่าพอร์ต 53 TCP และ UDP เปิดอยู่หรือไม่ ไวยากรณ์ของคำสั่งตรวจสอบพอร์ตมีดังนี้:

PortQry -n server [-p protocol] [-e || -r || -o endpoint(s)]

  • -n คือชื่อหรือที่อยู่ IP ของเซิร์ฟเวอร์ที่คุณกำลังตรวจสอบความพร้อมใช้งาน
  • -อี คือหมายเลขพอร์ตที่จะตรวจสอบ (ตั้งแต่ 1 ถึง 65535);
  • -r คือช่วงของพอร์ตที่จะตรวจสอบ (เช่น 1:80);
  • -p เป็นโปรโตคอลที่ใช้ตรวจสอบ อาจเป็น TCP, UDP หรือ BOTH (ค่าเริ่มต้นจะใช้ TCP)
หมายเหตุ . ไม่เหมือนกับ cmdlet ของ Test-NetConnection PowerShell ที่สามารถใช้เพื่อตรวจสอบความพร้อมใช้งานของพอร์ต TCP เท่านั้น ยูทิลิตี้ PortQry รองรับทั้งโปรโตคอล TCP และ UDP

ในตัวอย่างของเรา คำสั่งจะมีลักษณะดังนี้:

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

การใช้ PortQry เพื่อตรวจสอบพอร์ตที่เปิด TCP/UDP (เครื่องสแกนพอร์ต)

Portqry จะส่งคืนสถานะพอร์ตที่มีอยู่หนึ่งในสามสถานะ:

  • การฟัง – หมายความว่าพอร์ตเปิดอยู่ (ยอมรับการเชื่อมต่อ) ได้รับการตอบกลับจากพอร์ตนั้นแล้ว
  • ไม่ การฟัง – แสดงว่าไม่มีกระบวนการใดๆ (บริการ) บนระบบเป้าหมายที่ยอมรับการเชื่อมต่อบนพอร์ตที่ระบุ PortQry ได้รับการตอบสนอง ICMP “Destination Unreachable – Port Unreachable” เมื่อตรวจสอบพอร์ต UDP หรือแพ็กเก็ต TCP ด้วยการตั้งค่าสถานะรีเซ็ต
  • กรองแล้ว – หมายความว่า PortQry ไม่ได้รับการตอบกลับจากพอร์ตที่ระบุหรือมีการกรองการตอบสนอง กล่าวคือ พอร์ตนี้ไม่รับฟังจากระบบเป้าหมายหรือการเข้าถึงถูกจำกัดโดยไฟร์วอลล์หรือการตั้งค่าระบบบางอย่าง โดยค่าเริ่มต้น พอร์ต TCP จะถูกสำรวจ 3 ครั้ง และ UDP เป็นหนึ่งพอร์ต

ในตัวอย่างของเรา เซิร์ฟเวอร์ DNS จะพร้อมใช้งานจากไคลเอ็นต์ทั้งผ่านพอร์ต TCP และ UDP

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

ใช้ -o คุณสามารถระบุลำดับของพอร์ตเพื่อตรวจสอบความพร้อมใช้งานได้:

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

คำสั่งถัดไปจะสแกนช่วงของหมายเลขพอร์ต TCP/IP ที่รู้จักกันดีและส่งคืนรายการพอร์ตที่ยอมรับการเชื่อมต่อ (ทำงานเป็น TCP Port Scanner):

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

คุณสามารถบันทึกผลการสแกนพอร์ตที่เปิดอยู่ในไฟล์ข้อความ:

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

ยูทิลิตี portqry มีโหมดโต้ตอบ:

portqry –i

ตอนนี้ ที่พร้อมท์ PortQry Interactive Mode คุณสามารถระบุชื่อของคอมพิวเตอร์ระยะไกลและหมายเลขพอร์ต:

node srv-lic
set port=80

ในการตรวจสอบพอร์ตบนเซิร์ฟเวอร์ที่ระบุ ให้กด q และป้อน

การใช้ PortQry เพื่อตรวจสอบพอร์ตที่เปิด TCP/UDP (เครื่องสแกนพอร์ต)

การใช้ -wport และ -wpid อาร์กิวเมนต์ คุณสามารถตรวจสอบสถานะของพอร์ตที่ระบุ (wport) หรือพอร์ตทั้งหมดที่เกี่ยวข้องกับกระบวนการที่ระบุ (wpid) บนโฮสต์ท้องถิ่นได้

ตัวอย่างเช่น คำสั่งต่อไปนี้จะตรวจสอบการตอบสนองของพอร์ตภายในเครื่องที่ระบุภายใน 10 นาที (เช่น พอร์ต RDP 3389) และหากสถานะเปลี่ยนแปลง คำสั่งนี้จะแจ้งให้ผู้ดูแลระบบทราบ (บันทึกโดยละเอียดจะมีอยู่ใน LogFile .txt) หากต้องการหยุดการตรวจสอบพอร์ต ให้กด Ctrl-C:

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

คุณรับข้อมูลเกี่ยวกับพอร์ตที่เปิดอยู่และการเชื่อมต่อ TCP/UDP ที่ใช้งานอยู่ในเครื่องคอมพิวเตอร์ได้:

portqry.exe -local

สถานะพอร์ตเปิดของบริการเครือข่ายขั้นสูงใน PortQry

PortQry มีการรองรับบริการเครือข่ายบางอย่างในตัว ได้แก่ LDAP, Remote Procedure Calls (RPC), โปรโตคอลอีเมล SMTP/POP3/IMAP4, SNMP, FTP/ TFTP, NetBIOS Name Service, L2TP เป็นต้น นอกจากการตรวจสอบความพร้อมใช้งานของพอร์ตแล้ว เครื่องมือยังดำเนินการร้องขอเฉพาะโปรโตคอลไปยัง รับสถานะการบริการ

ตัวอย่างเช่น การใช้คำสั่งต่อไปนี้ คุณสามารถตรวจสอบความพร้อมใช้งานของ RPC endpoint mapper service (TCP/135) และรับรายชื่อของ RPC endpoints ที่ลงทะเบียนบนคอมพิวเตอร์ (รวมถึงชื่อ UUID ที่อยู่ที่ถูกผูกไว้ และ แอปพลิเคชันที่เกี่ยวข้อง)

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.

หรือคุณสามารถตรวจสอบความพร้อมใช้งานและการตอบสนองจากบริการเบราว์เซอร์เซิร์ฟเวอร์ SQL ที่ทำงานบน Microsoft SQL Server:

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

ดังที่คุณเห็นแล้ว เครื่องมือ PortQry ไม่เพียงแสดงให้เห็นความพร้อมใช้งานของพอร์ต 1434/UDP แต่ยังแสดงเวอร์ชันของเซิร์ฟเวอร์ SQL และชื่อของอินสแตนซ์ที่ทำงานบนเซิร์ฟเวอร์ SQL และพอร์ต TCP อินสแตนซ์ DBINVENT แรกรับฟังบนพอร์ตเริ่มต้น TCP/1433 และ MSSQLSERVER ที่สองใช้พอร์ต TCP/53200 คงที่จากช่วง RPC

การใช้ PortQry เพื่อตรวจสอบพอร์ตที่เปิด TCP/UDP (เครื่องสแกนพอร์ต)

คุณสามารถสำรวจพอร์ต SNMP บนอุปกรณ์โดยระบุชื่อชุมชน:

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

เมื่อตรวจสอบพอร์ต TCP/25 บนเซิร์ฟเวอร์ SMTP คุณสามารถรับแบนเนอร์ SMTP ของบริการได้:

portqry -n mx.woshub.com  -p tcp -e 25

เวอร์ชัน PortQuery GUI

ในขั้นต้น PortQry เป็นเครื่องมือคอนโซล (CLI) เท่านั้น เพื่อให้สะดวกยิ่งขึ้นสำหรับผู้ใช้ที่ไม่ชอบใช้พรอมต์คำสั่ง Microsoft ได้พัฒนาอินเทอร์เฟซกราฟิกอย่างง่ายสำหรับ portqry – PortQueryUI . คุณสามารถดาวน์โหลด PortQueryUI ได้จากเว็บไซต์ดาวน์โหลดอย่างเป็นทางการของ Microsoft:PortQueryUI

อันที่จริง PortQueryUI เป็นส่วนเสริมกราฟิกสำหรับ portqry เพื่อสร้างคำสั่งและส่งคืนผลลัพธ์ในหน้าต่างกราฟิก

นอกจากนี้ PortQueryUI ยังมีชุดการสืบค้นที่กำหนดไว้ล่วงหน้าหลายชุดเพื่อตรวจสอบความพร้อมใช้งานของบริการยอดนิยมของ Microsoft:

  • โดเมนและ trusts (ตรวจสอบบริการ ADDS บนตัวควบคุมโดเมน Active Directory)
  • เซิร์ฟเวอร์แลกเปลี่ยน
  • เซิร์ฟเวอร์ SQL
  • เครือข่าย
  • IP วินาที
  • เว็บเซิร์ฟเวอร์
  • การประชุมสุทธิ

ฉันคิดว่า PortQueryUI ไม่ต้องการความคิดเห็นพิเศษใดๆ ควรมีความชัดเจนหากคุณดูภาพหน้าจอด้านล่าง ป้อน ชื่อ DNS หรือ ที่อยู่ IP ของเซิร์ฟเวอร์ระยะไกล เลือกหนึ่งในบริการที่กำหนดไว้ล่วงหน้า (ค้นหาบริการที่กำหนดไว้ล่วงหน้า ) หรือระบุหมายเลขพอร์ตสำหรับการตรวจสอบพอร์ตด้วยตนเอง (ป้อนพอร์ตการสืบค้นด้วยตนเอง ) และคลิก แบบสอบถาม ปุ่ม.

การใช้ PortQry เพื่อตรวจสอบพอร์ตที่เปิด TCP/UDP (เครื่องสแกนพอร์ต)

รหัสส่งคืนที่เป็นไปได้ใน PortQueryUI (เน้นในภาพหน้าจอ):

  • 0 (0x00000000) – สร้างการเชื่อมต่อสำเร็จและพอร์ตพร้อมใช้งาน
  • 1 (0x00000001) – พอร์ตที่ระบุไม่พร้อมใช้งานหรือถูกกรอง;
  • 2 (0x00000002 – รหัสส่งคืนปกติเมื่อตรวจสอบความพร้อมใช้งานของการเชื่อมต่อ UDP เนื่องจากไม่มีการตอบกลับ ACK