将pcap数据导出到csv:时间戳、字节、上行链路/下行链路、额外信息[已关闭]

1bqhqjot  于 2023-07-31  发布在  其他
关注(0)|答案(8)|浏览(251)

**已关闭。**此问题是在寻求有关书籍、工具、软件库等内容的建议。它不符合Stack Overflow guidelines。它目前不接受回答。

我们不允许提问以寻求书籍、工具、软件库等方面的建议。您可以编辑问题,以便使用事实和引文回答。
两年前关闭。
Improve this question
我想知道是否有任何工具可以解析pcap数据并将其转换为包含以下信息的csv文件:
时间戳、字节、上行链路/下行链路、一些额外信息..
基本上,上行链路/下行链路可以通过IP/MAC地址看到,并且实际上不需要额外的信息,但我的意思是例如选择数据包的特定字段。
我一直在尝试一些工具,但还没有找到合适的。否则我会写一个小的解析器。提前感谢!

kq4fsx7k

kq4fsx7k1#

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 header=y -E separator=, > test2.csv

$ tshark -r test.pcap -R "frame.number>40" -T fields -e frame.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 fields -e frame.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 fields -e frame.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

字符串

vc9ivgsu

vc9ivgsu2#

别再看了,wireshark是你最好的朋友。它可以打开您的pcap文件,并允许您指定您想要的额外列。在此之后,您可以简单地将它们导出为csv。在主界面上,只需在任意一列上选择“列首选项”。这将打开一个非常直观的新窗口。只需添加一个新列并指定字段名即可。就这么简单
我试过tshark,但相信我,它变得有点烦人,特别是与这个:

tshark: Read filters were specified both with "-R" and with additional command-line arguments."

字符串
如果包含太多列或出于未知原因,则会弹出此消息。

sy5wg1nm

sy5wg1nm3#

看起来您需要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

yws3nbqq

yws3nbqq4#

通过终端安装argus

sudo apt-get install argus-client

字符串

将.pcap转换为.argus文件格式

argus -r filename.pcap -w filename.argus
-r <FILE> Read FILE  
-w <FILE> Write FILE

将.argus转换为.csv文件格式,同时选择要提取的要素

ra -r filename.argus -u -s <features-comma-seprated>

Example:
ra -r filename.argus -u -s rank, stime, ltime, dur
-r <FILE> Read FILE
-u Print time values using Unix time format (seconds from the Epoch).
-s Specify the fields to print.

可以在here中找到要打印的可用字段列表

  • 此信息是从我原来的博客,你可以阅读here复制 *
xj3cbfub

xj3cbfub5#

您可以从Wireshark应用程序本身执行此操作:

  • 确保您已经将文件保存到磁盘(File>Save)(如果您刚刚执行了捕获)
  • 转到File>Export Packet Dissesctions>as "CSV" [etc]
  • 然后输入一个文件名(确保在末尾添加.csv,因为WS不会这样做!)

gab6jxml

gab6jxml6#

  • 这里是python工具,用于将pcap划分为流,并将提取的特征输出到CSV文件中 *

尝试在Python中使用flows_to_weka工具
这需要在您的系统中安装一个版本的scapy,最好将scapy文件夹复制到weka文件夹中。然后复制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

aiqt4smr

aiqt4smr7#

如问题的注解中所述,要以csv格式输出捕获文件中帧的IP地址,请使用以下命令:

tshark -r <filename> -t fields -e ip.addr

字符串
有关在csv输出中设置分隔符和引号的选项的详细信息,请参阅tshark帮助。
字段名称可以通过使用Wireshark检查捕获文件并在详细信息窗格中选择特定字段来确定。字段名称将显示在Wireshark窗口底部的状态行中。

djp7away

djp7away8#

是否可以设置字段分隔符而不是逗号?因为在我的PCap文件中,如果我设置分隔符=,那么输出文件(.csv)中的数据看起来不太好,因为我在大多数列中都有。
因此,我想知道是否有任何方法可以像其他字符一样设置字段分隔符,即,|(点)等
谢啦,谢啦

相关问题