结合 zipdump、file-magic 和 myjson-filter

在这篇博文中,我将展示如何结合使用我的工具 zipdump.py、file-magic.py 和 myjson-filter.py 来选择和分析特定类型的文件。我从 Malware Bazaar 每天发布的一批恶意软件文件开始。我让它使用选项 –jsonoutput 生成 JSON 输出,我的一些 […] 可以使用该输出

来源:Didier Stevens _恶意软件

在这篇博文中,我将展示如何结合使用我的工具 zipdump.py、file-magic.py 和 myjson-filter.py 来选择和分析特定类型的文件。

zipdump.py file-magic.py myjson-filter.py

我从 Malware Bazaar 每天发布的一批恶意软件文件开始。

Malware Bazaar 每天发布的一批恶意软件文件

我让它使用选项 –jsonoutput 生成 JSON 输出,我的一些工具可以使用这些输出,例如 file-magic.py,这是我使用 libmagic 库根据内容识别文件的工具。

JSON 输出 file-magic.py

在上面的输出中,我们可以看到大多数文件都是 PE 文件(Windows 可执行文件)。

在本例中,我对 Office 文件 (ole 文件) 感兴趣。我可以使用选项 -r 过滤 file-magic.py 的输出。Libmagic 将这种类型的文件标识为“复合文档文件...”,因此我过滤 Composite:

这给了我一个恶意 Office 文档列表。我想从中提取 URL,但我不想将所有这些文件从 ZIP 容器提取到磁盘,然后对每个文件执行 URL 提取文件。

我想用一行代码来做到这一点。🙂

我要做的是使用 file-magic 的选项 –jsonoutput,以便它使用文件类型扩充 zipdump 的 json 输出,然后我使用我的工具 myjson-filter.py 过滤该 json 输出,以查找仅包含单词 Composite 的文件类型。使用以下命令:

myjson-filter.py

这会生成 JSON 输出,其中包含 ZIP 容器内找到的每个 Composite 类型文件的内容。

我的工具 strings.py 可以使用此输出来提取所有字符串。

strings.py

附注:如果您首先想知道选择了哪些文件进行处理,请使用选项 -l:

让我们将过滤后的 JSON 输出通过管道传输到 strings.py 中,并使用选项生成包含单词 http (-s http) 的唯一字符串 (-u) 列表,如下所示:

我使用我的工具 re-search.py​​ 提取唯一 URL 列表:

re-search.py​​

我过滤掉 Office 文档中常见的 URL:

sortcanon.py