Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/boostsecurityio/smokedmeat
渗透测试框架权限提升漏洞利用框架漏洞分析横向移动后渗透利用云安全命令与控制秘密检测供应链安全学习与教育红队
3732841个月前Kitploit 审核通过
GitHubboostsecurityio/smokedmeat

smokedmeat

一个用于演示构建管道安全风险的 CI/CD 红队框架。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

SmokedMeat

License: AGPL v3

CI/CD 红队框架

像 Metasploit,但用于 CI/CD 管道。

来自 poutine 构建管道 SAST 扫描器的制造者,BoostSecurity Labs。

SmokedMeat quickstart demo


警告:此工具仅用于授权的安全测试。

SmokedMeat 的存在是因为 CI/CD 管道威胁被严重低估。传统安全培训很少涵盖供应链攻击,导致防御者面对攻击者积极利用的技术毫无准备。

我们构建此工具是为了让安全团队能够通过逼真的红队演练,学习、实践并验证针对高级 CI/CD 攻击技术的防御措施。

仅对你拥有或获得明确书面许可的系统使用。


SmokedMeat 是什么?

SmokedMeat 是一个面向 CI/CD 管道的后利用框架。将其指向一个 GitHub 组织,让它发现易受攻击的工作流,将植入体部署到被攻陷的运行器上,然后通过云提供商横向移动、提取密钥、绘制爆炸半径——全部在终端 UI 中完成。

它能做什么:

  1. 分析 — 扫描组织的 GitHub Actions 工作流,查找注入漏洞、危险触发器和不安全检出模式(由 poutine 驱动)
  2. 利用 — 通过 PR、Issue、评论或 workflow dispatch 部署一个暂存器。当易受攻击的工作流运行时,它会在 CI 运行器上下载并执行植入体。
  3. 后利用 — 从运行器内存中提取密钥、枚举 GitHub Token 权限、扫描私钥并收集战利品
  4. 横向移动 — 使用捕获的凭证横向移动:发现私有仓库、铸造 GitHub App Token、交换 OIDC Token 以获取 AWS/GCP/Azure 访问权限、探测 SSH 部署密钥

理念: 大胆且嘈杂。这不是 EDR 规避工具。它是一个演示框架,展示在触发任何告警之前,CI/CD 被攻陷的程度有多深。

适用人群:

  • 在企业环境中验证 CI/CD 安全态势的红队
  • 向利益相关者演示供应链攻击路径的渗透测试人员
  • 测试管道攻击检测与响应的安全工程师
  • 开发新 CI/CD 利用技术的研究人员
  • 探索供应链攻击面的漏洞赏金猎人
  • 快速开始

    要首次尝试 SmokedMeat,安装 Docker 和 make。不需要 Go。

    root@kitploit:~
    git clone https://github.com/boostsecurityio/smokedmeat.git
    cd smokedmeat
    make quickstart
    

    make quickstart 是推荐的首次运行。它会启动本地稳定版快速开始栈,并针对本地 C2 团队服务器(Kitchen)启动操作员 TUI(Counter)。

    推荐的首次运行:

    • 目标:whooli
    • Token:带有 public_repo 范围的经典 PAT

    ⚠ 建议使用经典 PAT。细粒度 PAT 可能过于严格,可能会阻止测试其他组织中的公开目标,包括 whooli。

    whooli 是 SmokedMeat 故意配置为易受攻击的 CI/CD 攻击演练场。它是公开路径下的推荐首个目标。

    设置向导会引导你完成:

    1. GitHub PAT — 输入你的 Token。对于私有仓库,经典 PAT 通常需要 repo 范围。
    2. 目标 — 输入 whooli 或你自己的组织/仓库
    3. 分析 — 扫描工作流中的漏洞并呈现可利用的发现

    完整挑战流程请参阅 whooli 指南,或直接访问 whooli GitHub 组织。

    完成后:

    root@kitploit:~
    make quickstart-down       # 停止容器
    make quickstart-purge      # 停止并删除所有数据
    

    如果你想从源代码工作,请参阅 开发。

    开发

    如果你正在贡献或在本地迭代源代码树,安装 Go 1.26+ 并使用开发快速开始:

    root@kitploit:~
    make dev-quickstart
    

    make dev-quickstart 会构建本地 smokedmeat-cloud-shell 镜像,启动 cloudflared、nats 和 C2 团队服务器(Kitchen),然后从源代码启动操作员 TUI。

    如果你想要先启动基础设施,稍后启动操作员 TUI:

    root@kitploit:~
    make dev-quickstart-up
    make dev-quickstart-counter
    

    完成后:

    root@kitploit:~
    make dev-quickstart-down   # 停止容器
    make dev-quickstart-purge  # 停止并删除所有数据
    

    更多部署模式和本地开发细节请参阅 docs/deployment.md。

    版本检查

    Counter 会在启动时检查是否有更新的 SmokedMeat 版本。可以通过设置环境变量 SMOKEDMEAT_DISABLE_VERSION_CHECK 来禁用。

    核心组件

    标准术语SmokedMeat 名称描述
    操作员 TUICounter用于分析、载荷投递和后利用工作流的终端界面。
    C2 团队服务器Kitchen用于操作员会话、暂存器、回调和图形状态的 API 和 WebSocket 服务器。
    植入体Brisket交付给被攻陷的 CI 运行器的代理,用于信标通信、命令执行和横向移动。
    浏览器图形视图浏览器视图由 C2 团队服务器在 /graph 提供的实时攻击图。

    部署模式

    模式使用时机入口点
    快速开始在固定版本上最快的首次运行make quickstart
    开发快速开始在本地源代码树上工作make dev-quickstart
    托管团队服务器运行真实演练,使用稳定域名docs/deployment.md

    托管团队服务器将 C2 团队服务器运行在专用主机上,操作员 TUI 则原生运行在每个操作员工作站上。

    架构

    从高层次看,操作员 TUI(Counter)与 C2 团队服务器(Kitchen)通信,团队服务器管理运行在被攻陷 CI 运行器上的植入体(Brisket),并提供实时攻击图。

    root@kitploit:~
    ┌──────────────┐
    │  SSH AGENT   │
    │   (Auth)     │
    └──────┬───────┘
           │
           ▼
    ┌──────────────┐                 ┌──────────────┐
    │  THE COUNTER │ ───────────────▶│  THE KITCHEN │
    │  (Operator)  │    WebSocket    │ (Teamserver) │
    │  Bubbletea   │◀─────────────── │              │
    │     TUI      │   Events/Graph  │ ┌──────────┐ │
    └──────────────┘                 │ │ Database │ │
                                     │ └──────────┘ │
    ┌──────────────┐                 │              │
    │   BROWSER    │ ───────────────▶│              │
    │  Graph View  │    WebSocket    │              │
    │  Visualizer  │◀─────────────── │              │
    └──────────────┘   Live Updates  └──────────────┘
                                       │         ▲
                                       │         │
                            Creates PR │         │ Stager fetches implant binary
                                       │         │ Implant HTTP Beacon/Commands
                                       ▼         │
    ┌────────────────────────────────────────────┴──────────────────────────────────┐
    │  GITHUB.COM                                                                   │
    │                                                                               │
    │  ┌─────────────────────┐          ┌─────────────────────────────────────────┐ │
    │  │  Malicious PR       │ triggers │  GitHub Actions Runner                  │ │
    │  │  (Vulnerable        │─────────▶│                                         │ │
    │  │   Workflow)         │          │  ┌────────────┐      ┌────────────────┐ │ │
    │  └─────────────────────┘          │  │  Stager    │─────▶│  THE BRISKET   │ │ │
    │                                   │  │            │      │  (Implant)     │ │ │
    │                                   │  └────────────┘      └────────────────┘ │ │
    │                                   └─────────────────────────────────────────┘ │
    └───────────────────────────────────────────────────────────────────────────────┘
    

    功能

    完整细节见 docs/FEATURES.md。

    类别能力
    侦察自动检测 6 个 CI 平台(GitHub Actions、GitLab CI、Azure DevOps、CircleCI、Jenkins、Bitbucket)。分类密钥、探测 OIDC 可用性、收集运行器元数据。
    密钥提取通过 /proc 扫描 Runner.Worker 进程内存,恢复 GitHub 从日志中隐藏的未脱敏 secrets.*、vars.* 和 GITHUB_TOKEN 权限映射。
    漏洞分析嵌入式 poutine SAST,用于注入漏洞、危险触发器和工作流 if: 门分类。Gitleaks 深度扫描 git 历史中的私钥和 PAT。
    投递5 种自动化方法:PR、Issue、评论、LOTP、workflow dispatch——外加仅复制和手动。支持草稿 PR、回调自动关闭、服务器端投递预检。
    注入载荷针对 8 种注入向量(分支名称、PR 标题/正文、提交消息、Issue 标题/正文、github-script、bash run)的上下文感知载荷生成,采用约束感知技术。
    LOTP利用管道(Living Off The Pipeline)目录:15 种构建工具(npm、pip、cargo、make、docker、gradle、maven 等),以及用于在安装/构建/测试期间执行代码的配置文件载荷。
    缓存投毒写入者/受害者分类、精确缓存键预测、通过 Actions Cache API 进行存档暂存。向导驱动流程,带有植入体武装。
    Token 枚举针对 API 端点探测 GitHub Token,枚举 10 个权限范围,识别 Token 类型,列出可访问的仓库和组织。
    云横向移动OIDC Token 交换,用于 AWS(sts:AssumeRoleWithWebIdentity)、GCP(Workload Identity Federation)、Azure(AAD)和 Kubernetes。横向移动后资源枚举。
    云 Shell持久的本地会话,支持 cloud shell(预配置的 gcloud/aws/az)、cloud export 和提供者快速检查。
    SSH 横向移动探测仓库的 SSH 部署密钥访问权限(读/写),ssh shell 带有临时代理,确认的访问权限持久化到图形中。
    GitHub 横向移动pivot github 用于仓库发现,pivot app 用于 GitHub App PEM 到安装 Token 的交换。发现的仓库自动加入分析队列。
    攻击图持久化的有向图(BBolt),包含组织/仓库/工作流/任务/漏洞/Token/云节点。在 /graph 提供实时 Cytoscape.js 浏览器可视化。
    操作员 TUI阶段感知工作流、7 步设置向导、攻击树导航、利用向导、战利品存储、全能搜索栏、Tab 补全、OSC 8 超链接。
    团队服务器SSH 或 Token 认证、NATS JetStream 消息总线、GitHub API 代理(Token 保留在服务器端)、通过 Caddy 自动 TLS、操作历史。

    技术栈

    层技术
    语言Go 1.26+
    TUI 框架Bubbletea v2 + Lipgloss v2
    TUI 布局Ultraviolet 布局 + ANSI 安全屏幕合成
    消息总线NATS JetStream
    攻击图hmdsefi/gograph
    图可视化Cytoscape.js
    数据库BBolt
    CI/CD 扫描器poutine(嵌入式)
    密钥扫描器gitleaks(嵌入式,自定义规则)
    运行器密钥提取gump(嵌入式,/proc 内存扫描)
    云 SDKAWS SDK v2、Google Cloud、Azure SDK for Go
    反向代理Caddy(自动 TLS)

    测试

    root@kitploit:~
    make test          # 单元测试
    make lint          # 代码检查
    make e2e-smoke     # 快速公开利用烟雾路径
    make e2e-goat      # 完整山羊链到云标志
    

    先行工作

    SmokedMeat 建立在以下研究成果之上:

    • poutine — 构建管道 SAST 扫描器
    • LOTP — 利用管道(Living Off The Pipeline)技术
    • Gato-X — GitHub Actions 枚举
    • Nord-Stream — CI/CD 密钥提取
    • Sliver — Go C2 架构模式
    • Mythic — 协作工作流设计

    许可证

    GNU Affero General Public License v3.0 — 详情见 LICENSE。


    为希望理解攻击技术的防御者而构建。

    下载工具