LoginSignup
27
35

More than 5 years have passed since last update.

代表的なパケットキャプチャ方法一覧

Last updated at Posted at 2017-01-15

はじめに

ITインフラエンジニアなら毎日やってるパケットキャプチャ。
そのパケットキャプチャの代表的な方法を一覧で。
単なる私の備忘録です。
というか、いつも忘れるのが一番下のHTTPの部分なので、単にそれをメモっておきたいってだけです。

こんなのもあるよ、こっちのほうが良いよ、というのがありましたら、是非教えて頂けたらとても嬉しいです。

Windows

ex)
C:\WINDOWS\system32>netsh trace start capture=yes

トレース構成:
-------------------------------------------------------------------
ステータス:           実行中
トレース ファイル:    C:\Users\hoge\AppData\Local\Temp\NetTraces\NetTrace.etl
追加:                 オフ
循環:                 オン
最大サイズ:           250 MB
レポート:             オフ


C:\WINDOWS\system32>netsh trace stop
トレースを関連付けています... 完了
トレースの結合中... 完了
データ収集を生成しています ... 完了
トレース ファイルと追加のトラブルシューティング情報は、"C:\Users\hoge\AppData\Local\Temp\NetTraces\NetTrace.cab" としてコンパイルされました。
ファイルの場所 = C:\Users\gzock\AppData\Local\Temp\NetTraces\NetTrace.etl
トレース セッションは正常に停止しました。

※パケットキャプチャする物理IFやキャプチャフィルタなども設定可能(詳しくはnetsh trace /?)
※出力されたファイルはMicrosoft Message Analyzerで開いて中身を確認
※Microsoft Message Analyzer経由で.pcapに変換可能
※プロミスキャスモードではない

Linux

  • tcpdump
ex) tcpdump -i eth0 dst port 80
  • ngrep
ex) ngrep -d eth0 -W byline -q port 80

その他

  • WinSockを使ったパケットキャプチャツール
    ※「簡易 パケットキャプチャ」 とかググれば結構見つかる
    ※netsh traceもそうだが、プロミスキャスモードではキャプチャ出来ない

  • libpcapを使ったパケットキャプチャツール

おまけ (HTTP GET/POST)

  • Wireshark
GET => http.request.method == "GET"
POST => http.request.method == "POST"
  • tcpdump
GET => tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
POST => tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
  • ngprep
GET => ngrep 'GET /url'
POST => ngrep 'POST /url'

参考

各々非常に参考にさせて頂きました。ありがとうございます。
* Can I use tcpdump to get HTTP requests, response header and response body?
* 通信内容をわかりやすくキャプチャできるngrep

27
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
35