ekybot-connector
Skill 声称「本地运行无远程代码执行」,但实际通过 execSync 修改 OpenClaw 配置、创建 workspace 文件、安装系统服务。SKILL.md 声称「不发送对话内容」,但 poll-ekybot.js 实际将消息内容 POST 到外部 API。存在文档-行为严重不符的阴影功能。
为什么得出这个结论
2/4 个维度触发发现 4 项声明之外的能力或越权行为。
提取到 23 个一般风险产物,需要结合上下文判断。
报告包含 5 步攻击链,另有 2 项高危或严重发现。
依赖结构存在,但暂未看到明显高危告警。
攻击链
初始入口 · SKILL.md:1
权限提升 · scripts/ekybot-agent-sync.js:99
权限提升 · scripts/setup_communication.sh:133
权限提升 · scripts/install-poller.sh:68
最终危害 · scripts/poll-ekybot.js:157
风险分是怎么被拉高的
SKILL.md声称「无远程代码执行」但代码通过execSync修改系统配置
未声明的workspace文件创建、服务安装、gateway重启操作
AGENT_TOKEN硬编码在源码中(dd9fa892b8cd30b5...)
SKILL.md声称不发送对话内容,但实际转发消息内容到外部API
最关键的证据
文档声明与实际能力严重不符
SKILL.md声称「Runs locally on your machine — no remote code execution」,但代码中多处使用 execSync 执行 openclaw CLI 命令,包括 config set、gateway restart 等系统修改操作。
SKILL.md:104-108:104 声称不发送对话内容但实际外传
SKILL.md声称「What is never sent: Actual conversation content or prompts」,但 poll-ekybot.js 会将消息内容通过 forwardToGateway 函数转发到 Ekybot API。
scripts/poll-ekybot.js:95-98:95 硬编码 API Token 在源码中
poll-ekybot.js 和 ekybot-agent-sync.js 中硬编码了 AGENT_TOKEN,可能导致凭证泄露风险。
scripts/poll-ekybot.js:14:14 未声明的系统服务安装
install-poller.sh 会创建 systemd service 或 LaunchAgent,属于高权限系统级修改,未在 SKILL.md 中声明。
scripts/install-poller.sh:68-95:68 未声明的配置文件写入
setup_communication.sh 会创建 SOUL.md、AGENTS.md、INTER-AGENT-PROTOCOL.md 等文件,并修改 ~/.openclaw/openclaw.json,未在声明中提及。
scripts/setup_communication.sh:133-210:133 收集系统指纹信息
send_telemetry.sh 收集 hostname、platform、CPU usage 等系统信息并上传。
scripts/send_telemetry.sh:108-123:108 声明能力 vs 实际能力
scripts/ekybot-agent-sync.js:96 创建workspace目录 scripts/ekybot-agent-sync.js:9 使用execSync执行openclaw CLI scripts/send_telemetry.sh:108 收集hostname/platform等系统信息 scripts/poll-ekybot.js:157 将消息POST到Ekybot API 可疑产物与外联
https://www.ekybot.com SKILL.md:10
https://www.ekybot.com/companion SKILL.md:51
https://nodejs.org install.sh:29
https://docs.openclaw.ai install.sh:35
https://clawhub.ai/regiomag/ekybot-connector install.sh:139
https://discord.com/invite/clawd install.sh:140
https://www.ekybot.com/api references/api.md:8
https://www.ekybot.com/api/workspaces/register references/api.md:246
https://www.ekybot.com/api/workspaces/ws_123/health references/api.md:257
https://www.ekybot.com/api/workspaces/ws_123/telemetry references/api.md:264
https://my-gateway.example.com references/api.md:452
https://www.ekybot.com/api/channels references/api.md:456
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| node-fetch | ^3.3.2 | npm | 否 | 使用fetch而非XMLHttpRequest,符合现代安全实践 |
| ws | ^8.14.2 | npm | 否 | WebSocket库 |
| dotenv | ^16.3.1 | npm | 否 | 环境变量加载库 |
| chalk | ^4.1.2 | npm | 否 | 终端颜色输出库 |
文件构成
scripts/setup_communication.sh references/api.md scripts/poll-ekybot.js references/troubleshooting.md scripts/validate_setup.sh scripts/send_telemetry.sh SKILL.md scripts/install-poller.sh