mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-04 16:57:26 -08:00
2.9 KiB
2.9 KiB
TravisCI 安全
{{#include ../../banners/hacktricks-training.md}}
什么是 TravisCI
Travis CI 是一个 托管 或 本地 的 持续集成 服务,用于构建和测试托管在多个 不同 git 平台 上的软件项目。
{{#ref}} basic-travisci-information.md {{#endref}}
攻击
触发器
要发起攻击,您首先需要知道如何触发构建。默认情况下,TravisCI 会在 推送和拉取请求 时 触发构建:
定时任务
如果您可以访问该 web 应用程序,您可以 设置定时任务来运行构建,这对于持久性或触发构建可能很有用:
Note
根据 this,似乎无法在
.travis.yml中设置定时任务。
第三方 PR
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 和密钥,例如:
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
{{#include ../../banners/hacktricks-training.md}}
.png)
.png)
.png)
.png)