SuperAPI AI 工具集

offensive-cicd-secrets

安全与审计

查看项目

更新于 10-16 02:13

技能介绍

用途

该技能面向 CI/CD 流水线的凭据(secrets)提取,核心假设是:流水线是攻击的首要目标,因为每条流水线都持有部署密钥、云服务商令牌、API 密钥、镜像仓库密码、数据库连接串等凭据,而保护这些凭据的机制通常弱于保护生产密钥的机制。该技能利用 CI/CD 设计中的固有张力——流水线需要凭据才能部署,但执行流水线的环境是临时的、共享的,往往任何能提交 PR 的人都能访问。

主要能力

覆盖 CI/CD 平台上的各类提取路径,从简单的环境变量导出到复杂的 OIDC 联邦滥用。核心流程包括:枚举存在哪些密钥、判断适用哪种提取技术、恢复凭据、横向扩展访问权限。

映射的 MITRE ATT&CK 技术:T1552(不安全的凭据)、T1552.001(文件中的凭据)、T1552.004(私钥)、T1552.007(容器 API)。

环境变量提取

每个 CI/CD 平台都会将密钥注入为环境变量。在任何被攻陷的流水线中,第一步都是全面导出环境变量。平台会尝试在日志中遮蔽密钥值,但遮蔽可被绕过,例如使用 env | sort、Base64 编码、字符串反转、逐字符提取或十六进制编码。还可按命名约定进行针对性模式匹配,如匹配 AWS_、AZURE_、GCP_、GITHUB_、GITLAB_、DOCKER_ 等前缀,或匹配凭据形态的值(Base64、GitHub 令牌、GitLab 令牌、AWS 访问密钥 ID、Stripe/OpenAI 风格密钥)。若 /proc 可用,还可从进程内存中搜索。

外传通道包括:HTTPS POST 外传、受限网络中使用的 DNS 外传、HTTP 被封锁时的 ICMP 外传,以及写入流水线产物以便后续取回。

Vault 与密钥管理器配置错误

流水线常与密钥管理器集成,该技能利用流水线对这些系统认证和取回密钥时的配置错误,涵盖:

  • HashiCorp Vault:检查 Vault 环境配置、枚举可访问密钥、列出并读取 KV 密钥、尝试常见密钥路径、使用 AppRole 凭据认证、检查令牌权限。
  • AWS Secrets Manager 与 Parameter Store:检查环境中的 AWS 凭据、检查 EC2 实例元数据、列出 Secrets Manager 中的所有密钥、提取密钥值、查询 SSM Parameter Store。
  • Azure Key Vault:检查 Azure 托管身份、列出可访问的 Key Vault、提取所有密钥、提取证书与密钥。
  • GCP Secret Manager:检查 GCP 凭据、使用元数据服务器获取默认凭据、列出项目中的所有密钥、提取密钥值。

OIDC 联邦攻击

OIDC 联邦允许 CI/CD 流水线在不存储长期凭据的情况下向云服务商认证。该技能利用联邦设置中的信任配置错误,从非授权上下文假定角色。涵盖 GitHub Actions OIDC 和 GitLab CI OIDC 的攻击场景,例如过度宽泛的信任策略(接受组织内任意仓库)可被从受控工作流利用。

构建日志与缓存利用

构建日志和缓存常因粗心脚本、详细输出模式或调试配置而泄露凭据。技术包括:通过 API 检索工作流运行日志并搜索泄露密钥、分析 Jenkins 构建控制台输出、以及通过污染构建缓存(如 GitHub Actions 缓存、GitLab CI 共享缓存)在下次运行时外传密钥。

平台特定凭据存储

每个 CI/CD 平台有自己的凭据存储机制:

  • GitHub Actions Secrets:列出仓库、组织、环境级别的密钥名称(值需在流水线上下文中通过环境导出技术获取)。
  • Jenkins Credential Store:使用 Groovy 脚本提取所有凭据;离线解密 credentials.xml 需 secrets/master.key 与 secrets/hudson.util.Secret,涉及 SHA-256 哈希、AES-ECB 解密与 AES-128-CBC 解密流程。
  • GitLab CI Variables:使用 CI_JOB_TOKEN(作用域有限)、个人访问令牌或模拟令牌(作用域更广)提取变量,包括组变量。

使用方式

快速工作流为:在 CI/CD 流水线中获得代码执行(注入向量参见 offensive-cicd-pipeline 技能)→ 枚举执行环境(平台、运行器类型、可用工具、网络访问)→ 导出所有环境变量并过滤密钥模式 → 使用可用令牌(GITHUB_TOKEN、CI_JOB_TOKEN、PAT)查询平台特定凭据存储 → 检查 vault/密钥管理器集成并测试配置错误 → 检查构建日志、缓存与产物中的泄露凭据 → 若存在云服务商集成则测试 OIDC 联邦信任 → 验证恢复的凭据并确定其作用域 → 使用恢复的密钥横向访问其他系统、镜像仓库与云资源。

适用场景

红队演练、渗透测试、CI/CD 安全评估等需要评估流水线凭据暴露风险的场景。

限制

该技能为进攻性安全方法论,仅应在获得明确授权的前提下使用。具体价格、许可条款、平台支持范围等事实暂未提供。