0

我正在尝试配置 Zeek 以将文件(每个文件)存储在磁盘上,但没有任何成功。我正在使用的操作系统:Debian 10。

到目前为止我做了什么:

检查loaded_scripts.log后,我可以看到脚本已加载

我是 Zeek 的初学者,我想学习如何启用 zeek 来保存文件(即遍历网络)并存储在磁盘上。唯一被存储的文件类型:HTTP 和 SSL。

我确定我犯了很多错误,但我找不到正确的方法。


编辑

我正在使用的 Zeek 版本:zeek 版本 4.1.0-dev.545。

我正在处理流量。我没有对 pcap 进行任何尝试,但我会尝试使用“zeek -r the.pcap policy/scripts/frameworks/files/extract-all-files.zeek”的建议。

在 Zeek 服务器上,我安装了(为了测试)一个 FTP 和一个 HTTP 服务器。在 html 文件夹中,我创建了一个 pdf 文件(以便稍后下载)。我放了两个文件(一个 pdf 和一个纯文本文件),然后我下载了(使用本地网络中另一台计算机上的浏览器)该 pdf 文件。结果,我可以看到(查看 ftp.log 和 http.log)我提到的所有文件,但这些文件没有存储在磁盘上。我的疑问是:它们应该由 Zeek 存储吗?

4

1 回答 1

1

通过 Zeek 运行流量时的一个常见问题是数据包可能具有无效的校验和。默认情况下,Zeek 会跳过此类数据包,因此最终结果是缺少用户期望的日志/文件/工件。通常这些无效校验和是由校验和卸载引起的,其中数据包捕获过程在 NIC 有机会修复校验和之前抓取传输的数据包。

Zeek 通常会在遇到无效校验和时发出警告——在 stderr 或 report.log 中查找类似于以下内容的内容:

您的跟踪文件可能包含无效的 TCP 校验和,很可能来自 NIC 校验和卸载。默认情况下,Zeek 会丢弃校验和无效的数据包,除非使用 -C 命令行选项或切换“ignore_checksums”变量。

(这来自find-checksum-offloading.zeek,它包含在 Zeek 的默认配置中。)

你在这里有很多选择。你可以:

  • -C按照上面的方法运行 Zeek
  • 在脚本中说redef ignore_checksums=T;(通常是 local.zeek)
  • 在命令行添加redef:zeek -r the.pcap ... ignore_checksums=T
  • 修复 pcap 中的校验和,例如使用tcprewrite -C -i input.pcap -o fixed.pcaptcprewrite随 tcpreplay 一起提供)——如果其他人也会消耗你的 pcap,这是最好的。
于 2021-05-12T19:20:43.867 回答