TravisCI Security
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
Travis CI 是一个 托管 或 本地 的 持续集成 服务,用于构建和测试托管在多个 不同 git 平台 上的软件项目。
Basic TravisCI Information要发起攻击,您首先需要知道如何触发构建。默认情况下,TravisCI 会在 推送和拉取请求 时 触发构建:
如果您可以访问该 web 应用程序,您可以 设置定时任务来运行构建,这对于持久性或触发构建可能很有用:
根据 这个 的信息,似乎无法在 .travis.yml
中设置定时任务。
TravisCI 默认情况下禁用与来自第三方的 PR 共享环境变量,但有人可能会启用它,然后您可以创建 PR 到该仓库并提取秘密:
如 基本信息 页面所述,有两种类型的秘密。环境变量秘密(在网页上列出)和 自定义加密秘密,它们存储在 .travis.yml
文件中,采用 base64 编码(请注意,两个存储加密的最终都会作为环境变量出现在最终机器上)。
要 枚举配置为环境变量的秘密,请转到 项目 的 设置 并检查列表。但是,请注意,在触发构建时,此处设置的所有项目环境变量都会出现。
要枚举 自定义加密秘密,您最好的办法是 检查 .travis.yml
文件。
要 枚举加密文件,您可以检查仓库中的 .enc
文件,查找配置文件中类似 openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
的行,或在 环境变量 中查找 加密的 iv 和密钥,例如:
示例构建在 Windows/Mac/Linux 上运行反向 shell
示例构建在日志中泄露环境变量的 base64 编码
如果攻击者进入一个使用 TravisCI 企业版 的环境(有关这是什么的更多信息,请参见 基本信息),他将能够 在 Worker 中触发构建。这意味着攻击者将能够从中横向移动到该服务器,从而能够:
逃逸到主机?
破坏 Kubernetes?
破坏同一网络中运行的其他机器?
破坏新的云凭证?
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)