Pcapデータを解析し、次の情報を含むcsvファイルに変換できるツールがあるかどうか疑問に思いました。
タイムスタンプ、バイト、アップリンク/ダウンリンク、いくつかの追加情報。
基本的に、アップリンク/ダウンリンクはIP/MACアドレスで見ることができ、追加情報は実際には必要ありませんが、それが意味するのは、たとえばパケットの特定のフィールドを選択することです。
私はいくつかのツールを試してきましたが、まだ適切なツールを見つけていません。それ以外の場合は、小さなパーサーを作成します。前もって感謝します!
TShark
下記は用例です:
$ tshark -r test.pcap -T fields -e frame.number -e eth.src -e eth.dst -e ip.src -e ip.dst -e frame.len> test1.csv $ tshark -r test.pcap -T fields -e frame.number -e eth.src -e eth.dst -e ip.src -e ip.dst -e frame.len- Eヘッダー= y -Eセパレータ=、> test2.csv $ tshark -r test.pcap -R "frame.number> 40" -Tフィールド-eframe.number -e frame .time -e frame.time_delta -e frame.time_delta_displayed -e frame.time_relative -E header = y> test3.csv $ tshark -r test.pcap -R "wlan.fc。 type_subtype == 0x08 "-Tフィールド-eframe.number -e wlan.sa -e wlan.bssid> test4.csv $ tshark -r test.pcap -R" ip.addr == 192.168.1.6 && tcp.port == 1696 && ip.addr == 67.212.143.22 && tcp.port == 80 "-Tフィールド-eframe.number -e tcp.analysis.ack_rtt -E header = y> test5.csv $ tshark -r test.pcap -T fields -e frame.number -e tcp.analysis.ack_rtt -E header = y> test6.csv
もう探す必要はありません。wiresharkはあなたの親友です。それはあなたのpcapファイルを開くことができ、あなたが望む追加の列を指定することを可能にします。この後、それらをcsvとしてエクスポートできます。メインインターフェイスで、いずれかの列を右に移動し、[列の設定]を選択します。これにより、非常に直感的な新しいウィンドウが開きます。新しい列を追加して、フィールド名を指定するだけです。それと同じくらい簡単です。
私はtsharkを試しましたが、特にこれで少し面倒になると信じてください:
tshark:読み取りフィルターは「-R」と追加のコマンドライン引数の両方で指定されました。 "
このメッセージは、列が多すぎる場合、または不明な理由でポップアップします。
必要なようです Bro の接続ログ:
bro -r trace.pcap
head conn.log
出力:
#separator \x09
#set_separator ,
#empty_field (empty)
#unset_field -
#path conn
#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto service duration orig_bytes resp_bytes conn_state local_orig missed_bytes history orig_pkts orig_ip_bytes resp_pkts resp_ip_bytes
#types time string addr port addr port enum string intervacount count string bool count string count count count count
1258531221.486539 gvuu4KIHDph 192.168.1.102 68 192.168.1.1 67 udp - 0.163820 301 300 SF - 0 Dd 1 329 1 328
1258531680.237254 6nWmFGj6kWg 192.168.1.103 137 192.168.1.255 137 udp dns 3.780125 350 0 S0 - 0 546 0 0
1258531693.816224 y2lMKyrnnO6 192.168.1.102 137 192.168.1.255 137 udp dns 3.748647 350 0 S0 - 0 546 0 0
次に、関連するフィールドを解析します。
bro-cut ts id.orig_h id.orig_p id.resp_h id.resp_p service orig_bytes resp_bytes < conn.log | head
1258531221.486539 192.168.1.102 68 192.168.1.1 67 - 301 300
1258531680.237254 192.168.1.103 137 192.168.1.255 137 dns 350 0
1258531693.816224 192.168.1.102 137 192.168.1.255 137 dns 350 0
1258531635.800933 192.168.1.103 138 192.168.1.255 138 - 560 0
1258531693.825212 192.168.1.102 138 192.168.1.255 138 - 348 0
1258531803.872834 192.168.1.104 137 192.168.1.255 137 dns 350 0
1258531747.077012 192.168.1.104 138 192.168.1.255 138 - 549 0
1258531924.321413 192.168.1.103 68 192.168.1.1 67 - 303 300
1258531939.613071 192.168.1.102 138 192.168.1.255 138 - - -
1258532046.693816 192.168.1.104 68 192.168.1.1 67 - 311 300
これがpython pcapをフローに分割し、抽出された特徴をCSVファイルに出力するツールです
Pythonでflows_to_wekaツールを使用してみてください
これには、システムにインストールされているscapyのバージョンが必要であり、wekaフォルダー内にscapyフォルダーをコピーすることをお勧めします。そして、scapyフォルダー内のwfe.py、tcp_stream.py、およびentropy.pyファイルをコピーします。これを実行すると、現在のディレクトリは次のようになります。
C:\Users\INKAKA\flows_to_weka\scapy
.pcapファイルをこのフォルダーにコピーして、次のコマンドを実行してみてください。
$python wfe.py -i input.pcap -t csv > output.csv
また、tcp_stream.pyとwfe.pyに必要な機能を追加することで、必要な機能を取得することもできます。
参考のためにあなたは訪問することができます: https://github.com/fichtner/flows_to_weka
質問へのコメントに記載されているように、キャプチャファイルのフレームのIPアドレスをcsv形式で出力するには、次のようなものを使用します。
tshark -r <filename> -t fields -e ip.addr
Csv出力で区切り文字と引用文字を設定するオプションの詳細については、tsharkのヘルプを参照してください。
フィールド名は、Wiresharkを使用してキャプチャファイルを調べ、詳細ペインで特定のフィールドを選択することで決定できます。フィールド名は、Wiresharkウィンドウの下部にあるステータス行に表示されます。
カンマ以外のフィールド区切り文字を設定することはできますか? PCapファイルでseparator =を設定すると、ほとんどの列にが含まれているため、出力ファイル(.csv)のデータが見栄えが悪くなります。
だから私は他の文字のようにフィールド区切り文字を設定できる方法があることを知りたいです、すなわち| (pip)など
ありがとう
これは、Wiresharkアプリケーション自体から実行できます。
File>Save
)(キャプチャを実行したばかりの場合)File>Export Packet Dissesctions>as "CSV" [etc]
に移動します出来上がり