はじめに
フィルタリングを使用すると、読み取りたいデータの正確なセットに焦点を当てることができます。ご覧のとおり、Wiresharkはすべてを収集します デフォルトでは。それはあなたが探している特定のデータの邪魔になる可能性があります。 Wiresharkは、必要な正確なデータを簡単かつ簡単にターゲティングできるようにする2つの強力なフィルタリングツールを提供します。
Wiresharkがパケットをフィルタリングする方法は2つあります。特定のパケットのみを収集するようにフィルタリングすることも、収集後にパケット結果をフィルタリングすることもできます。もちろん、これらは互いに組み合わせて使用することができ、それぞれの有用性は、収集されるデータとその量によって異なります。
ブール式と比較演算子
Wiresharkには、非常に優れた機能を備えたフィルターが多数組み込まれています。いずれかのフィルターフィールドに入力を開始すると、オートコンプリートが表示されます。ほとんどのフィールドは、ユーザーがパケット間で行う一般的な区別に対応しています。 HTTPリクエストのみをフィルタリングするのが良い例です。
それ以外の場合、Wiresharkはブール式や比較演算子を使用します。何らかのプログラミングを行ったことがある場合は、ブール式に精通している必要があります。これらは、ステートメントまたは式の真実性を検証するために「and」、「or」、および「not」を使用する式です。比較演算子ははるかに簡単です。それらは、2つ以上のものが互いに等しいか、大きいか、または小さいかを判断するだけです。
フィルタリングキャプチャ
カスタムキャプチャフィルタに飛び込む前に、Wiresharkにすでに組み込まれているフィルタを確認してください。トップメニューの[キャプチャ]タブをクリックして、[オプション]に移動します。使用可能なインターフェイスの下には、キャプチャフィルターを記述できる行があります。そのすぐ左には、「キャプチャフィルター」というラベルの付いたボタンがあります。それをクリックすると、事前に作成されたキャプチャフィルターのリストを含む新しいダイアログボックスが表示されます。周りを見回して、そこに何があるかを確認してください。
<中央>
そのボックスの下部には、ヒューキャプチャフィルターを作成して保存するための小さなフォームがあります。左側の「新規」ボタンを押します。フィラーデータが入力された新しいキャプチャフィルターが作成されます。新しいフィルターを保存するには、フィラーを実際の名前と式に置き換えて、[OK]をクリックします。フィルタが保存され、適用されます。このツールを使用すると、複数の異なるフィルターを作成して保存し、将来再び使用できるようにすることができます。
Captureには、フィルタリングのための独自の構文があります。比較のために、記号を省略して等号を使用し、>
を使用します および 大なり小なり。ブール値の場合、「and」、「or」、および「not」という単語に依存します。
たとえば、ポート80でトラフィックのみをリッスンしたい場合は、次のような式を使用できます。 port 80
。特定のIPからポート80でのみリッスンしたい場合は、それを追加します。 ポート80およびホスト192.168.1.20
ご覧のとおり、キャプチャフィルターには特定のキーワードがあります。これらのキーワードは、Wiresharkにパケットの監視方法と確認するパケットを指示するために使用されます。たとえば、 host
IPからのすべてのトラフィックを調べるために使用されます。 src
そのIPから発信されたトラフィックを調べるために使用されます。 dst
対照的に、IPへの着信トラフィックのみを監視します。一連のIPまたはネットワーク上のトラフィックを監視するには、 net
を使用します 。
結果のフィルタリング
レイアウトの下部のメニューバーは、結果のフィルタリング専用のメニューバーです。このフィルターは、Wiresharkが収集したデータを変更するのではなく、フィルターをより簡単に並べ替えることができるようにするだけです。ドロップダウン矢印を使用して新しいフィルター式を入力するためのテキストフィールドがあり、以前に入力したフィルターを確認できます。その隣には、現在の表現をクリアして保存するための「表現」とマークされたボタンと他のいくつかのボタンがあります。
「表現」ボタンをクリックします。オプションのあるいくつかのボックスがある小さなウィンドウが表示されます。左側には、アイテムの膨大なリストがあり、それぞれに追加の折りたたまれたサブリストがある最大のボックスがあります。これらはすべて、フィルタリングできるさまざまなプロトコル、フィールド、および情報です。すべてを確認する方法はないので、最善の方法は周りを見回すことです。 HTTP、SSL、TCPなどの使い慣れたオプションに気付くはずです。
<中央>
サブリストには、フィルタリングできるさまざまな部分とメソッドが含まれています。ここに、GETとPOSTでHTTPリクエストをフィルタリングする方法があります。
中央のボックスに演算子のリストも表示されます。各列からアイテムを選択することにより、このウィンドウを使用して、Wiresharkがフィルター処理できるすべてのアイテムを記憶することなくフィルターを作成できます。
結果をフィルタリングするために、比較演算子は特定の記号のセットを使用します。 ==
2つのものが等しいかどうかを判断します。 >コード> あるものが別のものよりも大きいかどうかを判断します。
<
何かが少ないかどうかを見つけます。 >=コード> および
<=
それぞれ以上および以下の場合です。これらを使用して、パケットに適切な値が含まれているかどうかを判断したり、サイズでフィルタリングしたりできます。 ==
の使用例 次のようなHTTPGETリクエストのみをフィルタリングするには: http.request.method =="GET"
。
ブール演算子は、複数の条件に基づいて評価するために、より小さな式を連鎖させることができます。キャプチャのような言葉の代わりに、3つの基本的な記号を使用してこれを行います。 &&
「and」の略です。使用する場合、 &&
の両側の両方のステートメント Wiresharkがこれらのパッケージをフィルタリングするには、trueである必要があります。 ||
「または」を意味します。 ||
を使用 いずれかの式が真である限り、それはフィルタリングされます。すべてのGETおよびPOSTリクエストを探している場合は、 ||
を使用できます。 このように:(http.request.method =="GET")|| (http.request.method =="POST")
。 !コード> 「not」演算子です。指定されたもの以外のすべてを検索します。たとえば、
!http
HTTPリクエスト以外のすべてを提供します。
まとめ
Wiresharkをフィルタリングすると、ネットワークトラフィックを効率的に監視できます。使用可能なオプションに慣れ、フィルターを使用して作成できる強力な式に慣れるには、少し時間がかかります。ただし、これを行うと、パケットの長いリストを調べたり、多くの作業を行ったりすることなく、探しているネットワークデータをすばやく収集して見つけることができます。