WireShark で SMB/CIFS のパケット解析をするときの便利 Tips

はじめに

仕事で SMB プロトコルのパケット解析ばかりするようになってきた.

少し Tips がたまってきたので, 忘れないうちにメモしようと思う. SMB2 限定.

かなりニッチな内容だけれども, いつかどこかで誰かの役に立つことを願う.

検索を利用する

Ctrl + F で検索窓か開くので, キーワードから検索.

Filter を利用する

素早く情報を検索するには, フィルタが有効.

  • ツールバーからフィルタのパターンを入力
  • よく利用するものは, save を押すと再利用可能
  • フィルタの追加, 削除は Edit > Preferences > Filter Expressions から.

以下, よく利用するものを列挙

smb プロトコルをフィルタする

これは基本.

[sourcecode language=”text” title=”” ]
smb or smb2
[/sourcecode]

IP アドレスでフィルタリング

サーバのログをみるとき, たくさんのクライアントからのアクセスがある ので, ログが見づらい. 以下で, 送信元または送信先でフィルタリング.

[sourcecode language=”text” title=”” ]
ip.addr == 10.0.0.1
[/sourcecode]

送信元と先を指定する.

[sourcecode language=”text” title=”” ]
ip.addr == 10.0.0.1 and ip.addr == 10.0.0.0
[/sourcecode]

NT Status が エラーのものをフィルタリングする

エラーを素早くチェックするために.

[sourcecode language=”text” title=”” ]
smb2.nt_status > 0
[/sourcecode]

Command Code でフィルタリング

コマンドコードで絞込み.

[sourcecode language=”text” title=”” ]
# create でフィルタ
smb2.cmd==5
[/sourcecode]

コマンドコード一覧

FileId でフィルタリング

create response コマンドにある fileId を追跡する.

[sourcecode language=”text” title=”” ]
smb2.fid==00004001-0000-0000-0000-000000000000
[/sourcecode]

tshark を利用する

コマンドラインの tshark を利用したほうが, 操作が早いことに気付く. しかし, Detail をしっかりみるためには GUI 版の WireShark がいい.

smb でフィルタリンクしたものを吐き出し. これでログが軽くなる.

[sourcecode language=”text” title=”” ]
tshark -r hoge.pcapng -Y ‘smb2’ -w foo.pcapng
[/sourcecode]

-Y でフィルタをかける. サブ画面でちょっとした grep をするのに便利.

[sourcecode language=”text” title=”” ]
tshark -r hoge.pcapng -Y ‘smb2.cmd==5’
[/sourcecode]

エラーがないかなどを素早くチェックする.

[sourcecode language=”text” title=”” ]
tshark -r hoge.pcapng -Y ‘smb2.nt_status > 0’
[/sourcecode]