7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

tsharkコマンドでpcapデータを解析

Last updated at Posted at 2020-06-02

1.tsharkコマンドとは
2.環境設定
3.実行
4.pcapファイルのフィルタリング方法
5.オプション
6.参考

tsharkコマンドとは

Wiresharkの実行をCLIで実現できるものです。
CLIなので、並列処理、シェルスクリプトでの記載、cron、grepなどなど、CLI職人にとってはpcapデータをかなり楽に扱えるようになります!

環境設定

本記事ではMacOSで試しています。
まずお持ちのMacでtsharkを利用できる状態にします。GUIでもCLIでもどちらからでも可能です。

GUI(Webから)でインストールの場合
 下記からインストールできます。
 https://www.wireshark.org/download.html

CLI(ターミナル)でインストールの場合

インストール
 brew install wireshark

※まだhomebrew(brewコマンド)が利用できない場合は、下記を参考に利用できるようにしてみてください!
Homebrewのインストール方法

実行

早速実行していきましょう!今回はtest.pcapというデータを見ていきます。

実行
 tshark -r test.pcap

これでデータの中身が確認できたと思います。
ちなみにデータの並び方と表示されている項目はデフォルト状態ですが、確認したいデータや表示順などを指定することができます。
GUIのWiresharkで列の表示変更を行った場合もtsharkコマンドの結果に影響されます。

pcapファイルのフィルタリング方法

今回は下記の条件をつけてフィルタリングして、再度実行してみましょう。
条件
(※)通常のWireShark(GUI)で利用できるフィルター
 ・smb2プロトコルの通信に絞る
   smb2.tree && tcp.dstport==445
 ・ファイル名や利用アカウント名が抜けている余分な通信は除去する
   smb2.filename != "" && smb2.acct != ""
表示
(※)通常のWireShark(GUI)で利用できる列の書き方
 ・アカウント名
   smb2.acct
 ・フォルダパス(共有パス)
   smb2.tree
 ・操作ファイル名
   smb2.filename
 ・アクセスしている端末名
   smb2.host

実行
 tshark -r test.pcap -T fields -e smb2.acct -e smb2.tree -e smb2.filename -e smb2.host -Y 'smb2.tree && tcp.dstport==445 && smb2.filename != "" && smb2.acct != ""'

下記のようにパイプやリダイレクトを利用して簡単に扱えるデータに変換ももちろん可能です。

参考
 tshark -r test.pcap <オプション系> | grep -i test
 tshark -r test.pcap <オプション系> > test.csv

#オプション

オプション 内容
-i <interface> キャプチャするインターフェイスを指定
-f <capture filter> libpcapフィルタsyntaxによるフィルタを指定
-s <snaplen> snapshot lengthを指定(デフォルト:65535)
-p プロミスキャスモードを使用しない
-y <link type> リンクレイヤータイプを指定(デフォルト:first appropriate)
-D インターフェイスリストを表示
-L インターフェイスのリンクレイヤータイプリストを表示
-c <packet count> 指定したパケット数で停止(デフォルト:無限)
-a <autostop cond.> ・duration:NUM
NUMで指定した秒数経過により停止
・filesize:NUM
NUMで指定したサイズ(KB)に保存ファイルが達したら停止
・files:NUM
NUMで指定した数の保存ファイル数に達したら停止
-b <ringbuffer opt.> ・duration:NUM
NUMで指定した秒数経過により次のファイルへ保存
・filesize:NUM
NUMで指定したサイズ(KB)に保存ファイルが達したら次のファイルへ保存
・files:NUM
NUMで指定した数の保存ファイル数に達したらファイルの置き換え
-r <infile> パケットfileから読出し
R <read filter> Wiresharkディスプレイフィルタを指定
-n すべての名前解決を無効にする(デフォルト:有効)
-N <name resolve flags> 特定の名前解決を有効にする
-d <layer_type>==<selector>,<decode_as_protocol> 特定のポートを特定のプロトコルと紐付け
tcp.port==8888,httpの場合は
「tcpポート8888番はhttpとする」となる
-C <config profile> 設定ファイルを指定
-F <output file type> 出力ファイルタイプを指定
-V 表示にパケットツリーを追加
-S [-w]オプションを有効にしている場合でもパケットを表示
-x hex、ACSIIダンプ表示を追加
-e <field> アウトプットしたいフィールドを指定

参考

Homebrewのインストール方法
tshark オプションメモ

7
7
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
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?