PortQryを使用したTCP/UDPオープンポートのチェック(ポートスキャナー)
Windowsには、TCP / IPネットワークの問題を診断するための多くのツールがあります(ping
、telnet
、pathping
など)。ただし、すべてのサーバーでステータスを簡単に確認したり、リモートサーバーで開いているネットワークポートをスキャンしたりできるわけではありません。 Portqry.exe ユーティリティは、リモートホストのTCP / UDPポートの応答をチェックして、TCP/IPネットワークのさまざまなネットワークサービスとファイアウォールの動作に関連する問題を診断するための便利なツールです。ほとんどの場合、Portqryユーティリティは、telnet
のより機能的な代替として使用されます。 コマンドであり、telnetとは異なり、開いているUDPポートを確認することもできます。
PortQry for Windows Server 2003の最初のバージョンは新しいOSバージョン(Windows Server 2008以降)では正しく機能しないため、ユーティリティの2番目のバージョンである 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アドレスであり、チェックしている可用性です。
- -e チェックするポート番号(1から65535)です。
- -r チェックするポートの範囲です(たとえば、1:80)。
- -p チェックに使用されるプロトコルです。 TCP、UDP、または両方の場合があります(デフォルトではTCPが使用されます)。
この例では、コマンドは次のようになります。
PortQry.exe –n 10.0.25.6 -p both -e 53
Portqryは、使用可能な3つのポート状態のいずれかを返します。
- 聞く –ポートが開いている(接続を受け入れる)ことを意味し、ポートから応答を受信しました。
- ない 聞く –指定されたポートで接続を受け入れるプロセス(サービス)がターゲットシステムにないことを示します。 PortQryは、UDPポートまたはリセットフラグ付きのTCPパケットをチェックするときに、ICMP応答「DestinationUnreachable –PortUnreachable」を受信しました。
- フィルタリング – 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インタラクティブモードプロンプトで、リモートコンピューターの名前とポート番号を指定できます。
node srv-lic
set port=80
指定したサーバーのポートを確認するには、 qを押します。 と入力します。
-wportを使用する および-wpid 引数を指定すると、指定されたポート(wport)、またはローカルホスト上の指定されたプロセス(wpid)に関連付けられているすべてのポートのステータスを監視できます。
たとえば、次のコマンドは、指定されたローカルポート(たとえば、RDPポート3389)の応答を監視し、ステータスが変更された場合は、これについて管理者に通知します(詳細なログはLogFileにあります)。 。txt)。ポート監視を停止するには、Ctrl-Cを押します:
portqry -wport 3389 -wt 600 –l LogFile.txt -y -v
ローカルコンピュータで開いているポートとアクティブなTCP/UDP接続に関する情報を取得できます:
portqry.exe -local
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.
または、MicrosoftSQLServerで実行されているSQLServerブラウザサービスからの可用性と応答を確認できます。
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でリッスンし、2番目の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
PortQueryGUIバージョン
元々、PortQryは専らコンソール(CLI)ツールでした。コマンドプロンプトを使用したくないユーザーにとってより便利にするために、Microsoftはportqry用のシンプルなグラフィックインターフェイスを開発しました– PortQueryUI 。 PortQueryUIは、Microsoftの公式ダウンロードWebサイトPortQueryUIからダウンロードできます。
実際、PortQueryUIは、portqryがコマンドを生成し、結果をグラフィックウィンドウに返すためのグラフィックアドオンです。
さらに、PortQueryUIには、人気のあるMicrosoftサービスの可用性を確認するための事前定義されたクエリのセットがいくつか含まれています。
- ドメインと信頼(Active Directoryドメインコントローラー上のADDSサービスを確認する)
- Exchange Server
- SQL Server
- ネットワーキング
- IP秒
- Webサーバー
- ネットミーティング
PortQueryUIには特別なコメントは必要ないと思います。下のスクリーンショットを見るとはっきりしているはずです。 DNS名を入力します またはIPアドレス リモートサーバーから、事前定義されたサービスの1つを選択します(事前定義されたサービスのクエリ )、または手動ポートチェック用のポート番号を指定します(手動でクエリポートを入力 )そしてクエリをクリックします ボタン。
PortQueryUIで可能なリターンコード(スクリーンショットで強調表示):
- 0 (0x00000000)–接続が正常に確立され、ポートが使用可能になりました。
- 1 (0x00000001)–指定されたポートは使用できないかフィルタリングされています;
- 2 (0x00000002 – ACK応答が返されないため、UDP接続の可用性を確認するときの通常の戻りコード。
-
Rubyでポートスキャナーを作成する方法
なぜポートスキャナーを作成したいのですか? ポートスキャナーを作成することは、トランスポート層であるTCPプロトコルの基本を学ぶための優れた方法です。 ほとんどのインターネットプロトコル(HTTPおよびSSHを含む)で使用されます。 Rubyネットワークプログラミングがどのように機能するかを学ぶのも良い練習です。 ポートについて話すことから始めましょう! ポートとは何ですか? ポートについて話すとき、私たちは本当に何について話しているのですか? O.S.の港(オペレーティングシステム)レベルは、プロセスに関連付けられた単なる「ファイル記述子」です。 ファイル記述子 stdoutのよう
-
ルーターのポートを転送または開くためのステップ バイ ステップ ガイド
デフォルトでは、ルーターは (ネットワークへの) すべての着信接続をブロックし、インターネットへのすべての発信接続を許可して、究極のセキュリティを維持します。ルーターを、ドアと開口部がいくつかある巨大な電気壁と想像してみてください。ルーターは、デジタル世界からのセキュリティ ブランケットまたはシールドとして機能します。ドア (ポート) が事前に構成された状態で出荷されるため、インターネットにアクセスできる一方で、他のポートをしっかりと閉じたままにしておくことで、ホーム ネットワークやビジネス ネットワークでの不正アクセスを防ぐことができます。 ただし、特定のメール サーバー、ゲーム サーバー