Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

パケットで遊ぼう! #ssmjp 2015/04

3,549 views

Published on

#ssmjp 2015/04で発表したスライドです。
pcapファイルをいろいろと弄って遊んでみました!

Published in: Technology
  • Be the first to comment

パケットで遊ぼう! #ssmjp 2015/04

  1. 1. パケットで遊ぼう #ssmjp 2015/04 @takahoyo 2015/4/25 1
  2. 2. 本日の内容 パケットで遊ぶ 2015/4/25 3
  3. 3. 本日の内容 パケットで遊ぶ 2015/4/25 4
  4. 4. パケットとは パケット (packet) とは、「小包」のことであるが、日本 ではもっぱらパケット通信または蓄積交換(通信方式)に おける情報の伝送単位を指す。主としてISOのOSI参照モ デルでは第3層 ネットワークレイヤで使われる。RFC 1122では、インターネットレイヤで使われる。 パケット単位で通信を行うことにより、ネットワークの帯 域を連続して占有することがなくなって複数の端末からの 送受信データを1本の信号線上に多重化出来る、データの 一部が破損・喪失しても少ないコストで再送が可能になる、 網状の通信路構成に適している、などの利点がある。 Wikipedia(http://ja.wikipedia.org/wiki/%E3%83%91%E3%82%B1%E3%83%83%E3%83%88)より 2015/4/25 5
  5. 5. どういうことだってばよ? • ネットワーク上に流れているもの • 郵便配達に例えると郵便物 • 例えば、Web通信の場合はこんな感じ Ethernet TCPIP HTTP 2015/4/25 6
  6. 6. パケットと接する心構え 一.パケットをよく知ろう! 二.パケットを怖がらないで! 三.パケットに愛をこめて! つまり… 2015/4/25 7 パケットは友達!!
  7. 7. パケットで遊ぶ • キャプチャしたパケットを見る • 送信するパケットを弄くる • キャプチャしたパケットをいじる • まあ他にもあるかも 2015/4/25 9
  8. 8. パケットで遊ぶ • キャプチャしたパケットを見る • 送信するパケットを弄る • キャプチャしたパケットをいじる 2015/4/25 10
  9. 9. 用意するもの • 適当にキャプチャしたpcapファイル • Wireshark • バイナリエディタ • パケットエディタ WireEdit • https://wireedit.com/ 2015/4/25 11
  10. 10. 今回使うパケット 2015/4/25 12
  11. 11. 今回やること • 適当に記録されているpcapファイルを用意 • 記録されてるパケットを書き換えてみよう • WireEditに読み込ませよう • User-Agentでも変えてみるかー • Wiresharkで問題なく表示出来るかみよう • うまく行かなかったら直す 2015/4/25 13
  12. 12. これを… 2015/4/25 14
  13. 13. こうして 2015/4/25 15
  14. 14. こうじゃ! 2015/4/25 16
  15. 15. お分かり頂けただろうか 今回はshellshock風にしてみました 2015/4/25 17
  16. 16. Wiresharkで見てみる 2015/4/25 18
  17. 17. よし、これで終わり? • 書き換え前と書き換え後の結果をよく見る 2015/4/25 19
  18. 18. エラーの原因 • HTTPヘッダ部分を書き換えた = TCPのデータのバイト数が変わった • TCPヘッダには… • シーケンス番号、ACK番号 • 送信されるデータバイト数によって変化 • シーケンス番号とACK番号がおかしいのでは! 2015/4/25 20
  19. 19. 2015/4/25 21 192.168.1.154 157.7.205.139 13. GET /favicon.ico HTTP/1.1 seq = 3340263310 ack = 257904800 data = 306 byte 14. HTTP/1.1 404 Not Found seq = 257904800 ack = 3340263616 data = 315 byte 15. GET /favicon.ico HTTP/1.1 syn = 3340263616 ack = 257905115 data = 306 byte seq = 3340263310 ack = 257904800 ↓ seq = 257904800 ack = 3340263310 + 306 seq = 257904800 ack = 3340263616 ↓ seq = 3340263616 ack = 257904800 + 315 ・ ・ ・ ・ ・ ・
  20. 20. 2015/4/25 22 192.168.1.154 157.7.205.139 13. GET /favicon.ico HTTP/1.1 seq = 3340263310 ack = 257904800 data = 273 byte 14. HTTP/1.1 404 Not Found seq = 257904800 ack = 3340263583 data = 315 byte 15. GET /favicon.ico HTTP/1.1 syn = 3340263583 ack = 257905115 data = 306 byte seq = 3340263310 ack = 257904800 ↓ seq = 257904800 ack = 3340263310 + 273 seq = 257904800 ack = 3340263583 ↓ seq = 3340263583 ack = 257904800 + 315 ・ ・ ・ ・ ・ ・
  21. 21. 2015/4/25 23 13のパケット
  22. 22. 2015/4/25 24 13のパケット
  23. 23. 2015/4/25 25 14のパケット
  24. 24. 2015/4/25 26 14のパケット
  25. 25. 2015/4/25 27
  26. 26. まとめ • WireEditで簡単にpcapファイルの中身を変える • Wiresharkで確認するとエラー • WireEditはチェックサムは自動で計算 • シーケンス番号、確認応答番号は計算してくれない • そこは、計算して直す • きれいなパケットの完成\(^o^)/ • プロトコルの知識が深まるかもね 2015/4/25 28
  27. 27. ~ FIN/ACK ~ 2015/4/25 29

×