TravisCI Security

支持 HackTricks

什么是 TravisCI

Travis CI 是一个 托管本地持续集成 服务,用于构建和测试托管在多个 不同 git 平台 上的软件项目。

Basic TravisCI Information

攻击

触发器

要发起攻击,您首先需要知道如何触发构建。默认情况下,TravisCI 会在 推送和拉取请求触发构建

定时任务

如果您可以访问该 web 应用程序,您可以 设置定时任务来运行构建,这对于持久性或触发构建可能很有用:

根据 这个,似乎无法在 .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 和密钥,例如:

待办事项:

  • 示例构建在 Windows/Mac/Linux 上运行反向 shell

  • 示例构建在日志中泄露环境变量的 base64 编码

TravisCI 企业版

如果攻击者进入使用 TravisCI 企业版 的环境(有关这是什么的更多信息,请参见 基本信息),他将能够 在 Worker 中触发构建。这意味着攻击者将能够从中横向移动到该服务器,从而能够:

  • 逃逸到主机?

  • 破坏 kubernetes?

  • 破坏同一网络中运行的其他机器?

  • 破坏新的云凭证?

参考文献

支持 HackTricks

Last updated