SmokedMeat E2E 测试技能
自动化运行 SmokedMeat CI/CD 红队框架的端到端测试:Docker 基础设施加 tmux 内的 TUI,验证完整利用链是否按预期工作。
技能配置隔离清晰(.claude/e2e/ 独立存放令牌与配置)、声明 allowed-tools 范围、含清理/回收步骤,且目标为授权演练仓库 whooli;但作为攻击框架的 e2e 技能授权 Bash 执行完整利用链,敏感令牌(GITHUB_TOKEN、AUTH_TOKEN)写入本地文件而无加密或最小权限说明,缺乏对真实第三方仓库的硬性防误用边界,故扣分。
文档结构完整:明确 make 目标、时间预期、故障排查表、手动 tmux 调试路径与清理命令;但静态审查无法验证关键路径可复现,e2e 测试不在 CI 中执行,错误反馈依赖测试输出而非独立可诊断消息,故仅给中间分。
触发描述明确(测试 TUI 变更、验证利用流程、调试 UI 状态),支持 $ARGUMENTS 焦点化输入,场景与边界较清楚;但仅英文、核心流程依赖 GitHub、Cloudflare tunnel、Docker 与外网可达性,对中国大陆网络环境存在明显依赖风险,故扣分。
信息分层良好(配置隔离→快路径→全链→手动迭代→故障→清理),README/LICENSE/SECURITY.md 齐备,AGPL-3.0 明确;但技能本身无版本、变更记录或维护者声明,属于仓库内部开发辅助文档,对外使用假设未说明,故扣分。
目标受众(仓库开发者)任务明确,make 命令与预期输出格式具体,边际价值真实(自动化端到端验证优于手动操作);但静态审查无法验证产出可直接使用,e2e-goat 时长环境依赖,故扣分。
提供可审计的一手材料(Makefile 引用、Go 测试名、CI 工作流、配置表),但无第三方独立执行证据,e2e 关键路径未在 CI 覆盖,静态无法复现结论,故仅给有限分。
- 该技能会驱动真实 CI/CD 攻击链(含 PR 注入、缓存投毒、云凭据窃取演练),仅应在获书面授权的环境运行;误用于未授权仓库可能违法。
- GITHUB_TOKEN 等凭据以明文存储于 .claude/e2e/.env 与 tokens.yaml,请注意文件权限与提交泄露风险。
- 核心流程依赖 GitHub、Cloudflare tunnel、Docker 及境外网络可达性,中国大陆用户可能无法稳定使用。
- 本评审为静态源码审查,未执行任何测试;e2e 路径未纳入 CI,可靠性未经独立验证。
这个 Skill 能做什么,适合哪些场景?
该技能封装了 SmokedMeat(一个 CI/CD 后渗透红队框架)的端到端测试流程。所有配置隔离在 .claude/e2e/ 目录,基础设施跑在 Docker,操作员 TUI(Counter)在 tmux 中运行并被捕获。提供快速冒烟路径(make e2e-smoke,约 45-90 秒)和完整 GOAT 攻击链路径(make e2e-goat,数分钟),覆盖从公开仓库初始立足点到云上 flag 获取的整个链条。技能还能根据用户指定的焦点(向导、布局、利用、侦察、认证)定向测试,并在失败时解读 tmux 捕获输出进行调试。
读取 .claude/e2e/.env、config.yaml 和 tokens.yaml 等隔离配置;通过 make 目标清理并启动 Docker 基础设施与 Cloudflare 隧道;在 tmux 会话中启动 Counter TUI 并用 tmux capture 截取界面状态;运行 TestPublicExploitSmoke(部署公开 issue-body 立足点、等待 Brisket 回调、确认战利品)或 TestGOATFlagPath(workflow_dispatch 滥用、PAT 枚举、SSH 跳板、缓存投毒、OIDC 到 GCP 的云跳板、flag 获取);失败时分析 requireContent 断言与捕获内容,支持 make e2e-capture / e2e-keys 手动交互,并将 bug 追加到 docs/e2e-bugs.md。
- 修改 SmokedMeat TUI 代码后,开发者用焦点词 'wizard' 或 'layout' 快速验证向导流程与面板布局是否正常。
- 安全工程师调整利用链后运行 make e2e-smoke,在约一分钟内确认公开立足点全流程可用。
- 调试 Counter 界面状态异常时,用 make e2e-capture 查看当前 TUI 并用 make e2e-keys 手动发送按键。
- 验证 Kitchen/Counter 集成改动后运行 make e2e-goat,走完含云跳板与 flag 获取的完整攻击链。
- 测试认证与 token 校验逻辑时以 'auth' 为焦点定向运行。
- 发现界面 bug 后按约定格式记录到 docs/e2e-bugs.md 以便跟踪。
这个 Skill 有哪些优点和局限?
- 两条预置测试路径:约 1 分钟的冒烟测试和完整 GOAT 攻击链,覆盖面明确。
- 配置完全隔离在 .claude/e2e/,不会污染用户全局 ~/.smokedmeat/。
- 失败时自带 tmux 捕获输出与常见故障对照表,排障路径清晰。
- 焦点词机制(wizard/layout/exploit/recon/auth)允许定向测试,节省时间。
- 强依赖 Docker、tmux、make 和 Cloudflare 隧道,环境要求重。
- e2e-goat 耗时数分钟且时长依赖环境,不适合频繁迭代。
- 仅覆盖 GitHub Actions 攻击面(whooli 山羊仓库),README 提到的其他 CI 平台未被此技能测试。
- 测试失败时需人工解读 tmux 捕获,自动化诊断有限。
- AGPL-3.0 许可证对集成使用有传染性约束。
如何安装这个 Skill?
将技能放入仓库的 .claude/skills/e2e/SKILL.md(该文件已位于 boostsecurityio/smokedmeat 仓库此路径)。克隆仓库后需安装 Docker 和 make(Go 非必需,快速启动用;开发迭代需 Go 1.26+)。运行 make e2e-smoke 时会提示输入 GITHUB_TOKEN 并保存到 .claude/e2e/.env。
如何使用这个 Skill?
在 Claude Code 中触发该技能,例如输入:'运行 e2e 冒烟测试' 或 '用 exploit 焦点测试 e2e'。无焦点时先跑快速冒烟路径:make e2e-smoke;需完整链条时运行 make e2e-goat。调试时可用 make e2e-counter、make e2e-capture、make e2e-keys KEYS='Enter' 等命令手动操作 tmux 会话。结束用 make e2e-down 或 make e2e-purge 清理。
这个 Skill 与同类方案有什么区别?
SmokedMeat 自我定位为'CI/CD 领域的 Metasploit',并与其同门的 poutine(构建管线 SAST 扫描器)形成攻防互补;先验工作还包括 Gato-X(GitHub Actions 枚举)、Nord-Stream(CI/CD 秘密提取)和 Sliver/Mythic(C2 架构参考)。该技能本身是测试工具,没有直接的同类竞品被列出。