Pcapファイルがいくつかありますが、そのpcapファイルに存在するプロトコルのリストを取得したいと思います。 wiresharkを使用せずに、バッチモードでそれを希望します
tsharkならできると思いますが、方法がわかりません。何か案が?
-Tfields -eframe.protocols
が最も近いものになります。
出力は次のようになります:
eth:ip:tcp:http
eth:ip:tcp
eth:ip:tcp:http:media
eth:ip:tcp
eth:ip:udp:nbdgm:smb:browser
eth:ip:tcp
eth:arp
eth:arp
eth:ipv6:udp:http
eth:ip:udp:http
ご覧のように、表示される情報は、どのプロトコルディセクタが再生するかによって少し異なります。したがって、不要な部分をカットしたり、重複除去したりするために、後処理を行う必要があります(たとえば、コメントで@Markの提案を使用します)。
やってみました tshark -r test.cap -q -z io,phs
プロトコルの階層リストが表示されますが、必要なスイートかどうかはわかりません。
===================================================================
Protocol Hierarchy Statistics
Filter: frame
frame frames:433 bytes:290520
eth frames:433 bytes:290520
ip frames:433 bytes:290520
tcp frames:423 bytes:289464
http frames:188 bytes:267285
ssh frames:24 bytes:7968
ssl frames:2 bytes:237
udp frames:10 bytes:1056
data frames:6 bytes:355
ntp frames:2 bytes:180
nbdgm frames:2 bytes:521
smb frames:2 bytes:521
mailslot frames:2 bytes:521
browser frames:2 bytes:521
===================================================================
プロトコルのリストだけを取得するには、コマンドラインでKungFuを実行します。
tshark -r test.cap -z io,phs -q | tr -s ' ' | cut -f 2 -d ' ' | tail -n +7 | head -n -1
あなたに与える
eth
ip
tcp
http
ssh
ssl
udp
data
ntp
nbdgm
smb
mailslot
browser
tcpdstat がこれを行います。 Richard Bejtlichの本の1つに記載されていると思います。
他のほとんどのツールとは異なり、 Bro はport-agnosticの方法でアプリケーションプロトコルを検出します。たとえば、標準ポート(80、8080など)だけでなく、anyTCP接続でHTTPを検出します。
接続数(TCPおよびUDP)の抽出は簡単です。
bro -r trace.pcap
bro-cut service < conn.log | sort | uniq -c
小さなHTTPトレースからの出力例:
19 -
53 dns
34 http