【问题标题】:Recursively Filter directory of .cap/.pcap Files With tshark使用 tshark 递归过滤 .cap/.pcap 文件的目录
【发布时间】:2016-04-18 23:03:45
【问题描述】:

我正在尝试将Wireshark 过滤器应用于由tcpdump 创建的.cap 文件目录。我有大约 1000 个 .cap 文件等待过滤(我们有意在没有过滤器的情况下捕获,以确保我们拥有所需的所有数据,以防我们的假设不成立)。我找不到任何关于使用tshark 递归读取文件、应用过滤器、写出新的.cap 文件的人的引用,然后继续下一个,冲洗,重复。

我的设置:

Tcpdump 正在转储流量并在文件到达1GB 时滚动到新文件(是的,对于 pcaps 来说很大)。仅供参考,这是我正在使用的tcpdump 命令:

sudo tcpdump -q -i <INTERFACE> -w path/to/capfile.cap -C 1000 -Z root

我可以使用tshark 对给定的.cap 文件应用过滤器并将其输出到新的.cap 文件,使用以下命令没有问题:

tshark -R <FILTER> -r in.cap0001 -w out.cap0001

Tshark 主页状态,

"-r ...可以使用命名管道或标准输入(-) 这里……”

但我绝不是名为pipesstdin 的专家,我也不是程序员。

有人能指出我正确的方向吗?谢谢!

【问题讨论】:

  • 如果我的回答对你有用,mark it as accepted。如果没有,请在需要时添加评论,要求澄清或更正(我想您只能根据您当前的声誉对您自己的问题发表评论,但不用担心我会阅读它)。
  • 谢谢 Nacho,非常感谢。我唯一需要改变的是 grep '\.cap$'grep '\.cap'
  • 不客气。这意味着文件不完全以.cap 结尾,我猜.cap0001.cap1000 然后,如果是这种情况,那么是的,删除$ 应该可以做到。干杯!
  • 嗯,有道理,因为确实如此!再次感谢!

标签: wireshark tcpdump tshark


【解决方案1】:

我认为你可以通过一些 shell 命令直接实现这一点。

尝试以下操作,转到您的捕获目录并执行以下命令:

ls | grep '\.cap$' | while read f; do (tshark -R &lt;FILTER&gt; -r $f -w mod_$f); done

这将生成应用了所需过滤器的新 .cap 文件。不用说,可以适当调整此命令以满足您的个人需求,但这是一个不错的起点。


命令说明:

ls:列出当前目录下的所有文件。

|:管道,左侧命令的标准输出作为右侧命令的标准输入。

grep '\.cap$':确保您只使用以 .cap 结尾的文件将被匹配。根据您的评论,请注意,如果文件不完全以 .cap 结尾,则此过滤器应更改为 grep '\.cap' 因为 $ 告诉 grep 该行以它前面的任何内容结尾(在本例中为 ".cap" 字符串)。

while read f:读取前面命令返回的每一行。

do (&lt;COMMAND&gt;):对于读取的每一行,它does 命令,在这种情况下是您的tshark 命令。

donewhile 命令语法的一部分。


示例命令执行:

# ls
fake.cap2  non_cap_file.txt  out2.cap  out.cap

# ls | grep '\.cap$'
out2.cap
out.cap

以下是你真正需要执行的唯一一行,其他的只是为了说明命令执行前后的文件夹内容。

# ls | grep '\.cap$' | while read f; do (tshark -R <FILTER> -r $f -w mod_$f); done
Running as user "root" and group "root". This could be dangerous.
Running as user "root" and group "root". This could be dangerous.

顺便说一句,我收到了这个 root 警告,因为我使用 root 用户进行了这个快速测试......

# ls
fake.cap2  mod_out2.cap  mod_out.cap  non_cap_file.txt  out2.cap  out.cap

# ls | grep '\.cap$'
mod_out2.cap
mod_out.cap
out2.cap
out.cap

如您所见,它会抓取每个 .cap 文件,应用指定的过滤器并写入一个新的 mod_*.cap 文件。

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 2010-11-16
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多