Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Wireshark&パケット解析入門@ハンズオン@サポーターズCoLab用資料
Search
Azunyan
August 02, 2019
Technology
0
560
Wireshark&パケット解析入門@ハンズオン@サポーターズCoLab用資料
サポーターズで行なった勉強会の資料です
https://supporterzcolab.com/event/904/
Azunyan
August 02, 2019
Tweet
Share
More Decks by Azunyan
See All by Azunyan
パケット解析入門-勉強会資料
azunyan1111
6
2.5k
Other Decks in Technology
See All in Technology
Master Dataグループ紹介資料
sansan33
PRO
1
4k
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
13
8.3k
Codeer.LowCode.Blazor 紹介と成長録
wadawada
0
110
DGX SparkでローカルLLMをLangChainで動かした話
ruzia
1
150
Kill the Vibe?Architecture in the age of AI
stoth
1
120
なぜフロントエンド技術を追うのか?なぜカンファレンスに参加するのか?
sakito
3
600
メッセージ駆動が可能にする結合の最適化
j5ik2o
9
1.7k
Digitization部 紹介資料
sansan33
PRO
1
6k
今すぐGoogle Antigravityを触りましょう
rfdnxbro
0
230
オープンデータの内製化から分かったGISデータを巡る行政の課題
naokim84
1
600
GitHub を組織的に使いこなすために ソニーが実践した全社展開のプラクティス
sony
17
8.8k
PostgreSQL で列データ”ファイル”を利用する ~Arrow/Parquet を統合したデータベースの作成~
kaigai
0
180
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Automating Front-end Workflow
addyosmani
1371
200k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Rails Girls Zürich Keynote
gr2m
95
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Writing Fast Ruby
sferik
630
62k
Agile that works and the tools we love
rasmusluckow
331
21k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Transcript
Wireshark&パケット解析⼊⾨ ハンズオン Azunyan1111
講義情報 • 使うツール • Wireshark • https://goo.gl/yRwKp1 • 講義で使うパケットファイルもあります •
https://ux.nu/EkoPN • 講義資料はアップロード予定
ツイッター実況OK!(たぶん) • ハッシュタグ #spzcolab をつけてツイートしよう!
もくじ(時間が許す限り最後までやる) • 本⽇のみんなの⽬標発表 • 軽く⾃⼰紹介 • 注意事項 • パケット解析に必要な最低限の知識 •
Wiresharkの紹介&インストール! • Wiresharkを使ってパケットを⾒てみよう! • 実践!パケットファイルからパスワードを抜いてみよう! • 質問orこれやってくれ
本⽇のみんなの⽬標 パケット解析完全に理解した とツイートする
本⽇のみんなの⽬標 パケット解析完全に理解した とツイートする ↓ パケット解析⼊⾨完全に理解した と⾔えるレベルになろう!
⾃⼰紹介 • 名前:Azunyan1111 • ツイッター:@Azunyan1111_ ←アンダーバー1つに注意 • 職種:サーバーサイドエンジニア • ⼤学:恵⽐寿にあるゲーム会社
• ⾔語:Go • 趣味:Webセキュリティ • 研究してた:Tor(匿名化ブラウザの奴) • セキュリティキャンプ2019福岡 チューター(講師補助) • セキュリティキャンプ2018全国⼤会 参加 • セキュリティキャンプ2018⼭梨 参加 • セキュリティキャンプ2016福岡 参加
注意事項 わからない単語が出てきたらすぐに調べるのを推奨 間違ってる知識があるかもしれないので違うっぽかったら指摘し てください →調べてもわからなかったら 講義のあとに質問タイムも⽤意しているのでそこでもOK
パケット解析に必要な最低限の知識
パケット解析に必要な最低限の知識 • パケットとは • TCP/IP • MACアドレス • OSI参照モデル
パケットとは • 情報伝送の⼀単位。伝送・交換に必要な情報を付したもの。 • Wikipediaより • 以下おっさんがJKに可愛いって情報を送ってる図 To:JK 君可愛いね♪ 君可愛いね♪という情報が⼊ってるパケット
From:おっさん 君可愛いね♪
補⾜情報 • パケットは必ずしも⼀つではない。 • パケットの最⼤サイズは1500byte(任意に変更可能) • もし1024KB(約1MB)のデータを送る場合1500byteでは⾜りないので複数 のパケットに分割して送る • 単純計算で
• 1,048,576byte/1500byte = 約700パケットを送る必要がある • 実際はIPアドレスやMACアドレス等の接続情報が加わるのでもっと多い • 解析する時はツールが良い感じにつなげてくれるので700個もパケット⾒ る必要は無い
TCP/IP • ⼀般的に広く使われているプロトコル群 • TCPとIPv4を使って通信をする⽅法 • IP • パソコン1台に割り当てられるIPアドレスを元にルーターがリレーをし て相⼿に到達する
• TCP • 3way ハンドシェイクでコネクションを確⽴して通信を⾏う • パケットは必ずしも相⼿に到達するとは限らない。 • なので再送信とかする必要がある。そういうのをやってくれる奴
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 その他のルーター (インターネット)
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 その他のルーター (インターネット)
OSI参照モデル • 正直ざっくりと分かってれば良い • リンク層 • Mac:Macアドレスを元に通信をする(LANの中での通信な雰囲気) • ネットワーク層(インターネット層) •
IP:IPアドレスを元に通信する(インターネットな雰囲気) • トランスポート層 • TCP:コネクションを確⽴して通信をする(通信形式みたいな) • リンク層の上にネットワーク層が乗ってその上にトランスポー トが乗っての繰り返し。
Wiresharkの紹介
Wiresharkとは • 世界的に有名なパケット解析ツール • これがあれば⼤体何でもできる。 • 鍵があればHTTPS中⾝とかも⾒れる
Wiresharkを使ってパケットを⾒てみよう!
サンプルパケットのダウンロード • Google Driveからダウンロードしてね。 • https://ux.nu/EkoPN • sampleHTTPをWiresharkで開く
開き⽅
開き⽅
開き⽅
開き⽅
Wiresharkの⾒⽅ これら⼀つ⼀つがパケット パケットの中⾝を表⽰している 本当に流れている実際のパケットの中⾝
Wiresharkの⾒⽅ 送信先IPアドレス 送信元IPアドレス プロトコルの種類(⼀番上に乗ってるの) パケットをデコードした結果
Wiresharkのフィルタ ここに「http」と⼊⼒してHTTPリクエストだけをフィルタして表⽰する
Wiresharkでフィルタした後 フィルタの中⾝ HTTPでフィルタしたのでHTTPのみ
TCP/IPパケット解説 • わかりやすい図などはこちら • IP • https://www.infraexpert.com/study/tcpip1.html • TCP •
https://www.infraexpert.com/study/tcpip8.html
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アドレスを教えあうプロトコル)
Wiresharkだと
TCP/IPパケット解説 • ネットワーク層 • ▪⾚:送信元IPアドレス( 192.168.1.7 ) • ▪⻩:送信先IPアドレス( 219.94.163.38
) • ※リンク層とは別で送信元と送信先が逆な所注意 • 192.168.1.7の部分はルーターがグローバルIPに置き換えてネッ トに出て⾏く。
Wiresharkだと
Wiresharkワンポイントアドバイス • バイナリをクリックするとそれが何の情報なのかを真ん中のタ ブで表⽰してくれる。(逆もしかり)
Wireshark で HTTP GETリクエストを追ってみよう
⼀旦フィルタを消そう! ここの×をクリックするか フィルタの中⾝の⽂字列を消してエンター!
HTTP GETを追う フィルタが何も無いことを確認
HTTP GETを追う HTTP GETと書かれているのを右クリック 追跡→HTTPストリーム
HTTP GETを追う ⾚:実際に送っているリクエスト ⻘:リクエストに対する返答 リクエストしたHTMLの中⾝
HTTP GETを追う ⾚:実際に送っているリクエスト ⻘:リクエストに対する返答 ⽂字化けはここから⽂字コード変換 (⽇本語不可)
HTTP GETを追う ここからリクエスト送った側と送られた側でフィルタできる ⽂字化けはここから⽂字コード変換 (⽇本語不可) 検索を使うと該当⽂字列がドラッグされる
HTTP GETを追う パケットサイズを⾒ると1つのHTMLを1468byteで分割して 複数のパケットで送っているのがわかる
みんなお待ちかね唐突の課題! • 農林⽔産省のIPアドレスをWiresharkを使って調査せよ!
どうやるの? • コントールキー+Wキーを押すとこちらの画⾯に戻ります。
どうやるの? • パケットをキャプチャするインターフェイスを選択 ここにインターフェイスのリストがある ここの波形が⼀番波打ってるのが⼤体メインのインターフェイス
どうやるの? パケットキャプチャが即座に⾏われパソコンに⼊ってるパケット全てを羅列する
どうやるの? • パケットがキャプチャされ始めたらブラウザを使って農林⽔産 省のホームページへアクセス! • すると農林⽔産省のホームページに対してHTTP GETリクエス トを⾏います。 • コツ:アクセス前にキャプチャを⼀旦停⽌してクリアする。キャ
プチャを開始すると同時にブラウザでアクセス。 • HTMLが表⽰れたら即座にキャプチャ停⽌
どうやるの? パケットキャプチャ開始 パケットキャプチャ停⽌
どうやるの? 記録したパケットをクリアする 最後のパケットを追尾 最後or最初のパケットに⾶ぶ 記録したパケットの順番
パケット多すぎ!!! • 知らない間にパソコンにはいろいろなパケットがあります。 • さっき使ったフィルタを使ってみましょう。
答え合わせ • 実際にやります
は?こんなの余裕でしょw • そんな⼈たちへ • 福岡県久留⽶市のホームページにGETリクエストを送って Wiresharkで表⽰してみよう! • 条件:左下の画像と同じ感じに表⽰しよう!
答え合わせ • 実際にやります。
最終問題! • getPassword.pcapngファイルを開いてパスワードをブチ抜こ う! • 答えがわかったら↓のURLから⼊⼒しよう! • http://leggiero.sakura.ne.jp/xxxxbasic_auth_testxxxx/secret/ kaiin_page_top.htm •
https://ux.nu/mTkRa
答え合わせ • 実際にやります。
よく使うパケットフィルタリスト • よく使うパケットフィルタ • http • ip.addr == 192.168.1.7 •
というかここを⾒れば良い • フィルタの右側の書式を押す • 検索にそれっぽい単語を⼊れる
その他の解析ツール紹介 • Charles 試⽤・有料 • http/httpsのパケット解析に特化したツール • ドメインごとにリクエストを⾒られるので⽬的のパケットを⾒つけやすい • Curlを⽂を⾃動⽣成するのでワンクリックでリクエストを再現可能。
• Pkttools 無料 • セキュリティキャンプでおなじみ坂井弘亮⽒が作った純国産 • 簡易分析の位置付けだがパケットを直接編集や送信などできる超神ツール • CLIでパイプを使ってフィルタする • Chrome 開発者ツール Networkタブ 無料 • ブラヴザに⼊るhttp/httpsリクエストを分析できる。 • Curlを⽂を⾃動⽣成するのでワンクリックでリクエストを再現可能。
Charles
pkttools
chrome
Chrome curl
Chrome curl
質問orこれやってくれ!
最後に • サポーターズcolab運営のみなさまへ • イベントの場所確保など⼤変な作業ありがとうございました。