通过TCP连接分割pcap文件的工具?

是否有工具将分组捕获文件(以pcap格式)拆分为每个TCP连接的单独文件? (除了可能需要在捕获上运行两次的本地生成的shell脚本…)。 像wireshark的“遵循TCPstream”,但对于命令行(恐怕wireshark将显示一个700 MB的数据包捕获时将消耗大量的内存)

我看着tcpflow,但似乎产生比原来的pcap文件大得多的文件,他们似乎不是在pcap格式。

您可以使用tcpdump来提取您想要的pcap部分…假设您正在查找一个主机上的TCP / 55777与另一个主机上的TCP / 80之间的套接字连接中的数据包。 您的源文件是bigfile.pcap ,这是一个嗅探器转储的HTTP会话到有问题的Web主机…

 tcpdump -r bigfile.pcap -w session.pcap -s0 tcp and port 55777 

这将把所有的数据包从bigfile.pcap TCP / 55777中bigfile.pcap ,并将它们复制到session.pcap

您也可以使用属于PcapPlusPlus软件包的PcapSplitter 。 它正是你所需要的(这是通过TCP或UDP连接拆分pcap文件),它是多平台的,它没有原始文件中连接数量的限制(所以你可以使用它来分割一个大的包含数千个连接的甚至更多的pcap文件)。 上面的链接是为源代码,但如果你想要一个编译的二进制文件 – 这是我为几个平台的二进制文件的链接

编辑:显然是新版本的PcapPlusPlus发布,它包含相当多的平台(Windows,Ubuntu 12.04 / 14.04,Mac OSX小牛/优胜美地/ El Captian)的PcapSplitter二进制文件。 我认为使用这些二进制文件比我以前提供的链接更好。 你可以在这里find它

tcpflow是你想要的 – 每个TCP会话将pcaps分成一个文件

http://www.circlemud.org/jelson/software/tcpflow/

似乎有这个工具可能工作(我没有亲自使用它)

http://www.netresec.com/?page=SplitCap (基于Windows)

SplitCap是免费的(如啤酒)开源pcap文件分割器。 SplitCap根据TCP和UDP会话将一个大pcap文件分成多个文件,每个会话一个pcap文件。 也可以使用SplitCap将每个主机对的pcap文件拆分为一个pcap文件,而不是会话。

有点矫枉过正,但使用tshark (与wireshark一起发货),你可以用zsh

 file=file.pcap tshark -Tfields -e tcp.stream \ -e frame.time_epoch \ -e ip.src \ -e tcp.srcport \ -e ip.dst \ -e tcp.dstport -r $file | sort -snu | while read -A f; do tshark -r $file -2R "tcp.stream == $f[1]" -w ${(j:-:)f[2,-1]}.pcap done 

它生成名为1509466312.202450000-10.0.0.1-58892-10.0.0.2-80.pcap文件(基于每个连接所见的第一个数据包)。