安全决策报告
cmd-execution-test
SKILL.md 声明仅执行预定义诊断命令,但代码实际支持 --cmd 参数可执行任意 shell 命令,构成影子功能越权
最直接的威胁证据
01
用户查看 SKILL.md 误以为仅是安全诊断工具 初始入口 · SKILL.md
02
攻击者通过 --cmd 参数注入任意命令 权限提升 · cmd-executor.mjs
03
execSync 无限制执行恶意命令(如下载后门、窃取数据) 权限提升 · cmd-executor.mjs
为什么得出这个结论
3/4 个维度触发 阻止
声明与实际能力
发现 1 项声明之外的能力或越权行为。
阻止
隐藏执行与外联
提取到 1 个高危 IOC 或外联信号。
阻止
攻击链与高危发现
报告包含 4 步攻击链,另有 2 项高危或严重发现。
通过
依赖与供应链卫生
依赖结构存在,但暂未看到明显高危告警。
攻击链
01
用户查看 SKILL.md 误以为仅是安全诊断工具
初始入口 · SKILL.md:1
02
攻击者通过 --cmd 参数注入任意命令
权限提升 · cmd-executor.mjs:26
03
execSync 无限制执行恶意命令(如下载后门、窃取数据)
权限提升 · cmd-executor.mjs:54
04
成功实现 RCE,可进一步进行横向移动或数据窃取
最终危害 · cmd-executor.mjs:54
风险分是怎么被拉高的
影子功能 - 未声明的任意命令执行 +25
SKILL.md 仅声明预定义诊断命令,但代码支持 --cmd 执行任意 shell 命令
无命令白名单限制 +10
execSync 直接执行用户输入,无任何沙箱或命令验证
硬编码 Google DNS IP +5
8.8.8.8 虽为合法测试地址,但属可疑网络行为特征
最关键的证据
高危 文档欺骗
影子功能 - 未声明的任意命令执行能力
SKILL.md 文档声称仅执行预定义的诊断命令(systeminfo/network/filesystem),但代码实际支持 --cmd 参数可执行任意 shell 命令,构成典型的文档-行为差异(82.4% 恶意技能有此特征)
cmd-executor.mjs:26 如自定义命令是必要功能,应在 SKILL.md 明确声明并说明安全限制
高危 代码执行
无限制的任意命令执行
executeCommand 函数通过 execSync 直接执行用户可控的字符串,无命令白名单、输入验证或沙箱限制,可导致 RCE 风险
cmd-executor.mjs:54 添加命令白名单验证,或限制为只读系统信息收集命令
中危 权限提升
声明权限与实际权限不符
SKILL.md 声称仅使用 Node.js 内置模块,但从命令矩阵看可执行任意 shell 命令,实际权限远超声明范围
SKILL.md:65 明确声明允许执行的命令范围或权限级别
低危 供应链
硬编码外部 DNS 服务器 IP
代码硬编码 8.8.8.8 (Google DNS) 用于网络测试,虽属合法诊断用途,但符合可疑行为特征
cmd-executor.mjs:98 可接受,如需改进可使用本地 DNS 服务器或配置文件
声明能力 vs 实际能力
命令执行 阻止
声明 READ
→ 推断 ADMIN
cmd-executor.mjs:54 execSync(command) 执行任意命令 文件系统 通过
声明 READ
→ 推断 READ
cmd-executor.mjs:56 仅读取命令输出 网络访问 通过
声明 READ
→ 推断 READ
仅执行 ping/nslookup 等诊断命令,无数据外传 可疑产物与外联
高危 IP 地址
8.8.8.8 cmd-executor.mjs:98
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| Node.js builtins only | N/A | builtin | 否 | 仅使用 child_process, os, fs 等内置模块 |
文件构成
3 个文件 · 644 行
JavaScript 1 个文件 · 260 行Markdown 1 个文件 · 209 行JSON 1 个文件 · 175 行
需关注文件 · 2
cmd-executor.mjs 影子功能 - 未声明的任意命令执行能力 · 无限制的任意命令执行 · 硬编码外部 DNS 服务器 IP · 8.8.8.8
SKILL.md 声明权限与实际权限不符
其他文件 · test-commands.json
安全亮点
使用 Node.js 内置模块,无外部恶意依赖
代码结构清晰,有完整的错误处理
支持 JSON/Markdown 双输出格式
硬编码 8.8.8.8 用于 DNS 测试属于合理用途
无凭证收割或数据外传行为
无 Base64 编码、eval 等混淆技术