插件系统
通过插件扩展 SIREN 的能力
插件用于在不修改核心代码的前提下扩展 SIREN 的能力。已安装的插件存放在工作目录下的 plugins/ 目录中,每个插件占一个子目录,包含 manifest.json 清单与可执行文件。
插件类型
插件通过清单中的 type 字段区分为两类,二者的启用开关和调用方式不同:
| 类型 | 配置开关 | 调用方式 |
|---|---|---|
recon | recon.<name> | 在运行信息收集时自动执行,结果并入 Recon 报告 |
command | plugins.<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]插件市场
install 与 update 从配置文件中的 plugins.marketplace 地址下载插件。SIREN 会依次获取插件的 manifest.json 清单、与当前平台匹配的入口二进制文件,以及可选的 setup 安装脚本(如有,安装时执行,超时 5 分钟)。
plugins:
marketplace: https://oss-siren.oss-cn-hongkong.aliyuncs.com/plugins提示
update 会先卸载再重新安装,并保留插件原有的启用/禁用状态;安装或更新失败时会回滚,不会残留半安装的插件目录。
插件列表
当前内置示例插件集中维护在插件列表中,包括随 Recon 执行的检查插件和按需调用的命令插件。
插件开发
插件通过 manifest.json 声明名称、类型、支持平台和入口文件。完整字段说明、平台约束、发布流程和清单安全校验见插件开发指南。