TravisCI 安全
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
什么是 TravisCI
Travis CI 是一个 托管 或 本地 的 持续集成 服务,用于构建和测试托管在多个 不同 git 平台 上的软件项目。
攻击
触发器
要发起攻击,您首先需要知道如何触发构建。默认情况下,TravisCI 会在 推送和拉取请求 时 触发构建:
.png)
定时任务
如果您可以访问该 web 应用程序,您可以 设置定时任务来运行构建,这对于持久性或触发构建可能很有用:
.png)
Note
根据 this,似乎无法在
.travis.yml中设置定时任务。
第三方 PR
TravisCI 默认情况下禁用与来自第三方的 PR 共享环境变量,但有人可能会启用它,然后您可以创建 PR 到该仓库并提取机密:
.png)
转储机密
如 基本信息 页面所述,有两种类型的机密。环境变量机密(在网页上列出)和 自定义加密机密,这些机密存储在 .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 和密钥,例如:
.png)
TODO:
- 示例构建在 Windows/Mac/Linux 上运行反向 shell
- 示例构建在日志中泄露环境变量的 base64 编码
TravisCI 企业版
如果攻击者进入一个使用 TravisCI 企业版 的环境(有关这是什么的更多信息,请参见 基本信息),他将能够 在 Worker 中触发构建。这意味着攻击者将能够从中横向移动到该服务器,从而能够:
- 逃离到主机?
- 破坏 kubernetes?
- 破坏同一网络中运行的其他机器?
- 破坏新的云凭证?
参考
- https://docs.travis-ci.com/user/encrypting-files/
- https://docs.travis-ci.com/user/best-practices-security
Tip
学习并练习 AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 subscription plans!
- 加入 💬 Discord group 或者 telegram group 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库 提交 PRs 来分享 hacking tricks。
HackTricks Cloud

