SIREN

插件系统

通过插件扩展 SIREN 的能力

插件用于在不修改核心代码的前提下扩展 SIREN 的能力。已安装的插件存放在工作目录下的 plugins/ 目录中,每个插件占一个子目录,包含 manifest.json 清单与可执行文件。

插件类型

插件通过清单中的 type 字段区分为两类,二者的启用开关和调用方式不同:

类型配置开关调用方式
reconrecon.<name>在运行信息收集时自动执行,结果并入 Recon 报告
commandplugins.<name>作为独立命令按需调用,输出立即返回

插件名称规则

插件名称必须为 1–128 个字符,且只能包含字母、数字、短横线(-)和下划线(_)。

管理插件

安装、卸载、更新和启停插件,本地模式与远程模式均支持。

./siren plugins                  # 列出已安装插件(NAME / VERSION / TYPE / ENABLED)
./siren plugins install <name>   # 从插件市场下载并安装,安装后默认启用
./siren plugins uninstall <name> # 卸载插件
./siren plugins update <name>    # 重新下载更新,保留当前启用/禁用状态
./siren plugins toggle <name>    # 启用或禁用插件

远程模式下,每个客户端已安装的插件也会显示在 ls 命令输出的 Plugins 列中。

command 类型插件安装并启用后,可以直接作为命令调用:

./siren <plugin_name> [args]

插件市场

installupdate配置文件中的 plugins.marketplace 地址下载插件。SIREN 会依次获取插件的 manifest.json 清单、与当前平台匹配的入口二进制文件,以及可选的 setup 安装脚本(如有,安装时执行,超时 5 分钟)。

config.yaml
plugins:
  marketplace: https://oss-siren.oss-cn-hongkong.aliyuncs.com/plugins

提示

update 会先卸载再重新安装,并保留插件原有的启用/禁用状态;安装或更新失败时会回滚,不会残留半安装的插件目录。

插件列表

当前内置示例插件集中维护在插件列表中,包括随 Recon 执行的检查插件和按需调用的命令插件。

插件开发

插件通过 manifest.json 声明名称、类型、支持平台和入口文件。完整字段说明、平台约束、发布流程和清单安全校验见插件开发指南

相关内容

On this page