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

什么是 TravisCI

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

Basic TravisCI Information

攻击

触发器

要发起攻击,您首先需要知道如何触发构建。默认情况下,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?
  • 破坏同一网络中运行的其他机器?
  • 破坏新的云凭证?

参考

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