TCP流量提取

6

我需要从转储文件中提取TCP流及其内容,然后将它们的流分别保存到其他文件中。

5个回答

7
您肯定想使用Bro,更具体地说,是它的contents.bro政策。例如,给定一个包含HTTP请求的跟踪,运行以下...
bro -r http.trace -f 'tcp and port 80' contents

...生成文件

contents.[senderIP].[senderPort]-[destIP].[destPort]
contents.[destIP].[destPort]-[senderIP].[senderPort] 

对于每个连接,每个连接都包含了流的单向内容。

流重组非常强大,该过程可扩展到非常大的文件,并且一切都可根据您的需求进行定制。


这个有点不对劲。我找不到 contents.bro 的位置。 - nponeccop
在最近的Bro版本中,请查找scripts/base/protocols/conn/contents.bro。 - Christian

6
如果您只需要分析几个数据包,Wireshark 可以帮助您完成此操作。
步骤如下:
  1. 在 Wireshark 中打开捕获文件。
  2. 点击您感兴趣的 TCP 连接数据包。
  3. 选择 Analyze -> Follow TCP Stream
  4. 点击 Raw
  5. 从弹出菜单中选择 Entire Conversation 或者两个方向之一。
  6. 点击 Save As
对于仅限 HTTP 的情况,可以选择以下步骤:
  1. 打开捕获文件。
  2. 选择 File -> Export -> Objects -> HTTP
  3. 一个对话框将显示捕获文件中的所有 HTTP 对象。您可以保存其中的一些或全部。
以上内容适用于 Linux/GTK 上的 Wireshark 1.2.1。"跟随 TCP 流" 选项在不同版本中可能会有所变化,因此如果您使用较旧的版本,则可能在其他位置找到它。但它始终被称为 Follow TCP Stream,因此您应该能够找到它。
快速搜索还会显示如果Wireshark对您不起作用,还有其他几个选项:ngrep、tcpick、chaosreader和tcpflow。

4
tcpflow -r my_dump_file.pcap -o output_dir/

它将把每个TCP流分别提取到输出目录下的文件中。每个流都在自己的文件中。
这里有更多选项的手册

你需要在解压缩gzip数据时加上“-a”。 - 18446744073709551615

1

也许可以使用Wire shark?它可以用于过滤会话,然后您可以将它们分别保存。


0

你也可以看一下NetFlow和相关工具。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接