SlideShare une entreprise Scribd logo
1  sur  57
Télécharger pour lire hors ligne
Wireshark の使い方(基礎編)

     Hokkaido.cap #1
       2011.03.11
     Masayuki YAMAKI
今日の目標
• パケットキャプチャって何? を理解しましょう。
• Wireshark の基本的な使い方を覚えましょう。
• 楽しくわいわいやりましょう。




             2
パケットキャプチャとは
• ネットワーク上に流れるトラフィックのパケット
  (データ通信の固まりの単位)を採取する事
 - OSやアプリケーションが行っている通信の中身
   (実際に起こっている事)を探る
   • パケットを解析することでわかることがある。
     ただし、すべてを明らかにできるわけではない。
   • どこまでができて、どこからができないのかを見極めて効
     率良く調査、解析する。
• 許可なしに第三者の通信(特にインターネット等公共
  の通信)をキャプチャすることは犯罪 (ダメ、ゼッタイ)

               3
キャプチャに必要なもの
• LANアナライザ (Snifferとも呼ばれる)
 - Wireshark、tcpdump、Windowsネットワーク・モニタ
   Wireshark tcpdump Windows
• 自分宛ての通信以外をキャプチャする場合は以下を準備
 - プロミスキャスモード対応NIC
   • 自分宛て以外のパケットを破棄せず、受信したすべてのパケットを読
     み込むモード
   • Wiresharkでは動作モードを選択可 (デフォルト : ON)
 - HUB (シェアードハブ、リピータハブ)
   • MACアドレスを判別してコリジョンドメインを分割するL2スイッチ
     の場合、ポートミラーリング機能を利用するのが一般的


                     4
Wireshark とは
• GPL(GNU Plublic License)で配布されている
  オープンソースのLANアナライザ
  - 旧名称 : Ethereal
  - Windows、Mac OS X、UNIX/Linux で動作
    • パケットキャプチャをするためには、パケットキャプチャ
      ドライバが必要
       - WinPcap : Windows用 (インストーラーに同梱)
       - AirPcap : Windows 無線LAN用
                               LAN
       - LibPcap : UNIX/Linux用
                              http://www.wireshark.org


                     5
Windows版 Wiresharkのインストール
• 最新版を使用すること
 - セキュリティパッチが含まれる
 - 同梱のWinPcapを使用したほうが無難
• インストール時の選択は通常デフォルトで問題
  ない
 - ファイルタイプの関連付け : 有効
 - インストールするモジュール : すべて
 - WinPcapドライバの自動起動 : 有効
  • 気になる人は次ページ以降の解説参照


                6
インストールモジュールの選択
• TShark : Wireshark のコマンドライン版
• Plugin / Extensions
   - Dissector Plugin       : バイナリ解析用プラグイン
   - Tree Statistics Plugin : 詳細ツリー表示用プラグイン
   - Mate - Meta Analysis and Tracing Engine : メタ分析、トレースエンジン
        (現時点ではexperimental 版 ・・・ 以前のバージョンではチェックが外れていた)
   - SNMP MIBs : SNMPで使用されるMIB情報
• Tools
   -   Editcap     : キャプチャファイルの分割、フォーマット変換
   -   Text2Pcap   : パケットのASCIIとHexDumpからキャプチャファイルを生成
   -   Mergecap    : キャプチャファイルのマージ
   -   Capinfos    : キャプチャファイルに関する情報を出力
   -   Rawshark    : libpcapデータのDump、解析


                              7
WinPcap ドライバの自動起動
• チェックを入れない場合、Wireshark起動時に「管理者として実
  行」を選択しないとキャプチャできない。
 - (右のメッセージが出てInteface ListにNICデバイスが表示されない)




                     8
WinPcap ドライバの自動起動 (補足)
• NPF (NetGroup Packet Filter Driver) サービスのレジス
  トリ値で制御可能
   - HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet
     ¥Services¥NPF¥ START (DWORD値)
      • 0x2 : SERVICE_AUTO_START
       - (前ページ、チェック時のデフォルト)
     • 0x3 : SERVICE_DEMAND_START
       - (前ページ、チェックなし時のデフォルト)
     • 0x4 : SERVICE_DISABLED
       - (無効)


                        9
インストール後に登録されるサービス
• Remote Packet Capture Protocol v.0 (experimental)
   - WinPcap をインストールすると導入されるRPCAPサーバ
      リモートキャプチャを行う場合に利用する
   - services.msc の画面より起動制御可能
      スタートアップの種類は「手動」のため、勝手に起動することはない




                          10
起動してみよう




キャプチャ
の開始




           11
メイン ウィンドウ


            パケット一覧




            パケット詳細



            バイナリ表示




    12
メイン ウィンドウ 画面構成
• パケット一覧のペイン
 - キャプチャデータに含まれるパケットの一覧
   • パケット番号 / キャプチャされた時間 / 送信元 / 送信先 / プロトコル /
     パケットに含まれる情報
        » [Ctrl] + [↑][↓] キーでカーソル移動できる
 - プロトコルの種類毎に色分けされる
    • 「View」 → 「Coloring Rules」 より設定変更可
• パケット詳細のペイン
 - 選択したパケットの詳細をツリー状に表示
• バイナリのペイン
 - フォーマットされる前の生のデータを表示

                      13
Wiresharkの設定画面
• 「Edit」 → 「Preferences」




                     14
設定画面の項目
• User Interface
   - 画面のレイアウト、フォント、色の設定
• Capture
   - キャプチャ方法の設定
• Printing
   - データをプリントアウトする際の設定
• Name Resolution
   - MACアドレス、ホスト名、プロトコルの名前解決
• Protocols
   - プロトコルの表示方法に関する設定


                    15
カスタマイズ検討項目 : Capture
• Default Interface
   - デフォルトでキャプチャするインターフェースの指定
• Capture packets in promiscuous mode
   - プロミスキャスモードの ON/OFF
• Update list of packets in real time
   - 実際の時間に合わせてパケット一覧部を更新
         » 大量キャプチャ、低スペックマシンではOFFにするとよい
• Automatic scrolling in live capture
   - パケットキャプチャに合わせて自動スクロール
          » 大量キャプチャ、低スペックマシンではOFFにするとよい
• Hide capture info dialog
   - パケットキャプチャの際に表示されるキャプチャ状況パネルを非表示


                             16
カスタマイズ検討項目 : Name Resolution
• Enable MAC name resolution
  - MACアドレスの上位3オクテット(ベンダーID部)をベンダー名に変換
      Example : "02:A0:C9:05:04:03" to "Intel_05:04:03"
• Enable network name resolution
  - IPアドレスをホスト名に変換
    (Enable concurrent DNS name resolution が有効の場合は複数の名前
      解決要求をDNSサーバに送信)
       Example : "10.5.6.7" to "mail-07.example.com"
           » ONにするとDNSを参照するため、名前解決の負荷がかかる
• Enable transport name resolution
   - トランスポート層のポート番号をアプリケーション名に変換
       Example : "25" to "smtp"


                           17
Capture Options
• キャプチャするセッションだけに有効
 - Capture
    • キャプチャフィルタ
    • バッファサイズ
 - Capture File(s)
    • 保存するファイル名
      (分割可能)
 - Stop Capture
    • 自動停止の設定
 - Display Option
 - Name Resolution


                        18
補足 : Checksum Offload について
• Wiresharkでは、問題のあるパケットは赤色、黒色で表示される。自PCから送
  信する要求パケットだけが赤や黒で表示される場合、Checksum Offload (OS
  で行っているTCPチェックサムの計算をNICのハードウェアで処理する機能)
  によって、チェックサムエラーを起こしている場合がある。

• 実際の通信エラーが発生し
  ておらず、再送処理が発生
  していない場合、パケットを
  取得するうえでは問題ない。




                      19
キャプチャしたパケットを見てみよう




        20
パケットの検索
• 「Edit」 → 「Find Packet」 または [Ctrl] + [F]
  - 次候補検索 : [Ctrl] + [N] 前候補検索 : [Ctrl] + [B]
  - フィルタ式、16進数、文字列 を指定して検索が可能




                        21
パケットのマーキング
• 右クリック → 「Mark Packet」 または [Ctrl] + [M]
  - マーキングしたパケットは黒背景に白文字になる
  - マーキングしたパケットのみ保存したい場合などに使用




                    22
キャプチャデータの保存とエクスポート
• 保存
  「File」 → 「Save As」
   → pcap形式で保存

• エクスポート
  「File」 → 「Export」
   → 「File」
   → 「Objects」
      → txt, csv, html
               etc …


                         23
時間の表示フォーマット
• 「View」 → 「Time Display Format」
  - デフォルトはキャプチャ開始時間からの相対時間で表示される
                                   Default




                                   Date and Time of Day




                       24
2 種類のフィルタ
• キャプチャ フィルタ
 - パケットをキャプチャする際に適用するフィルタ
 - 条件に合致したパケットのみ記録
• ディスプレイ フィルタ
 - キャプチャファイルを閲覧する際に適用するフィルタ
 - 条件に合致したパケットのみ表示

• 上記2つのフィルタは構文が異なる

                25
キャプチャ フィルタ
• 「Capture Option」 → 「Capture Filter」 へ条件式を入力
  - ファイルサイズは抑えられるが、キャプチャしながらフィルタするため、
    負荷は多少高くなる
  - 原因のわからないネットワーク トラブル調査などでは、むやみにフィルタ
    しないほうがよい




                     26
キャプチャ フィルタ 書式
• 構文とフィルタ例
    Protocol      Direction      Host(s)       Value        Logical            Other
                                                           Operations       Expreession
      tcp             dst      portrange        80-88          and     dst host 192.168.0.2
       ⇒ プロトコルがtcpで送信先ポートが80~88番であり、かつ送信先IPが192.168.0.2 をキャプチャ
     (省略)           (省略)          host      192.168.0.1        and            port 80
⇒ 送信元または送信先IPが192.168.0.1であり、かつ送信元または送信先ポートが80番 をキャプチャ

•    有効な値の例
      - Protocol : ether, ip, arp, tcp, udp (省略時:すべてのプロトコル)
      - Direction : src, dst, src and dst, src or dst (省略時: src or dst)
      - Host(s) : net, port, host, portrange
      - Logical Operations : not, and, or (not は構文の先頭に付けることも可)
            notによる否定は最も優先順位が高く、or とand は同じ優先順位で左から順に処理される
            例: 「not host 192.168.0.1 and port 23」は「 (not host 192.168.0.1) and port 23」に等しい


                                              27
キャプチャ フィルタ の作成と保存
• 「Capture」 → 「Capture Filters」




                         28
ディスプレイ フィルタ
• Filter テキストボックスへ条件式を入力
 - 構文が正しい場合 : テキストボックスの背景が薄緑色に変化
 - 構文が正しくない場合 : テキストボックスの背景がピンク色に変化
• 元のキャプチャデータは変更せずに条件に合致するパ
  ケットだけが表示される




                 29
ディスプレイ フィルタ 書式
• 構文とフィルタ例
                                        Comparison                  Logical        Other
Protocol       String1        String2    operator
                                                       Value       Operations   Expreession
           ・              ・
  ftp.         Passive.         ip         ==        192.168.0.1      or          http
                              ⇒ ftpのパッシブIPが192.168.0.1 または httpのパケットを表示

• Expression ダイアログで構
  文を生成することも可能




                                            30
比較演算子 と 論理演算子
• 比較演算子               • 論理演算子
英語表記   記号表記    説明     英語表記       記号表記        説明

 eq     ==    等しい          and    &&    論理積
 ne     !=    等しくない         or    ||    論理和
 gt      >    大なり          xor    ^^    排他的論理和
 lt      <    小なり          not     !    否定
 ge     >=    以上
 le     <=    以下



                      31
ディスプレイ フィルタ の例
• HTTPリクエストのパケットを表示
   - http. request
• ICMPのパケットを表示しない
   - !icmp
• IPアドレス192.168.0.1と192.168.0.2のパケットを表示
   - ip.addr == 192.168.0.1 && ip.addr == 192.168.0.2
• IPアドレス 192.168.0.1 のパケットを表示しない
   - !(ip.addr == 192.168.0.1)
      ip.addr != 192.168.0.1 ではないので注意


                         32
ディスプレイ フィルタ の保存
• 「Analyze」 → 「Display Filters」




                          33
Wireshark の主な解析機能




        34
プロトコルの分析 : Decode As
• 既定のポート以外の通信(例:137番ポートでのFTPなど)では、自動
  解析の結果が期待どおりとならないため、手動でプロトコルを指定し
  て解析する
• 分析したいパケットを右クリック → 「Decode As
                     Decode As」




                 35
Decode As 前後の比較
Decode 前




Decode 後




                 36
TCP ストリームの表示
• 分析するパケットを右クリック → 「Follow TCP Stream」



                        クライアントからのリクエスト



                        サーバからのレスポンス




                  37
TCP ストリームの表示 (補足)
• 「Follow TCP Stream」を実行すると、自動で該当パケットのみ表
  示するディスプレイフィルタが適用された状態となる。




                   38
Expert infos の表示
• 「Analyze」 → 「Expert Info」




                         39
統計情報 – プロトコル階層と配分
• 「Statistics」 → 「Protocol Hierarchy 」




                          40
統計情報 – エンドポイント
• 「Statistics」 → 「Endpoints 」




                          41
統計情報 – 対話状況
• 「Statistics」 → 「Conversations 」




                          42
統計情報 – Endpoint, Conversations (補足)
• 右クリックより、選択したノードを指定したフィルタ操作等が可能




                 43
統計情報 – IOグラフ
• 「Statistics」 → 「IO Graphs 」
                        クリックするとメインウィ
                        ンドウが該当する時間
                        帯へ移動する




                          44
統計情報 – Flowグラフ
• 「Statistics」 → 「Flow Graphs 」




                          クリックするとメインウィ
                          ンドウが該当する時間
                          帯へ移動する




                         45
DEMO
キャプチャファイルの中から目的のパケット
  を特定し、ファイルを復元します。




         46
まとめと参考資料




   47
このセッションのまとめ
• Wireshark のインストールとパケットのキャプ
  チャ方法について学びました。
• Wiresharkの基本的な使い方を学びました。
• 皆さんも自分でどんどん触ってみて、操作に
  慣れていきましょう。




             48
参考資料
• 実践パケット解析 - Wiresharkを使ったトラブ
  ルシューティング
  - http://www.oreilly.co.jp/books/9784873113517
  - ISBN978-4-87311-351-7
• Wireshark - Documentation
  - http://www.wireshark.org/docs
• The Wireshark Wiki
  - http://wiki.wireshark.org/FrontPage


                        49
演習資料




 50
使ってみよう Wireshark
• 実際にWiresharkを使ってパケットを解析して
  みましょう。
• わからないところは近くの参加者同士で相談
  しながら、または参考書を読みながらチャレン
  ジしてみましょう。




             51
サンプル キャプチャファイル
• http.cap
  - 一般的なHTTPセッションのキャプチャファイルです。
• telnet-raw.pcap
  - Raw(per-character)モードtelnetセッションのキャプチャファイ
    ルです。
• ftp-netbios3.pcap
  - セッションで紹介したFTPポート偽装ファイルです。
  - Decode As機能を試してみましょう。
• test1.pcap, test2.dmp
  - サーバへの攻撃パケットをキャプチャしたファイルです。
  - 使用されている攻撃手法を当ててみましょう。

                      52
パケットヘッダ と Ethernet フレーム
パケットヘッダの階層構造
   Ethernet Header   (IP Header)       (TCP Header)                Data

                                       Ethernet ではデータ

                     IP Header         (TCP Header)                Data

                                                        IP ではデータ

                                           TCP Header              Data

Ethernetフレームフォーマット
  Destination     Source
 MAC Address    MAC Address       Type                Data                 FCS
   (6byte)        (6byte)        (2byte)          (46~1500byte)           (4byte)




                                      53
IPv4 ヘッダフォーマット
0           34         78                       15 16                                 31(bit)
     Version      IHL         Type of Service                    Total Length
    (バージョン)   (ヘッダ長)        (サービスタイプ)                          (パケット長)
                   Identification                      Flags        Flagment Offset
                     (識別子)                            (フラグ)       (フラグメントオフセット)
        Time To Live            Protocol                       Header Checksum
         (生存時間)               (プロトコル番号)                        (ヘッダチェックサム)
                                        Source IP Address
                                        (送信元IPアドレス)
                                      Destination IP Address
                                         (宛先IPアドレス)
                                       Option + Padding
                                     (オプション + パディング)

                                         Data
                         (TCP,UDP,ICMPなどのプロトコルのヘッダとデータ)



                                                 54
TCP ヘッダフォーマット
0            34               9 10                    15 16                          31(bit)
                    Source Port                                   Destination Port
                  (送信元ポート番号)                                      (宛先ポート番号)
                                              Sequence Number
                                               (シーケンス番号)
                                         Acknowledgement Number
                                              (確認応答番号)
    Data           Reserved     U    A    P   R   S   F
                                                                    Window Size
                                R    C    S   S   Y   I
    Offset        (予約領域)                                          (ウィンドウサイズ)
                                G    K    H   T   N   N
                    Checksum                                      Urgent Pointer
                    (チェックサム)             Code bit                 (緊急ポインタ)
                                            Option + Padding
                                          (オプション + パディング)

                                               Data (データ部)




                                                       55
TCP コネクション管理

 SYN (コネクション確立要求)
    ACK (SYNに対する確認応答)
    SYN (コネクション確立要求)        コネクション確立
                            (3 -Way Handshake)
 ACK (SYNに対する確認応答)

コネクション確立後 データデータ転送開始

 FIN/ACK (コネクション切断要求)
     ACK (FINに対する確認応答)
     FIN/ACK (コネクション切断要求)   コネクション切断

 ACK (FINに対する確認応答)


               56
TCP ヘッダ Codebit
     Codebit                        説明
      URG           このビットが1の場合、緊急処理すべきデータが含まれることを意味する。
    (Urgent)
       ACK          このビットが1の場合、確認応答番号のフィールドが有効であることを意
(Acknowledgement)   味する。コネクション確立時の最初のSYNセグメント以外は必ず1である必
                    要がある。
      PSH           このビットが1の場合、受信したデータをすぐに上位のアプリケーションに
     (Push)         渡す。0の場合はバッファリングを許す。

       RST          このビットが1の場合、コネクションが強制的に切断される。
     (Reset)        何らかの異常を検出した場合に送信される。

      SYN           このビットが1の場合、コネクション確立の意思表示を表す。また、シーケ
  (Synchronize)     ンス番号のフィールドに格納されている番号でシーケンス番号の初期化
                    が行われる。
       FIN          このビットが1の場合、今後送信するデータがないことを意味する。それぞ
      (Fin)         れのFINに対して確認応答されるとコネクションが切断される。



                              57

Contenu connexe

Tendances

分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみるYagi Shinnosuke
 
ctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリングctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリングjunk_coken
 
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみようHokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみようPanda Yamaki
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化Kumazaki Hiroki
 
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)kikuchan98
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメTetsuyuki Kobayashi
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌LINE Corporation
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501稔 小林
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 
通信と放送の融合を考えるBoF 5
通信と放送の融合を考えるBoF 5通信と放送の融合を考えるBoF 5
通信と放送の融合を考えるBoF 5Masaaki Nabeshima
 
CpawCTF 勉強会 Network
CpawCTF 勉強会 NetworkCpawCTF 勉強会 Network
CpawCTF 勉強会 NetworkTakaaki Hoyo
 
Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介morihisa
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてcyberagent
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析Yuki Mizuno
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングTomoya Hibi
 

Tendances (20)

分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Pcapngを読んでみる
Pcapngを読んでみるPcapngを読んでみる
Pcapngを読んでみる
 
ctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリングctfで学ぼうリバースエンジニアリング
ctfで学ぼうリバースエンジニアリング
 
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみようHokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
Hokkaido.cap#2 一般的なプロトコルのパケットを覗いてみよう
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
 
大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌大規模サービスを支えるネットワークインフラの全貌
大規模サービスを支えるネットワークインフラの全貌
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 
HTTP/2 入門
HTTP/2 入門HTTP/2 入門
HTTP/2 入門
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
通信と放送の融合を考えるBoF 5
通信と放送の融合を考えるBoF 5通信と放送の融合を考えるBoF 5
通信と放送の融合を考えるBoF 5
 
CpawCTF 勉強会 Network
CpawCTF 勉強会 NetworkCpawCTF 勉強会 Network
CpawCTF 勉強会 Network
 
Google Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushiGoogle Cloud Dataflow を理解する - #bq_sushi
Google Cloud Dataflow を理解する - #bq_sushi
 
Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介Wireshark だけに頼らない! パケット解析ツールの紹介
Wireshark だけに頼らない! パケット解析ツールの紹介
 
ログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについてログ解析基盤におけるストリーム処理パイプラインについて
ログ解析基盤におけるストリーム処理パイプラインについて
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキングDPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
 

Similaire à Hokkaido.cap#1 Wiresharkの使い方(基礎編)

システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8shingo suzuki
 
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409稔 小林
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
Trema day 1
Trema day 1Trema day 1
Trema day 1ykuga
 
ROMA のアーキテクチャと社内事例
ROMA のアーキテクチャと社内事例ROMA のアーキテクチャと社内事例
ROMA のアーキテクチャと社内事例Rakuten Group, Inc.
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料直久 住川
 
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境Ossで作成するチーム開発環境
Ossで作成するチーム開発環境Tadahiro Ishisaka
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Coreslankdev
 
170622 02
170622 02170622 02
170622 02openrtm
 
Exploring the x64
Exploring the x64Exploring the x64
Exploring the x64FFRI, Inc.
 
Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPRyoga Saito
 
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)Panda Yamaki
 
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)Akira Kanaoka
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Sho Shimizu
 
Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Shinichi Hirauchi
 
RouterBOARD with OpenFlow
RouterBOARD with OpenFlowRouterBOARD with OpenFlow
RouterBOARD with OpenFlowToshiki Tsuboi
 
PSoCまつり「PSoCの美味しい料理法」
PSoCまつり「PSoCの美味しい料理法」PSoCまつり「PSoCの美味しい料理法」
PSoCまつり「PSoCの美味しい料理法」betaEncoder
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理Motonori Shindo
 

Similaire à Hokkaido.cap#1 Wiresharkの使い方(基礎編) (20)

システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8システムパフォーマンス勉強会#8
システムパフォーマンス勉強会#8
 
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
Trema day 1
Trema day 1Trema day 1
Trema day 1
 
ROMA のアーキテクチャと社内事例
ROMA のアーキテクチャと社内事例ROMA のアーキテクチャと社内事例
ROMA のアーキテクチャと社内事例
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
 
High Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many CoreHigh Performance Networking with DPDK & Multi/Many Core
High Performance Networking with DPDK & Multi/Many Core
 
170622 02
170622 02170622 02
170622 02
 
Exploring the x64
Exploring the x64Exploring the x64
Exploring the x64
 
Faster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDPFaster SRv6 D-plane with XDP
Faster SRv6 D-plane with XDP
 
Pakeana 06
Pakeana 06Pakeana 06
Pakeana 06
 
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
Hokkaido.cap#7 ケーススタディ(セキュリティ解析:前編)
 
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
透過型確率的パケットマーキング装置の提案と開発(オープンルータコンペティション発表資料)
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
 
PCL
PCLPCL
PCL
 
Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Windowsのパケットモニタ作成
Windowsのパケットモニタ作成
 
RouterBOARD with OpenFlow
RouterBOARD with OpenFlowRouterBOARD with OpenFlow
RouterBOARD with OpenFlow
 
PSoCまつり「PSoCの美味しい料理法」
PSoCまつり「PSoCの美味しい料理法」PSoCまつり「PSoCの美味しい料理法」
PSoCまつり「PSoCの美味しい料理法」
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 

Plus de Panda Yamaki

U-16プロコン札幌大会の紹介
U-16プロコン札幌大会の紹介U-16プロコン札幌大会の紹介
U-16プロコン札幌大会の紹介Panda Yamaki
 
Pythonで挑戦! U-16プロコンの紹介
Pythonで挑戦! U-16プロコンの紹介Pythonで挑戦! U-16プロコンの紹介
Pythonで挑戦! U-16プロコンの紹介Panda Yamaki
 
U-16プロコンの紹介 osc18do版
U-16プロコンの紹介 osc18do版U-16プロコンの紹介 osc18do版
U-16プロコンの紹介 osc18do版Panda Yamaki
 
地方のIT勉強会と産・学・官との連携 (せきゅぽろ)
地方のIT勉強会と産・学・官との連携 (せきゅぽろ)地方のIT勉強会と産・学・官との連携 (せきゅぽろ)
地方のIT勉強会と産・学・官との連携 (せきゅぽろ)Panda Yamaki
 
せきゅぽろ ~道はつながっている~
せきゅぽろ ~道はつながっている~せきゅぽろ ~道はつながっている~
せきゅぽろ ~道はつながっている~Panda Yamaki
 
5分でわかる 一般社団法人LOCAL
5分でわかる 一般社団法人LOCAL5分でわかる 一般社団法人LOCAL
5分でわかる 一般社団法人LOCALPanda Yamaki
 
LDD13is 先行告知
LDD13is 先行告知LDD13is 先行告知
LDD13is 先行告知Panda Yamaki
 
Hokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめHokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめPanda Yamaki
 
Hokkaido.cap#9 無線LANのスニッフィング
Hokkaido.cap#9 無線LANのスニッフィングHokkaido.cap#9 無線LANのスニッフィング
Hokkaido.cap#9 無線LANのスニッフィングPanda Yamaki
 
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)Panda Yamaki
 
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Panda Yamaki
 
Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)Panda Yamaki
 

Plus de Panda Yamaki (12)

U-16プロコン札幌大会の紹介
U-16プロコン札幌大会の紹介U-16プロコン札幌大会の紹介
U-16プロコン札幌大会の紹介
 
Pythonで挑戦! U-16プロコンの紹介
Pythonで挑戦! U-16プロコンの紹介Pythonで挑戦! U-16プロコンの紹介
Pythonで挑戦! U-16プロコンの紹介
 
U-16プロコンの紹介 osc18do版
U-16プロコンの紹介 osc18do版U-16プロコンの紹介 osc18do版
U-16プロコンの紹介 osc18do版
 
地方のIT勉強会と産・学・官との連携 (せきゅぽろ)
地方のIT勉強会と産・学・官との連携 (せきゅぽろ)地方のIT勉強会と産・学・官との連携 (せきゅぽろ)
地方のIT勉強会と産・学・官との連携 (せきゅぽろ)
 
せきゅぽろ ~道はつながっている~
せきゅぽろ ~道はつながっている~せきゅぽろ ~道はつながっている~
せきゅぽろ ~道はつながっている~
 
5分でわかる 一般社団法人LOCAL
5分でわかる 一般社団法人LOCAL5分でわかる 一般社団法人LOCAL
5分でわかる 一般社団法人LOCAL
 
LDD13is 先行告知
LDD13is 先行告知LDD13is 先行告知
LDD13is 先行告知
 
Hokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめHokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめ
 
Hokkaido.cap#9 無線LANのスニッフィング
Hokkaido.cap#9 無線LANのスニッフィングHokkaido.cap#9 無線LANのスニッフィング
Hokkaido.cap#9 無線LANのスニッフィング
 
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
Hokkaido.cap#8 ケーススタディ(セキュリティ解析:後編)
 
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
Hokkaido.cap#5 ケーススタディ(ネットワークの遅延と戦う:後編)
 
Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)Hokkaido.cap#3 ケーススタディ(基礎編)
Hokkaido.cap#3 ケーススタディ(基礎編)
 

Hokkaido.cap#1 Wiresharkの使い方(基礎編)

  • 1. Wireshark の使い方(基礎編) Hokkaido.cap #1 2011.03.11 Masayuki YAMAKI
  • 2. 今日の目標 • パケットキャプチャって何? を理解しましょう。 • Wireshark の基本的な使い方を覚えましょう。 • 楽しくわいわいやりましょう。 2
  • 3. パケットキャプチャとは • ネットワーク上に流れるトラフィックのパケット (データ通信の固まりの単位)を採取する事 - OSやアプリケーションが行っている通信の中身 (実際に起こっている事)を探る • パケットを解析することでわかることがある。 ただし、すべてを明らかにできるわけではない。 • どこまでができて、どこからができないのかを見極めて効 率良く調査、解析する。 • 許可なしに第三者の通信(特にインターネット等公共 の通信)をキャプチャすることは犯罪 (ダメ、ゼッタイ) 3
  • 4. キャプチャに必要なもの • LANアナライザ (Snifferとも呼ばれる) - Wireshark、tcpdump、Windowsネットワーク・モニタ Wireshark tcpdump Windows • 自分宛ての通信以外をキャプチャする場合は以下を準備 - プロミスキャスモード対応NIC • 自分宛て以外のパケットを破棄せず、受信したすべてのパケットを読 み込むモード • Wiresharkでは動作モードを選択可 (デフォルト : ON) - HUB (シェアードハブ、リピータハブ) • MACアドレスを判別してコリジョンドメインを分割するL2スイッチ の場合、ポートミラーリング機能を利用するのが一般的 4
  • 5. Wireshark とは • GPL(GNU Plublic License)で配布されている オープンソースのLANアナライザ - 旧名称 : Ethereal - Windows、Mac OS X、UNIX/Linux で動作 • パケットキャプチャをするためには、パケットキャプチャ ドライバが必要 - WinPcap : Windows用 (インストーラーに同梱) - AirPcap : Windows 無線LAN用 LAN - LibPcap : UNIX/Linux用 http://www.wireshark.org 5
  • 6. Windows版 Wiresharkのインストール • 最新版を使用すること - セキュリティパッチが含まれる - 同梱のWinPcapを使用したほうが無難 • インストール時の選択は通常デフォルトで問題 ない - ファイルタイプの関連付け : 有効 - インストールするモジュール : すべて - WinPcapドライバの自動起動 : 有効 • 気になる人は次ページ以降の解説参照 6
  • 7. インストールモジュールの選択 • TShark : Wireshark のコマンドライン版 • Plugin / Extensions - Dissector Plugin : バイナリ解析用プラグイン - Tree Statistics Plugin : 詳細ツリー表示用プラグイン - Mate - Meta Analysis and Tracing Engine : メタ分析、トレースエンジン (現時点ではexperimental 版 ・・・ 以前のバージョンではチェックが外れていた) - SNMP MIBs : SNMPで使用されるMIB情報 • Tools - Editcap : キャプチャファイルの分割、フォーマット変換 - Text2Pcap : パケットのASCIIとHexDumpからキャプチャファイルを生成 - Mergecap : キャプチャファイルのマージ - Capinfos : キャプチャファイルに関する情報を出力 - Rawshark : libpcapデータのDump、解析 7
  • 8. WinPcap ドライバの自動起動 • チェックを入れない場合、Wireshark起動時に「管理者として実 行」を選択しないとキャプチャできない。 - (右のメッセージが出てInteface ListにNICデバイスが表示されない) 8
  • 9. WinPcap ドライバの自動起動 (補足) • NPF (NetGroup Packet Filter Driver) サービスのレジス トリ値で制御可能 - HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet ¥Services¥NPF¥ START (DWORD値) • 0x2 : SERVICE_AUTO_START - (前ページ、チェック時のデフォルト) • 0x3 : SERVICE_DEMAND_START - (前ページ、チェックなし時のデフォルト) • 0x4 : SERVICE_DISABLED - (無効) 9
  • 10. インストール後に登録されるサービス • Remote Packet Capture Protocol v.0 (experimental) - WinPcap をインストールすると導入されるRPCAPサーバ リモートキャプチャを行う場合に利用する - services.msc の画面より起動制御可能 スタートアップの種類は「手動」のため、勝手に起動することはない 10
  • 12. メイン ウィンドウ パケット一覧 パケット詳細 バイナリ表示 12
  • 13. メイン ウィンドウ 画面構成 • パケット一覧のペイン - キャプチャデータに含まれるパケットの一覧 • パケット番号 / キャプチャされた時間 / 送信元 / 送信先 / プロトコル / パケットに含まれる情報 » [Ctrl] + [↑][↓] キーでカーソル移動できる - プロトコルの種類毎に色分けされる • 「View」 → 「Coloring Rules」 より設定変更可 • パケット詳細のペイン - 選択したパケットの詳細をツリー状に表示 • バイナリのペイン - フォーマットされる前の生のデータを表示 13
  • 15. 設定画面の項目 • User Interface - 画面のレイアウト、フォント、色の設定 • Capture - キャプチャ方法の設定 • Printing - データをプリントアウトする際の設定 • Name Resolution - MACアドレス、ホスト名、プロトコルの名前解決 • Protocols - プロトコルの表示方法に関する設定 15
  • 16. カスタマイズ検討項目 : Capture • Default Interface - デフォルトでキャプチャするインターフェースの指定 • Capture packets in promiscuous mode - プロミスキャスモードの ON/OFF • Update list of packets in real time - 実際の時間に合わせてパケット一覧部を更新 » 大量キャプチャ、低スペックマシンではOFFにするとよい • Automatic scrolling in live capture - パケットキャプチャに合わせて自動スクロール » 大量キャプチャ、低スペックマシンではOFFにするとよい • Hide capture info dialog - パケットキャプチャの際に表示されるキャプチャ状況パネルを非表示 16
  • 17. カスタマイズ検討項目 : Name Resolution • Enable MAC name resolution - MACアドレスの上位3オクテット(ベンダーID部)をベンダー名に変換 Example : "02:A0:C9:05:04:03" to "Intel_05:04:03" • Enable network name resolution - IPアドレスをホスト名に変換 (Enable concurrent DNS name resolution が有効の場合は複数の名前 解決要求をDNSサーバに送信) Example : "10.5.6.7" to "mail-07.example.com" » ONにするとDNSを参照するため、名前解決の負荷がかかる • Enable transport name resolution - トランスポート層のポート番号をアプリケーション名に変換 Example : "25" to "smtp" 17
  • 18. Capture Options • キャプチャするセッションだけに有効 - Capture • キャプチャフィルタ • バッファサイズ - Capture File(s) • 保存するファイル名 (分割可能) - Stop Capture • 自動停止の設定 - Display Option - Name Resolution 18
  • 19. 補足 : Checksum Offload について • Wiresharkでは、問題のあるパケットは赤色、黒色で表示される。自PCから送 信する要求パケットだけが赤や黒で表示される場合、Checksum Offload (OS で行っているTCPチェックサムの計算をNICのハードウェアで処理する機能) によって、チェックサムエラーを起こしている場合がある。 • 実際の通信エラーが発生し ておらず、再送処理が発生 していない場合、パケットを 取得するうえでは問題ない。 19
  • 21. パケットの検索 • 「Edit」 → 「Find Packet」 または [Ctrl] + [F] - 次候補検索 : [Ctrl] + [N] 前候補検索 : [Ctrl] + [B] - フィルタ式、16進数、文字列 を指定して検索が可能 21
  • 22. パケットのマーキング • 右クリック → 「Mark Packet」 または [Ctrl] + [M] - マーキングしたパケットは黒背景に白文字になる - マーキングしたパケットのみ保存したい場合などに使用 22
  • 23. キャプチャデータの保存とエクスポート • 保存 「File」 → 「Save As」 → pcap形式で保存 • エクスポート 「File」 → 「Export」 → 「File」 → 「Objects」 → txt, csv, html etc … 23
  • 24. 時間の表示フォーマット • 「View」 → 「Time Display Format」 - デフォルトはキャプチャ開始時間からの相対時間で表示される Default Date and Time of Day 24
  • 25. 2 種類のフィルタ • キャプチャ フィルタ - パケットをキャプチャする際に適用するフィルタ - 条件に合致したパケットのみ記録 • ディスプレイ フィルタ - キャプチャファイルを閲覧する際に適用するフィルタ - 条件に合致したパケットのみ表示 • 上記2つのフィルタは構文が異なる 25
  • 26. キャプチャ フィルタ • 「Capture Option」 → 「Capture Filter」 へ条件式を入力 - ファイルサイズは抑えられるが、キャプチャしながらフィルタするため、 負荷は多少高くなる - 原因のわからないネットワーク トラブル調査などでは、むやみにフィルタ しないほうがよい 26
  • 27. キャプチャ フィルタ 書式 • 構文とフィルタ例 Protocol Direction Host(s) Value Logical Other Operations Expreession tcp dst portrange 80-88 and dst host 192.168.0.2 ⇒ プロトコルがtcpで送信先ポートが80~88番であり、かつ送信先IPが192.168.0.2 をキャプチャ (省略) (省略) host 192.168.0.1 and port 80 ⇒ 送信元または送信先IPが192.168.0.1であり、かつ送信元または送信先ポートが80番 をキャプチャ • 有効な値の例 - Protocol : ether, ip, arp, tcp, udp (省略時:すべてのプロトコル) - Direction : src, dst, src and dst, src or dst (省略時: src or dst) - Host(s) : net, port, host, portrange - Logical Operations : not, and, or (not は構文の先頭に付けることも可) notによる否定は最も優先順位が高く、or とand は同じ優先順位で左から順に処理される 例: 「not host 192.168.0.1 and port 23」は「 (not host 192.168.0.1) and port 23」に等しい 27
  • 28. キャプチャ フィルタ の作成と保存 • 「Capture」 → 「Capture Filters」 28
  • 29. ディスプレイ フィルタ • Filter テキストボックスへ条件式を入力 - 構文が正しい場合 : テキストボックスの背景が薄緑色に変化 - 構文が正しくない場合 : テキストボックスの背景がピンク色に変化 • 元のキャプチャデータは変更せずに条件に合致するパ ケットだけが表示される 29
  • 30. ディスプレイ フィルタ 書式 • 構文とフィルタ例 Comparison Logical Other Protocol String1 String2 operator Value Operations Expreession ・ ・ ftp. Passive. ip == 192.168.0.1 or http ⇒ ftpのパッシブIPが192.168.0.1 または httpのパケットを表示 • Expression ダイアログで構 文を生成することも可能 30
  • 31. 比較演算子 と 論理演算子 • 比較演算子 • 論理演算子 英語表記 記号表記 説明 英語表記 記号表記 説明 eq == 等しい and && 論理積 ne != 等しくない or || 論理和 gt > 大なり xor ^^ 排他的論理和 lt < 小なり not ! 否定 ge >= 以上 le <= 以下 31
  • 32. ディスプレイ フィルタ の例 • HTTPリクエストのパケットを表示 - http. request • ICMPのパケットを表示しない - !icmp • IPアドレス192.168.0.1と192.168.0.2のパケットを表示 - ip.addr == 192.168.0.1 && ip.addr == 192.168.0.2 • IPアドレス 192.168.0.1 のパケットを表示しない - !(ip.addr == 192.168.0.1) ip.addr != 192.168.0.1 ではないので注意 32
  • 33. ディスプレイ フィルタ の保存 • 「Analyze」 → 「Display Filters」 33
  • 35. プロトコルの分析 : Decode As • 既定のポート以外の通信(例:137番ポートでのFTPなど)では、自動 解析の結果が期待どおりとならないため、手動でプロトコルを指定し て解析する • 分析したいパケットを右クリック → 「Decode As Decode As」 35
  • 36. Decode As 前後の比較 Decode 前 Decode 後 36
  • 37. TCP ストリームの表示 • 分析するパケットを右クリック → 「Follow TCP Stream」 クライアントからのリクエスト サーバからのレスポンス 37
  • 38. TCP ストリームの表示 (補足) • 「Follow TCP Stream」を実行すると、自動で該当パケットのみ表 示するディスプレイフィルタが適用された状態となる。 38
  • 39. Expert infos の表示 • 「Analyze」 → 「Expert Info」 39
  • 40. 統計情報 – プロトコル階層と配分 • 「Statistics」 → 「Protocol Hierarchy 」 40
  • 41. 統計情報 – エンドポイント • 「Statistics」 → 「Endpoints 」 41
  • 42. 統計情報 – 対話状況 • 「Statistics」 → 「Conversations 」 42
  • 43. 統計情報 – Endpoint, Conversations (補足) • 右クリックより、選択したノードを指定したフィルタ操作等が可能 43
  • 44. 統計情報 – IOグラフ • 「Statistics」 → 「IO Graphs 」 クリックするとメインウィ ンドウが該当する時間 帯へ移動する 44
  • 45. 統計情報 – Flowグラフ • 「Statistics」 → 「Flow Graphs 」 クリックするとメインウィ ンドウが該当する時間 帯へ移動する 45
  • 48. このセッションのまとめ • Wireshark のインストールとパケットのキャプ チャ方法について学びました。 • Wiresharkの基本的な使い方を学びました。 • 皆さんも自分でどんどん触ってみて、操作に 慣れていきましょう。 48
  • 49. 参考資料 • 実践パケット解析 - Wiresharkを使ったトラブ ルシューティング - http://www.oreilly.co.jp/books/9784873113517 - ISBN978-4-87311-351-7 • Wireshark - Documentation - http://www.wireshark.org/docs • The Wireshark Wiki - http://wiki.wireshark.org/FrontPage 49
  • 51. 使ってみよう Wireshark • 実際にWiresharkを使ってパケットを解析して みましょう。 • わからないところは近くの参加者同士で相談 しながら、または参考書を読みながらチャレン ジしてみましょう。 51
  • 52. サンプル キャプチャファイル • http.cap - 一般的なHTTPセッションのキャプチャファイルです。 • telnet-raw.pcap - Raw(per-character)モードtelnetセッションのキャプチャファイ ルです。 • ftp-netbios3.pcap - セッションで紹介したFTPポート偽装ファイルです。 - Decode As機能を試してみましょう。 • test1.pcap, test2.dmp - サーバへの攻撃パケットをキャプチャしたファイルです。 - 使用されている攻撃手法を当ててみましょう。 52
  • 53. パケットヘッダ と Ethernet フレーム パケットヘッダの階層構造 Ethernet Header (IP Header) (TCP Header) Data Ethernet ではデータ IP Header (TCP Header) Data IP ではデータ TCP Header Data Ethernetフレームフォーマット Destination Source MAC Address MAC Address Type Data FCS (6byte) (6byte) (2byte) (46~1500byte) (4byte) 53
  • 54. IPv4 ヘッダフォーマット 0 34 78 15 16 31(bit) Version IHL Type of Service Total Length (バージョン) (ヘッダ長) (サービスタイプ) (パケット長) Identification Flags Flagment Offset (識別子) (フラグ) (フラグメントオフセット) Time To Live Protocol Header Checksum (生存時間) (プロトコル番号) (ヘッダチェックサム) Source IP Address (送信元IPアドレス) Destination IP Address (宛先IPアドレス) Option + Padding (オプション + パディング) Data (TCP,UDP,ICMPなどのプロトコルのヘッダとデータ) 54
  • 55. TCP ヘッダフォーマット 0 34 9 10 15 16 31(bit) Source Port Destination Port (送信元ポート番号) (宛先ポート番号) Sequence Number (シーケンス番号) Acknowledgement Number (確認応答番号) Data Reserved U A P R S F Window Size R C S S Y I Offset (予約領域) (ウィンドウサイズ) G K H T N N Checksum Urgent Pointer (チェックサム) Code bit (緊急ポインタ) Option + Padding (オプション + パディング) Data (データ部) 55
  • 56. TCP コネクション管理 SYN (コネクション確立要求) ACK (SYNに対する確認応答) SYN (コネクション確立要求) コネクション確立 (3 -Way Handshake) ACK (SYNに対する確認応答) コネクション確立後 データデータ転送開始 FIN/ACK (コネクション切断要求) ACK (FINに対する確認応答) FIN/ACK (コネクション切断要求) コネクション切断 ACK (FINに対する確認応答) 56
  • 57. TCP ヘッダ Codebit Codebit 説明 URG このビットが1の場合、緊急処理すべきデータが含まれることを意味する。 (Urgent) ACK このビットが1の場合、確認応答番号のフィールドが有効であることを意 (Acknowledgement) 味する。コネクション確立時の最初のSYNセグメント以外は必ず1である必 要がある。 PSH このビットが1の場合、受信したデータをすぐに上位のアプリケーションに (Push) 渡す。0の場合はバッファリングを許す。 RST このビットが1の場合、コネクションが強制的に切断される。 (Reset) 何らかの異常を検出した場合に送信される。 SYN このビットが1の場合、コネクション確立の意思表示を表す。また、シーケ (Synchronize) ンス番号のフィールドに格納されている番号でシーケンス番号の初期化 が行われる。 FIN このビットが1の場合、今後送信するデータがないことを意味する。それぞ (Fin) れのFINに対して確認応答されるとコネクションが切断される。 57