Armoris日記 pcap分析編 その1 ~Wiresharkの使い方~

このブログは、N高等学校を卒業して、かぷかぷ笑っている株式会社Armorisのアルバイトkuramubon_8810が書いています。

あるもりすぶろぐの内容は個人の意見です。

やっていくこと

初めてpcap分析をやろうとすると最初何をすればいいのかが全くわからず、なかなか手が動かないと思います。
今回はpcap分析を行う為の導入として、ツールの使い方や問題への取り組み方を紹介していきます。

第一回目である本ブログでは「pcap分析編 その1」ということで、pcap分析に使用するツールであるWiresharkの使い方や機能を紹介します。

ブログ内で使用するもの

今回はWiresharkを使用して下記サイトの問題を例題として紹介しています。

そもそもpcapファイルとは?

PCAPとは「Packet CAPture」の略称で、文字通りパケットをキャプチャ(caputure: 捕らえる)したデータファイルのことです。

  • パケット(packet)とは?
    • データの通信をする際、送信するデータを小分けにしたもののことです

Wiresharkの基礎知識

UI

Wiresharkでpcapファイルを開くと以下のような表示になります。
各フィールドについてわかりやすく説明するため色付きの枠で区別しています。

f:id:Armoris:20210409170801p:plain

Filter ツールバー : Wireshark リファレンス

  • 条件文を入力することでディスプレイフィルタを設定できます。
  • "wireshark display filter cheat sheet" とGoogleで検索することで様々な条件文を調べられます。
  • dnsと入力することでDNSでのやりとりのみを表示します。

f:id:Armoris:20210409170851p:plain

  • ip.dst == 10.11.10.149と入力することで10.11.10.149に対して送られたパケットのみを表示します。

f:id:Armoris:20210409170926p:plain

Packet List ペイン : Whireshark リファレンス

  • パケット単位でリスト表示します。
  • パケット単位で情報を確認する際に使用します。
表示項目
  • No
    • パケット番号
  • Time
    • パケットキャプチャを開始してから、何秒後にキャプチャしたかという経過時間
  • Source
    • パケットの発信元(ソースアドレス)
  • Destination
    • パケットの送信先(デスティネーションアドレス)
  • Protocol
  • Length
    • フレーム長(パケットの長さ)
  • Info
    • その他の情報

Pakcet Details ペイン: Wireshark リファレンス

  • レイヤー毎の細かな詳細が確認できます。
  • 1つ目のパケットを選択すると以下のような情報が確認できます。

f:id:Armoris:20210409171609p:plain

  • ネットワークインターフェース層を確認します。

f:id:Armoris:20210409161038p:plain

  • インターネット層を確認します。

f:id:Armoris:20210409161055p:plain

f:id:Armoris:20210409161114p:plain

  • アプリケーション層を確認します。

f:id:Armoris:20210409161254p:plain

Packet Bytes ペイン: Wireshark リファレンス

  • バケットの実際のデータが確認でき、左からデータオフセット、HEX、ASCIIの順に表示されています。
  • 1つ目のパケットデータの全体を確認します。

f:id:Armoris:20210409161635p:plain

  • ネットワークインターフェース層のデータを確認します。

f:id:Armoris:20210409161656p:plain

  • インターネット層のデータを確認します。

f:id:Armoris:20210409161711p:plain

f:id:Armoris:20210409161734p:plain

  • アプリケーション層のデータを確認します。

f:id:Armoris:20210409161749p:plain

追跡

  • ストリームを追跡できます。
  • ストリームとは
    • データのやり取り(送受信)のことです。

  • わかりやすいhttpストリームを例に追跡してみます。
  • 対象のパケットを選択後、下記画像の操作で追跡を行います。

f:id:Armoris:20210409171909p:plain

  • Wiresharkの画面が画像のようになり、相互に通信が行われているのが確認できます。

f:id:Armoris:20210409173655p:plain

  • 下記画像のダイアログを開くと以下のように指定した形式でデータを表示することができます。
    • デフォルトではASCII形式でデータを表示します。

f:id:Armoris:20210409175029p:plain

エクスポート

  • パケットデータを様々な方法で抽出することができます。

  • 例としてわかりやすいオブジェクトのエクスポートを試します。
  • 今回は下記画像の操作でHTTPオブジェクトのエクスポートを行います。
    • IMFを選択してメールの添付ファイルをエクスポートしたりすることもできます。

f:id:Armoris:20210409175453p:plain

  • 下記画像のダイアログが開き、他にもhtmlファイルやimgファイルがあることが確認できます。
    • これらのファイルを実際にダウンロードすることもできます。

ダウンロードしたファイルをむやみに開いたり実行することはとても危険です

f:id:Armoris:20210409175718p:plain

色付け

  • Wiresharkには色付け(colorization)というものがあり、プロトコルやイベント、エラーごとに色分けしてくれる機能があります。

f:id:Armoris:20210409171134p:plain

  • これを使用することでどのような通信が行われているのか、どのようなエラーが出ているのかを色で簡単に確認することができます。

終わりに

自分もまだまだ使いこなしきれてはいませんが、Wiresharkは使いこなせるようになるととても楽しいです。

今回、初めてブログを書きましたが、何かを順序立てて説明しようと思ったらしっかりとした知識と理解がなければできないということに気づきました。 それにより説明することが自分の学びにもつながるということを実感できました。

次回は解く際に行うと良い準備や、実際の問題でどのような手順で答えを導いていくのかといった、問題への取り組み方を説明していきます。