Wireshark&パケット解析入門@ハンズオン@サポーターズCoLab用資料

Dbe2b5015fd7fa1e4e7772abcff534e0?s=47 Azunyan
August 02, 2019

 Wireshark&パケット解析入門@ハンズオン@サポーターズCoLab用資料

サポーターズで行なった勉強会の資料です
https://supporterzcolab.com/event/904/

Dbe2b5015fd7fa1e4e7772abcff534e0?s=128

Azunyan

August 02, 2019
Tweet

Transcript

  1. Wireshark&パケット解析⼊⾨ ハンズオン Azunyan1111

  2. 講義情報 • 使うツール • Wireshark • https://goo.gl/yRwKp1 • 講義で使うパケットファイルもあります •

    https://ux.nu/EkoPN • 講義資料はアップロード予定
  3. ツイッター実況OK!(たぶん) • ハッシュタグ #spzcolab をつけてツイートしよう!

  4. もくじ(時間が許す限り最後までやる) • 本⽇のみんなの⽬標発表 • 軽く⾃⼰紹介 • 注意事項 • パケット解析に必要な最低限の知識 •

    Wiresharkの紹介&インストール! • Wiresharkを使ってパケットを⾒てみよう! • 実践!パケットファイルからパスワードを抜いてみよう! • 質問orこれやってくれ
  5. 本⽇のみんなの⽬標 パケット解析完全に理解した とツイートする

  6. 本⽇のみんなの⽬標 パケット解析完全に理解した とツイートする ↓ パケット解析⼊⾨完全に理解した と⾔えるレベルになろう!

  7. ⾃⼰紹介 • 名前:Azunyan1111 • ツイッター:@Azunyan1111_ ←アンダーバー1つに注意 • 職種:サーバーサイドエンジニア • ⼤学:恵⽐寿にあるゲーム会社

    • ⾔語:Go • 趣味:Webセキュリティ • 研究してた:Tor(匿名化ブラウザの奴) • セキュリティキャンプ2019福岡 チューター(講師補助) • セキュリティキャンプ2018全国⼤会 参加 • セキュリティキャンプ2018⼭梨 参加 • セキュリティキャンプ2016福岡 参加
  8. 注意事項 わからない単語が出てきたらすぐに調べるのを推奨 間違ってる知識があるかもしれないので違うっぽかったら指摘し てください →調べてもわからなかったら 講義のあとに質問タイムも⽤意しているのでそこでもOK

  9. パケット解析に必要な最低限の知識

  10. パケット解析に必要な最低限の知識 • パケットとは • TCP/IP • MACアドレス • OSI参照モデル

  11. パケットとは • 情報伝送の⼀単位。伝送・交換に必要な情報を付したもの。 • Wikipediaより • 以下おっさんがJKに可愛いって情報を送ってる図 To:JK 君可愛いね♪ 君可愛いね♪という情報が⼊ってるパケット

    From:おっさん 君可愛いね♪
  12. 補⾜情報 • パケットは必ずしも⼀つではない。 • パケットの最⼤サイズは1500byte(任意に変更可能) • もし1024KB(約1MB)のデータを送る場合1500byteでは⾜りないので複数 のパケットに分割して送る • 単純計算で

    • 1,048,576byte/1500byte = 約700パケットを送る必要がある • 実際はIPアドレスやMACアドレス等の接続情報が加わるのでもっと多い • 解析する時はツールが良い感じにつなげてくれるので700個もパケット⾒ る必要は無い
  13. TCP/IP • ⼀般的に広く使われているプロトコル群 • TCPとIPv4を使って通信をする⽅法 • IP • パソコン1台に割り当てられるIPアドレスを元にルーターがリレーをし て相⼿に到達する

    • TCP • 3way ハンドシェイクでコネクションを確⽴して通信を⾏う • パケットは必ずしも相⼿に到達するとは限らない。 • なので再送信とかする必要がある。そういうのをやってくれる奴
  14. TCP/IP • IPにはローカルIPとグローバルIPが現代では普及している • DHCPとかで調べると各種の違いが分かる • ルーカルIPとはルーターのLAN内での擬似的なIPアドレス的な感じ • 192.168.~.~が⼤体ローカルIPアドレス。 •

    グローバルIPアドレスはLANの代表となるIPアドレスみたいな感じ 192.168.1.2 150.43.0.0 133.5.0.0 192.168.1.2 その他のルーター (インターネット)
  15. MACアドレス • 通信端末に世界で唯⼀割り当てられた識別⼦ • パソコンのインターフェースと呼ばれる部分に割り当てられる • インターフェイスは通信の出⼊り⼝的なところ IP:192.168.1.2 MAC:98:01:a7:d0:b7:5b 150.43.0.0

    133.5.0.0 IP:192.168.1.2 MAC:58:52:8a:1b:08:fd その他のルーター (インターネット)
  16. OSI参照モデル • 正直ざっくりと分かってれば良い • リンク層 • Mac:Macアドレスを元に通信をする(LANの中での通信な雰囲気) • ネットワーク層(インターネット層) •

    IP:IPアドレスを元に通信する(インターネットな雰囲気) • トランスポート層 • TCP:コネクションを確⽴して通信をする(通信形式みたいな) • リンク層の上にネットワーク層が乗ってその上にトランスポー トが乗っての繰り返し。
  17. Wiresharkの紹介

  18. Wiresharkとは • 世界的に有名なパケット解析ツール • これがあれば⼤体何でもできる。 • 鍵があればHTTPS中⾝とかも⾒れる

  19. Wiresharkを使ってパケットを⾒てみよう!

  20. サンプルパケットのダウンロード • Google Driveからダウンロードしてね。 • https://ux.nu/EkoPN • sampleHTTPをWiresharkで開く

  21. 開き⽅

  22. 開き⽅

  23. 開き⽅

  24. 開き⽅

  25. Wiresharkの⾒⽅ これら⼀つ⼀つがパケット パケットの中⾝を表⽰している 本当に流れている実際のパケットの中⾝

  26. Wiresharkの⾒⽅ 送信先IPアドレス 送信元IPアドレス プロトコルの種類(⼀番上に乗ってるの) パケットをデコードした結果

  27. Wiresharkのフィルタ ここに「http」と⼊⼒してHTTPリクエストだけをフィルタして表⽰する

  28. Wiresharkでフィルタした後 フィルタの中⾝ HTTPでフィルタしたのでHTTPのみ

  29. TCP/IPパケット解説 • わかりやすい図などはこちら • IP • https://www.infraexpert.com/study/tcpip1.html • TCP •

    https://www.infraexpert.com/study/tcpip8.html
  30. TCP/IPパケット解説 • リンク層 • ▪⾚:送信先macアドレス( 58:52:8a:1b:08:fd ) • ▪⻩:送信元macアドレス( 98:01:a7:d0:b7:5b

    ) • ▪⻘:イーサタイプ(IPv4なのかIPv6なのか)https://goo.gl/HqZa2h • 0x0800だとIPv4 • 0x86DDだとIPv6 • 0x0806だとARP(MACアドレスを教えあうプロトコル)
  31. Wiresharkだと

  32. TCP/IPパケット解説 • ネットワーク層 • ▪⾚:送信元IPアドレス( 192.168.1.7 ) • ▪⻩:送信先IPアドレス( 219.94.163.38

    ) • ※リンク層とは別で送信元と送信先が逆な所注意 • 192.168.1.7の部分はルーターがグローバルIPに置き換えてネッ トに出て⾏く。
  33. Wiresharkだと

  34. Wiresharkワンポイントアドバイス • バイナリをクリックするとそれが何の情報なのかを真ん中のタ ブで表⽰してくれる。(逆もしかり)

  35. Wireshark で HTTP GETリクエストを追ってみよう

  36. ⼀旦フィルタを消そう! ここの×をクリックするか フィルタの中⾝の⽂字列を消してエンター!

  37. HTTP GETを追う フィルタが何も無いことを確認

  38. HTTP GETを追う HTTP GETと書かれているのを右クリック 追跡→HTTPストリーム

  39. HTTP GETを追う ⾚:実際に送っているリクエスト ⻘:リクエストに対する返答 リクエストしたHTMLの中⾝

  40. HTTP GETを追う ⾚:実際に送っているリクエスト ⻘:リクエストに対する返答 ⽂字化けはここから⽂字コード変換 (⽇本語不可)

  41. HTTP GETを追う ここからリクエスト送った側と送られた側でフィルタできる ⽂字化けはここから⽂字コード変換 (⽇本語不可) 検索を使うと該当⽂字列がドラッグされる

  42. HTTP GETを追う パケットサイズを⾒ると1つのHTMLを1468byteで分割して 複数のパケットで送っているのがわかる

  43. みんなお待ちかね唐突の課題! • 農林⽔産省のIPアドレスをWiresharkを使って調査せよ!

  44. どうやるの? • コントールキー+Wキーを押すとこちらの画⾯に戻ります。

  45. どうやるの? • パケットをキャプチャするインターフェイスを選択 ここにインターフェイスのリストがある ここの波形が⼀番波打ってるのが⼤体メインのインターフェイス

  46. どうやるの? パケットキャプチャが即座に⾏われパソコンに⼊ってるパケット全てを羅列する

  47. どうやるの? • パケットがキャプチャされ始めたらブラウザを使って農林⽔産 省のホームページへアクセス! • すると農林⽔産省のホームページに対してHTTP GETリクエス トを⾏います。 • コツ:アクセス前にキャプチャを⼀旦停⽌してクリアする。キャ

    プチャを開始すると同時にブラウザでアクセス。 • HTMLが表⽰れたら即座にキャプチャ停⽌
  48. どうやるの? パケットキャプチャ開始 パケットキャプチャ停⽌

  49. どうやるの? 記録したパケットをクリアする 最後のパケットを追尾 最後or最初のパケットに⾶ぶ 記録したパケットの順番

  50. パケット多すぎ!!! • 知らない間にパソコンにはいろいろなパケットがあります。 • さっき使ったフィルタを使ってみましょう。

  51. 答え合わせ • 実際にやります

  52. は?こんなの余裕でしょw • そんな⼈たちへ • 福岡県久留⽶市のホームページにGETリクエストを送って Wiresharkで表⽰してみよう! • 条件:左下の画像と同じ感じに表⽰しよう!

  53. 答え合わせ • 実際にやります。

  54. 最終問題! • getPassword.pcapngファイルを開いてパスワードをブチ抜こ う! • 答えがわかったら↓のURLから⼊⼒しよう! • http://leggiero.sakura.ne.jp/xxxxbasic_auth_testxxxx/secret/ kaiin_page_top.htm •

    https://ux.nu/mTkRa
  55. 答え合わせ • 実際にやります。

  56. よく使うパケットフィルタリスト • よく使うパケットフィルタ • http • ip.addr == 192.168.1.7 •

    というかここを⾒れば良い • フィルタの右側の書式を押す • 検索にそれっぽい単語を⼊れる
  57. その他の解析ツール紹介 • Charles 試⽤・有料 • http/httpsのパケット解析に特化したツール • ドメインごとにリクエストを⾒られるので⽬的のパケットを⾒つけやすい • Curlを⽂を⾃動⽣成するのでワンクリックでリクエストを再現可能。

    • Pkttools 無料 • セキュリティキャンプでおなじみ坂井弘亮⽒が作った純国産 • 簡易分析の位置付けだがパケットを直接編集や送信などできる超神ツール • CLIでパイプを使ってフィルタする • Chrome 開発者ツール Networkタブ 無料 • ブラヴザに⼊るhttp/httpsリクエストを分析できる。 • Curlを⽂を⾃動⽣成するのでワンクリックでリクエストを再現可能。
  58. Charles

  59. pkttools

  60. chrome

  61. Chrome curl

  62. Chrome curl

  63. 質問orこれやってくれ!

  64. 最後に • サポーターズcolab運営のみなさまへ • イベントの場所確保など⼤変な作業ありがとうございました。