Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
subparse — 模块化恶意软件分析工件收集与关联框架 | Kitploit
工具/GitHubGitHub/jstrosch/subparse
静态分析动态分析 (沙盒)取证分析信息收集恶意软件分析威胁情报
GitHubjstrosch/subparse

subparse

模块化恶意软件分析工件收集与关联框架

查看仓库
561232年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

subparse

Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge

Subparse 是一个模块化框架,由 Josh Strochein、Aaron Baker 和 Odin Bernstein 开发。该框架旨在解析和索引恶意软件文件,并以可搜索的 Web 查看器展示解析过程中发现的信息。框架采用模块化设计,包含核心解析引擎、解析模块以及多种富化器,用于向恶意软件索引中添加额外信息。框架的主要输入值是恶意软件文件目录,核心解析引擎或用户指定的解析引擎会先解析这些文件,然后由用户指定的富化引擎添加额外信息,最后将解析出的信息索引到 Elasticsearch 中。收集到的信息可通过 Web 查看器搜索和浏览,该查看器还支持按任何文件中提取的任意值进行筛选。当前共有 3 个解析引擎(默认解析引擎:PEParser、OLEParser 和 ELFParser)和 2 个富化引擎(ABUSEEnricher 和 CAPEEnricher)。

 

快速开始

软件需求

要开始使用 Subparse,需要先安装并设置一些必需的/推荐的软件。

软件状态链接
Docker

其他需求

在系统上安装必需的/推荐的软件后,还需要执行其他几个步骤才能完成 Subparse 的安装。

Python 需求
Python 需要安装 Subparse 进程依赖的其他一些软件包。要完成 Python 环境设置,请导航到 Subparse 安装位置的 *parser* 文件夹。安装 Python 依赖所需的命令如下:
root@kitploit:~
sudo get apt install build-essential
pip3 install -r ./requirements.txt
Docker 需求
由于 Subparse 使用 Docker 作为其后端和 Web 界面,因此在使用该程序之前需要完成 Docker 容器的设置。为此,请导航到 Subparse 安装位置的根目录,并使用以下命令设置 Docker 实例:
root@kitploit:~
docker-compose up

注意:由于需要下载镜像并设置 Subparse 所需的容器,这可能需要一些时间。

 

安装步骤

  • 安装步骤

使用说明

命令行选项

subparse/parser/subparse.py 可用的命令行选项:

查看结果

要查看 Subparse 解析器的结果,请导航至 localhost:8080。 如果无法访问该站点,请确保已在 Docker 中启动容器,并且没有其他进程在 8080 端口上运行导致站点不可用。

 

收集的通用信息

在执行任何解析器之前,都会收集样本的通用信息,无论底层文件类型如何。这些信息包括:

  • 样本的 MD5 哈希
  • 样本的 SHA256 哈希
  • 样本名称
  • 样本大小
  • 样本扩展名
  • 样本的派生扩展名

解析器模块

解析器仅对匹配文件类型的样本执行。例如,PE 文件默认会对其执行 PEParser,因为其文件类型与 PEParser 能够检查的文件类型对应。

默认模块

ELFParser
这是将对 ELF 文件执行的默认解析模块。收集的信息包括:
  • 通用信息
  • 程序头
  • 节头
  • 注释
  • 架构特定数据
  • 版本信息
  • ARM 展开信息
  • 重定位数据
  • 动态标签
OLEParser
这是将对 OLE 和 RTF 格式文件执行的默认解析模块,它使用 OLETools 包获取数据。收集的信息包括:
  • 元数据
  • MRaptor
  • RTF
  • 时间
  • 指示器
  • VBA / VBA 宏
  • OLE 对象
PEParser
这是将对匹配或包含文件类型 PE32 和 MS-Dos 的 PE 文件执行的默认解析模块。收集的信息包括:
  • 节代码和节计数
  • 入口点
  • 映像基址
  • 签名
  • 导入
  • 导出

 

富化器模块

这些是可选模块,仅在通过命令行上的 -e | --enrichers 标志指定时才会执行。

默认模块

ABUSEEnricher
该富化器使用 [Abuse.ch](https://abuse.ch/) API 和 [Malware Bazaar](https://bazaar.abuse.ch) 来收集有关 subparse 正在分析的样本的更多信息,然后聚合这些信息并存储在 Elasticsearch 数据库中。
CAPEEnricher
该富化器用于与 CAPEv2 沙箱实例通信,通过动态分析收集有关样本的更多信息,然后通过 Kafka 消息服务进行后台处理,聚合信息并存储在 Elasticsearch 数据库中。
STRINGEnricher
该富化器是一个智能字符串富化器,会解析样本中可能感兴趣的字符串。它查找的字符串类别包括:音频、图像、可执行文件、代码调用、压缩文件、工作文档(Office 文档)、IP 地址、IP 地址+端口、网站 URL、命令行参数。
YARAEnricher
该富化器使用位于 parser/src/enrichers/yara_rules 的预编译 yara 文件。该预编译文件包含来自 VirusTotal 和 YaraRulesProject 的规则。

 

开发自定义解析器和富化器

Subparse 的 Web 视图使用了 Bootstrap 作为其 CSS,这使得在开发自定义解析器/富化器的 Vue.js 文件时可以使用任何内建的 Bootstrap CSS。我们还为每种类型提供了一个示例以帮助入门,并实现了一些自定义小部件,以简化开发过程并促进数据显示的标准化。所有 Vue.js 文件用于动态显示来自自定义解析器/富化器的信息,并作为数据模板。

注意:类名和文件名的命名约定必须严格遵守;如果遇到自定义解析器/富化器无法执行的问题,应首先检查命名约定。解析器/富化器的命名必须在所有文件和类名中使用相同的名称。

  • Python 开发
  • Vue 开发
  • Vue 辅助工具


日志记录

日志记录器对象是默认 Python 日志记录器的单例实现。详细用法请参考 官方文档。 对于 Subparse,我们只推荐使用以下日志级别进行输出。它们是:

  • debug
  • warning
  • error
  • critical
  • exception
  • log
  • info


致谢

  • 本研究及所有合著者得到了 NSA 资助 H98230-20-1-0326 的支持。
下载工具
必需
安装指南
Python 3.8.1必需安装指南
Pyenv推荐安装指南
参数缩写必需描述
-h--help否显示帮助菜单
-d SAMPLES_DIR--directory SAMPLES_DIR是要解析的样本目录
-e ENRICHER_MODULES--enrichers ENRICHER_MODULES否用于额外解析的富化器模块
-r--reset否重置/删除已配置的 Elasticsearch 集群中的所有数据
-v--verbose否显示详细的命令行输出
-s--service-mode否进入服务模式,允许在处理过程中向 SAMPLES_DIR 添加更多样本