Zeek 不存储文件,即使在加载脚本之后也是如此。我错过了什么?
Zeek is not storing files, even after script was loaded. What am I missing?
我正在尝试配置 Zeek 以便将文件(每个文件)存储在光盘上,但没有成功。
OS 我正在使用:Debian 10。
到目前为止我做了什么:
我已经安装了这个模块:https://github.com/hosom/file-extraction (even after following this site https://www.ericooi.com/zeekurity-zen-part-vi-zeek-file-analysis-framework,我无法使用它。
我已经加载了 frameworks/files/extract-all-files 脚本。
检查 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 存储吗?
运行通过 Zeek 传输流量时的一个常见问题是数据包可能具有无效的校验和。 Zeek 默认情况下会跳过此类数据包,因此最终结果会丢失用户期望的 logs/files/artifacts。通常那些无效的校验和是由校验和卸载引起的,其中数据包捕获过程在 NIC 有机会修复校验和之前抓取传输的数据包。
Zeek 通常会在遇到无效校验和时发出警告——在 stderr 或 reporter.log:
中查找类似于以下内容的内容
Your trace file likely has invalid TCP checksums, most likely from NIC checksum offloading. By default, packets with invalid checksums are discarded by Zeek unless using the -C command-line option or toggling the 'ignore_checksums' variable.
(这来自 find-checksum-offloading.zeek,包含在 Zeek 的默认配置中。)
这里有很多选择。您可以:
- 运行 Zeek 与
-C
,按照上述
- 在脚本中说
redef ignore_checksums=T;
(通常是 local.zeek)
- 在命令行添加redef:
zeek -r the.pcap ... ignore_checksums=T
- 修复 pcap 中的校验和,例如使用
tcprewrite -C -i input.pcap -o fixed.pcap
(tcprewrite
附带 tcpreplay)——如果其他人也会使用您的 pcap,这是最好的。
我正在尝试配置 Zeek 以便将文件(每个文件)存储在光盘上,但没有成功。 OS 我正在使用:Debian 10。
到目前为止我做了什么:
我已经安装了这个模块:https://github.com/hosom/file-extraction (even after following this site https://www.ericooi.com/zeekurity-zen-part-vi-zeek-file-analysis-framework,我无法使用它。
我已经加载了 frameworks/files/extract-all-files 脚本。
检查 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 存储吗?
运行通过 Zeek 传输流量时的一个常见问题是数据包可能具有无效的校验和。 Zeek 默认情况下会跳过此类数据包,因此最终结果会丢失用户期望的 logs/files/artifacts。通常那些无效的校验和是由校验和卸载引起的,其中数据包捕获过程在 NIC 有机会修复校验和之前抓取传输的数据包。
Zeek 通常会在遇到无效校验和时发出警告——在 stderr 或 reporter.log:
中查找类似于以下内容的内容Your trace file likely has invalid TCP checksums, most likely from NIC checksum offloading. By default, packets with invalid checksums are discarded by Zeek unless using the -C command-line option or toggling the 'ignore_checksums' variable.
(这来自 find-checksum-offloading.zeek,包含在 Zeek 的默认配置中。)
这里有很多选择。您可以:
- 运行 Zeek 与
-C
,按照上述 - 在脚本中说
redef ignore_checksums=T;
(通常是 local.zeek) - 在命令行添加redef:
zeek -r the.pcap ... ignore_checksums=T
- 修复 pcap 中的校验和,例如使用
tcprewrite -C -i input.pcap -o fixed.pcap
(tcprewrite
附带 tcpreplay)——如果其他人也会使用您的 pcap,这是最好的。