goo blog サービス終了のお知らせ 

gooブログはじめました!

Windowsでパケットキャプチャー、「Wireshark」と「Pktmon」の使い方。

〇 Windowsパソコンでパケットキャプチャーを実行する方法は2つある。パケットキャプチャーソフトの「Wireshark」をインストールして使う方法と、Windows 10/11で標準コマンドとして追加された「Pktmon」を使う方法である。ここではパケットを収集するまでの手順をそれぞれ紹介しよう。

WindowsではWiresharkかPktmonを使う。前者は普及していて参考になる情報も多い。ただし別途Wiresharkをインストールする必要があるため、最初は手間がかかる。逆にPktmonはWindowsの標準コマンドなので、どのパソコンでもすぐに使えるのが利点だ
画1、WindowsではWiresharkかPktmonを使う。前者は普及していて参考になる情報も多い。ただし別途Wiresharkをインストールする必要があるため、最初は手間がかかる。逆にPktmonはWindowsの標準コマンドなので、どのパソコンでもすぐに使えるのが利点だ。

Npcapを忘れずインストール。

Wiresharkを使う場合、まずインストールする必要がある。Wiresharkの公式サイトにアクセスして、該当するOSのインストーラーをダウンロードして実行する。

その際、プロミスキャスモードで使うためにNpcapをインストールする。チェックを付けておけば、Wireshark本体のインストール後にNpcapのインストールが始まる。インストール画面にはNpcapの利用を管理者に限定するチェックボックスがある。これにチェックを付けてしまうとWiresharkでパケット収集を開始するたびにUACが働く。

公式サイト(https://www.wireshark.org/#download)からダウンロードする(a)。インストールの際に、プロミスキャスモードにするためのドライバーである「Npcap」も忘れずにインストールする(b)。またNpcapをインストールする際、ドライバーへのアクセスを管理者に限定しないほうが後で使いやすいだろう(c)
画2、公式サイト(https://www.wireshark.org/#download)からダウンロードする(a)。インストールの際に、プロミスキャスモードにするためのドライバーである「Npcap」も忘れずにインストールする(b)。またNpcapをインストールする際、ドライバーへのアクセスを管理者に限定しないほうが後で使いやすいだろう(c)。

1クリックで収集開始。

実際にパケットを収集する操作は簡単だ。ホーム画面でツールバー左端にあるサメの背びれのアイコンをクリックすると、パケットの収集を開始する。

収集の対象となるネットワークインターフェースは、起動画面または「キャプチャ」メニューにある「キャプチャオプション」で指定する。このダイアログボックスからでも収集開始を指示できるようになっている。

ホーム画面でサメの背びれを模したアイコンをクリックしてキャプチャーを始めるのが基本。キャプチャー対象とするインターフェースは起動時か「キャプチャオプション」で指定する
画3、ホーム画面でサメの背びれを模したアイコンをクリックしてキャプチャーを始めるのが基本。キャプチャー対象とするインターフェースは起動時か「キャプチャオプション」で指定する。

Pktmonはコマンド操作が必須。

一方Pktmonはコマンドラインで実行する。具体的には「コマンドプロンプト」または「PowerShell」のコンソールを開いて、キーボードからコマンドを入力する。

Pktmonでは複数のサブコマンドを使ってパケットの収集開始や終了を指示する。基本は「start」サブコマンドで収集を開始し、「stop」サブコマンドで収集を終了する。

Pktmonはキャプチャーを開始するコマンドと終了するコマンドを組み合わせて使う。キャプチャーした結果を保存する場所は設定により変更できる。デフォルトでは実行モジュールがあるフォルダーに保存される
画4、Pktmonはキャプチャーを開始するコマンドと終了するコマンドを組み合わせて使う。キャプチャーした結果を保存する場所は設定により変更できる。デフォルトでは実行モジュールがあるフォルダーに保存される。

具体的な手順を説明しよう。まずPowerShellのコンソールを管理者権限で開く。そこで「pktmon start --capture」を入力してEnterキーを押す。これで収集を開始する。

画面には「ロガー パラメーター」が表示される。デフォルトでは「ログモード」が循環、「ログファイル」が「C:\WINDOWS\system32\PktMon.etl」「最大ファイルサイズ」が512MBとなっているはずだ。これらは収集した結果がどこにどのような形で保存されるかを示している。

ログファイルの拡張子は「etl」で、これはETLと呼ぶWindowsのイベントログ用のファイル形式を意味している。設定により収集結果を保存する場所は変更できるが、デフォルトはpktmon.exeがあるフォルダーに保存される。

デフォルトでは同じファイル名が繰り返し利用される。--captureの後に「-f ファイル名.etl」と付ければ、収集結果を保存するファイルの名称を変更できる。

ログモードはログの記録方式。循環ではログファイルの容量が設定値を上回ると、先頭から上書きされる。パケット収集を終了させるには「pktmon stop」を実行すればよい。

収集したパケットをWiresharkで解析したい場合は、「etl2pcap」というサブコマンドを使ってPCAPNG形式に変換する。他に収集対象を絞り込む「filter」などのサブコマンドがある。

Pktmonで使えるサブコマンド
画5、Pktmonで使えるサブコマンド。

リモートでパケットを収集。

Pktmonの特徴はPowerShellのリモート操作機能「リモーティング」を使える点だろう。例えば支社で発生したネットワークトラブルを本社から解析するのに、現地でWiresharkをインストールして実行してもらうのは難しい。リモーティングであれば最低限の情報のやりとりでパケットを収集できる可能性がある。

ただし現地で収集するパソコンの管理者権限が必要なうえ、リモーティングを有効にしておく必要がある。このためネットワーク管理者が管理対象としているサーバーなどでは、事前にリモーティングを有効にしておくとよいだろう。

実際にリモーティングを有効にしてPktmonでパケットを収集し、その結果を手元のパソコンにコピーした。PowerShellで「Get-Credential」コマンドを実行すると、ダイアログボックスが表示される。ここでリモート側のログインIDとパスワードを入力する。これで認証情報が作成できる。その後はPowerShellのリモーティング機能を利用してPktmonを実行する。

Pktmonをリモートで実行。同じドメインに所属している端末同士の場合、信頼関係が結ばれているので比較的スムーズに実行できる。ワークグループ環境の場合、アクセスを認可するために必要な作業が別途発生する
画6、Pktmonをリモートで実行。同じドメインに所属している端末同士の場合、信頼関係が結ばれているので比較的スムーズに実行できる。ワークグループ環境の場合、アクセスを認可するために必要な作業が別途発生する。

ランキングに参加中。クリックして応援お願いします!

名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「〝 たぬき の 「 スマホ ・ パソコン 」 ワールド 〟」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事