ポートクエリ(PortQry.exe)は、Windowsオペレーティングシステムのコマンドラインユーティリティであり、TCP / IP接続の問題のトラブルシューティングに使用できます。このツールは、選択したコンピューターのTCPポートとUDPポートのポートステータスを報告します。この投稿では、ネットワーク偵察またはフォレンジックアクティビティにポートクエリツールを使用する方法を紹介します。
Windows 10のポートクエリ(PortQry.exe)ツール
Windowsには、TCP / IPネットワークの問題(ping、telnet、パスなど)を診断するための多くのツールがあります。ただし、すべてのサーバーでステータスを簡単に確認したり、開いているネットワークポートをスキャンしたりできるわけではありません。 PortQry.exeユーティリティは、ホスト上のTCP / UDPポートの応答をチェックして、TCP / IPネットワーク内のさまざまなネットワークサービスとファイアウォールの動作に関連する問題を診断するための便利なツールです。ほとんどの場合、Portqryユーティリティはtelnetコマンドのより機能的な代替として使用され、telnetとは異なり、開いているUDPポートを確認することもできます。
コンピュータシステムはほとんどの通信にTCPとUDPを使用し、Windowsのすべてのバージョンは、ファイル共有やリモートプロシージャコール(RPC)などの便利な機能を提供する多くのポートを開きます。ただし、トロイの木馬などの悪意のあるプログラムは、ポートを悪用して、攻撃者がコンピュータシステムに侵入するためのバックドアを開く可能性があります。必要なネットワークサービスのトラブルシューティングが必要な場合でも、不要なプログラムを検出する必要がある場合でも、ネットワーク上のコンピューター間のトラフィックを理解して管理できる必要があります。そのための基本的な手順は、コンピュータシステムのネットワークポートでリッスンしているプログラムを特定することです。
ポートクエリツール(PortQry.exe)の使用方法
ポートクエリは、サーバー上でローカルとリモートの両方で使用できます。Portqry.exeを使用するには、ツールをダウンロードする必要があります。PortQry.exeをダウンロードしたら、PortQryV2.exeアーカイブを抽出し、コマンドプロンプトを開き、以下のコマンドを実行して、ユーティリティのあるディレクトリに移動します。
cd c:\ PortQryV2
または、ツールをダウンロードしたフォルダーに移動し、Alt + Dキーの組み合わせを押して、CMDと入力し、Enterキーを押して、ディレクトリ内でコマンドプロンプトを起動することもできます。
これで、ツールの使用に進むことができます。
ポートクエリ(PortQry.exe)ツールをリモートで使用する
ポートクエリはリモートシステムをスキャンできますが、他のポートスキャナーに比べて遅く、洗練されていません。たとえば、Nmapとは異なり、PortQry.exeでは、指定されたパケットフラグ(SYN、FINなど)を使用するスキャンを実行できません。
たとえば、クライアントからのDNSサーバーの可用性を確認するには、53個のTCPポートとUDPポートが開いているかどうかを確認する必要があります。portcheckコマンドの構文は次のとおりです。
PortQry-nサーバー[-pプロトコル] [-e || -r || -oエンドポイント]
どこ:
- -nは、サーバーの名前またはIPアドレスであり、可用性を確認しています。
- -eは、チェックするポート番号(1〜65535)です。
- -rは、チェックするポートの範囲です(たとえば、1:80)。
- -pは、チェックに使用されるプロトコルです。TCP、UDP、または両方の場合があります(デフォルトではTCPが使用されます)。
この例では、コマンドは次のようになります。
PortQry.exe –n 10.0.25.6-p両方-e53
PortQry.exeは、単一のポート、ポートの順序付きリスト、またはポートの順次範囲を照会できます。PortQry.exeは、次の3つの方法のいずれかでTCP / IPポートのステータスを報告します。
- リスニング:プロセスは、選択したコンピューターのポートでリスニングしています。Portqry.exeがポートから応答を受信しました。
- リッスンしていない:ターゲットシステムのターゲットポートでリッスンしているプロセスはありません。Portqry.exeは、ターゲットUDPポートからインターネット制御メッセージプロトコル(ICMP)の「DestinationUnreachable –PortUnreachable」メッセージを受信しました。または、ターゲットポートがTCPポートの場合、Portqryはリセットフラグが設定されたTCP確認応答パケットを受信しました。
- フィルタリング:あなたが選択したコンピュータのポートがフィルタリングされています。Portqry.exeはポートから応答を受信しませんでした。プロセスは、ポートでリッスンしている場合とリッスンしていない場合があります。デフォルトでは、TCPポートは3回クエリされ、UDPポートは1回クエリされてから、レポートにポートがフィルタリングされたことが示されます。
ポートクエリ(PortQry.exe)ツールをローカルで使用する
PortQryがリモートスキャン機能に欠けているものは、独自のローカルマシン機能で補います。ローカルモードを有効にするには、-localスイッチを指定してPortQryを実行します。とき-localがあるだけで使用されるスイッチ、PortQryは、すべてのローカルポートの使用状況やポート・ツー・PIDマッピングを列挙します。PortQryは、開いているポートでデータを並べ替える代わりに、PIDに従ってデータを一覧表示し、ネットワーク接続が開いているアプリケーションをすばやく確認できるようにします。
ポート80を監視するには、次のコマンドを実行します。
portqry -local -wport 80
PortQryUIの使用
また、MicrosoftがPortQryUIと呼ばれるPortQryのグラフィカルフロントエンドも利用できるようにしたことにも言及する価値があります。
PortQryUIには、portqry.exeのバージョンと、スキャンするポートのグループのみで構成される事前定義されたサービスが含まれています。
PortQueryUIには、人気のあるMicrosoftサービスの可用性を確認するための事前定義されたクエリのセットがいくつか含まれています。
- ドメインと信頼(Active DirectoryドメインコントローラーでADDSサービスを確認する)
- Exchange Server
- SQLサーバー
- ネットワーキング
- IP秒
- Webサーバー
- ネットミーティング
PortQryUIを使用するには、リモートサーバーのDNS名またはIPアドレスを入力するか、事前定義されたサービスの1つを選択するか(事前定義されたサービスのクエリ)、手動ポートチェック用のポート番号を指定して(クエリポートを手動で入力)、[クエリ]ボタンをクリックします。
PortQueryUIで可能な戻りコードは、上の画像で強調表示されています。
- 0(0x00000000)–接続が正常に確立され、ポートが使用可能になりました。
- 1(0x00000001)–指定されたポートは使用できないかフィルタリングされています。
- 2(0x00000002)– ACK応答が返されないため、UDP接続の可用性を確認するときの通常の戻りコード。
詳細については、こちらとこちらからマイクロソフトにアクセスしてください。