Windows에는 TCP/IP 네트워크(ping
, telnet
, pathping
, 등.). 그러나 이들 모두가 상태를 편리하게 확인하거나 원격 서버에서 열린 네트워크 포트를 스캔할 수 있는 것은 아닙니다. Portqry.exe 유틸리티는 TCP/IP 네트워크에서 다양한 네트워크 서비스 및 방화벽의 작동과 관련된 문제를 진단하기 위해 원격 호스트의 TCP/UDP 포트 응답을 확인하는 편리한 도구입니다. 대부분의 경우 Portqry 유틸리티는 telnet
을 보다 기능적으로 대체하는 데 사용됩니다. 명령이며 텔넷과 달리 열려 있는 UDP 포트도 확인할 수 있습니다.
PortQry로 열린 UDP/TCP 포트 스캔
Windows Server 2003용 PortQry의 첫 번째 버전은 최신 OS 버전(Windows Server 2008 이상)에서 올바르게 작동하지 않으므로 유틸리티의 두 번째 버전인 PortQryV2 , 출시되었습니다. 오늘 사용해야 하는 버전입니다(PortQryV2는 여기에서 다운로드할 수 있습니다).
Windows 10에서는 다음 명령과 함께 Chokolatey 패키지 관리자를 사용하여 PortQry를 설치할 수 있습니다.
choco install portqry
PortQryV2.exe 다운로드 및 압축 풀기 보관소. 명령 프롬프트를 실행하고 유틸리티가 있는 디렉터리로 이동합니다(예:
).
cd c:\tools\PortQryV2
예를 들어 클라이언트에서 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가 사용됨).
이 예에서 명령은 다음과 같습니다.
PortQry.exe –n 10.0.25.6 -p both -e 53
Portqry는 세 가지 사용 가능한 포트 상태 중 하나를 반환합니다.
- 듣기 – 포트가 열려 있고(연결 수락) 응답이 수신되었음을 의미합니다.
- 아니요 듣기 – 지정된 포트에서 연결을 수락하는 대상 시스템에 프로세스(서비스)가 없음을 나타냅니다. PortQry는 UDP 포트 또는 Reset 플래그가 있는 TCP 패킷을 확인할 때 "Destination Unreachable – Port Unreachable"이라는 ICMP 응답을 수신했습니다.
- 필터링됨 – PortQry가 지정된 포트에서 응답을 받지 못했거나 응답이 필터링되었음을 의미합니다. 즉, 이 포트는 대상 시스템에서 수신 대기하지 않거나 방화벽 또는 일부 시스템 설정에 의해 액세스가 제한됩니다. 기본적으로 TCP 포트는 3번 폴링되며 UDP는 1번입니다.
이 예에서 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 포트 스캐너로 작동).
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 를 누르십시오. 입력합니다.
-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, RPC(원격 프로시저 호출), 전자 메일 프로토콜 SMTP/POP3/IMAP4, SNMP, FTP/TFTP, NetBIOS 이름 서비스, L2TP 등이 있습니다. 서비스 상태를 가져옵니다.
예를 들어 다음 명령을 사용하여 RPC 종점 매퍼 서비스(TCP/135)의 가용성을 확인하고 컴퓨터에 등록된 RPC 종점의 이름 목록(이름, 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.
또는 Microsoft SQL Server에서 실행되는 SQL Server Browser 서비스에서 가용성 및 응답을 확인할 수 있습니다.
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는 RPC 범위에서 고정 TCP/53200 포트를 사용합니다.
커뮤니티 이름을 지정하여 장치의 SNMP 포트를 폴링할 수 있습니다.
portqry -n rome-sql1 -cn !snmp_trap! -e 161 -p udp
SMTP 서버에서 포트 TCP/25를 확인할 때 서비스 SMTP 배너를 얻을 수 있습니다.
portqry -n mx.woshub.com -p tcp -e 25
PortQuery GUI 버전
원래 PortQry는 독점적인 콘솔(CLI) 도구였습니다. 명령 프롬프트를 사용하고 싶지 않은 사용자를 위해 더 편리하게 하기 위해 Microsoft는 portqry를 위한 간단한 그래픽 인터페이스인 PortQueryUI를 개발했습니다. . 공식 Microsoft 다운로드 웹사이트 PortQueryUI에서 PortQueryUI를 다운로드할 수 있습니다.
실제로 PortQueryUI는 portqry가 명령을 생성하고 그래픽 창에 결과를 반환하는 그래픽 애드온입니다.
또한 PortQueryUI에는 인기 있는 Microsoft 서비스의 가용성을 확인하기 위해 미리 정의된 몇 가지 쿼리 집합이 포함되어 있습니다.
- 도메인 및 트러스트(Active Directory 도메인 컨트롤러에서 ADDS 서비스 확인)
- 교환 서버
- SQL 서버
- 네트워킹
- IP 초
- 웹 서버
- 넷 미팅
PortQueryUI는 특별한 설명이 필요하지 않다고 생각합니다. 아래 스크린샷을 보면 명확해야 합니다. DNS 이름 입력 또는 IP 주소 원격 서버의 사전 정의된 서비스 중 하나를 선택합니다(미리 정의된 서비스 쿼리 ) 또는 수동 포트 확인을 위한 포트 번호 지정(쿼리 포트 수동 입력 ) 쿼리를 클릭합니다. 버튼.
PortQueryUI에서 가능한 반환 코드(스크린샷에서 강조 표시됨):
- 0 (0x00000000) – 연결이 성공적으로 설정되었으며 포트를 사용할 수 있습니다.
- 1 (0x00000001) – 지정된 포트를 사용할 수 없거나 필터링됨
- 2 (0x00000002 – ACK 응답이 반환되지 않기 때문에 UDP 연결의 가용성을 확인할 때 정상적인 반환 코드입니다.