Pcap文件处理
wireshark-cli
Wireshark,是最受欢迎的 GUI 嗅探工具,实际上它带了一套非常有用的命令行工具集。其中包括 editcap 与 mergecap。
-
editcap 是一个万能的 pcap 编辑器,它可以过滤并且能以多种方式来分割 pcap 文件。
-
mergecap 可以将多个 pcap 文件合并为一个。
除此之外,还有其它的相关工具,如 reordercap 用于将数据包重新排序,text2pcap 用于将 pcap 文件转换为文本格式, pcap-diff 用于比较 pcap 文件的异同,等等
Debian 系列:
RHEL 系列:
editcap
editcap 是一个万能的 pcap 编辑器,它可以过滤并且能以多种方式来分割 pcap 文件
editcap 是一个从文件读取部分或所有捕获数据包的程序,可选地以各种方式转换它们,并将结果数据包写入输出文件。缺省情况下,它从输入文件中读取所有数据包,并以 pcapng 文件格式写进输出文件。
editcap 的几个常见功能:
- 可以按时间、长度等截取数据包。
- 可以用来删除重复的数据包,可用来控制用于重复比较的包窗口或相对时间窗口。
- 可以用来编辑数据帧的描述。
- 可以检测、读取和写入 Wireshark 支持的相同捕获文件。
- 可以用几种输出格式编写文件。
pcap 文件过滤
通过 editcap, 能以很多不同的规则来过滤 pcap 文件中的内容,并且将过滤结果保存到新文件中。
以“起止时间”来过滤 pcap 文件。 -A 和 -B 选项可以过滤出在这个时间段到达的数据包(如,从 2:30 ~ 2:35)。时间的格式为 "YYYY-MM-DD HH:MM:SS"。
也可以从某个文件中提取指定的 N 个包。下面的命令行从 input.pcap 文件中提取100个包(从 401 到 500)并将它们保存到 output.pcap 中:
使用 "-D <dup-window>
" (dup-window 可以看成是对比的窗口大小,仅与此范围内的包进行对比)选项可以提取出重复包。每个包都依次与它之前的 <dup-window> - 1
个包对比长度与 MD5 值,如果有匹配的则丢弃。
也可以将 <dup-window>
定义成时间间隔。使用"-w <dup-time-window>
"选项,对比 <dup-time-window>
时间内到达的包。
分割 pcap 文件
当需要将一个大的 pcap 文件分割成多个小文件时,editcap 也能起很大的作用。
将一个 pcap 文件分割成数据包数目相同的多个文件
输出的每个文件有相同的包数量,以 <output-prefix >-NNNN
的形式命名。
以时间间隔分割 pcap 文件
mergecap
合并 pcap 文件
如果想要将多个文件合并成一个,用 mergecap 就很方便。
当合并多个文件时,mergecap 默认将内部的数据包以时间先后来排序。
如果要忽略时间戳,仅仅想以命令行中的顺序来合并文件,那么使用 -a
选项即可。
例如,下列命令会将 input.pcap
文件的内容写入到 output.pcap
, 并且将 input2.pcap
的内容追加在后面。
capinfos
不带任何选项参数,以默认方式显示 pcap 文件的所有基本信息:
$ capinfos 2023-09-26-14-31-42-30s.pcap
File name: 2023-09-26-14-31-42-30s.pcap
File type: Wireshark/tcpdump/... - pcap
File encapsulation: Ethernet
File timestamp precision: microseconds (6)
Packet size limit: file hdr: 65535 bytes
Number of packets: 300 k
File size: 261 MB
Data size: 256 MB
Capture duration: 30.096327 seconds
First packet time: 2023-09-26 14:33:25.555011
Last packet time: 2023-09-26 14:33:55.651338
Data byte rate: 8,512 kBps
Data bit rate: 68 Mbps
Average packet size: 854.00 bytes
Average packet rate: 9,967 packets/s
SHA256: 4cd82ce1b8fd3d498794d14e2ada82a3acbafca64f1e699574e58a6deec600cc
RIPEMD160: 347128fa0c6a4aeabcdeb71b1e6cdaf94d100999
SHA1: a800fa328b3e65af40d2b783b37e0a2b5d80591f
Strict time order: True
Number of interfaces in file: 1
Interface #0 info:
Encapsulation = Ethernet (1 - ether)
Capture length = 65535
Time precision = microseconds (6)
Time ticks per second = 1000000
Number of stat entries = 0
Number of packets = 300000
显示 pcap 文件的总大小:
$ capinfos -s 2023-09-26-14-31-42-30s.pcap
File name: 2023-09-26-14-31-42-30s.pcap
File size: 261 MB
显示 pcap 文件的时间长度:
$ capinfos -u 2023-09-26-14-31-42-30s.pcap
File name: 2023-09-26-14-31-42-30s.pcap
Capture duration: 30.096327 seconds
显示 pcap 文件的数据包总量:
$ capinfos -c 2023-09-26-14-31-42-30s.pcap
File name: 2023-09-26-14-31-42-30s.pcap
Number of packets: 300 k