TravisCI Security
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Travis CIは、ホスティングまたはオンプレミスの継続的インテグレーションサービスで、複数の異なるgitプラットフォームにホストされているソフトウェアプロジェクトをビルドおよびテストするために使用されます。
Basic TravisCI Information攻撃を開始するには、まずビルドをトリガーする方法を知る必要があります。デフォルトでは、TravisCIはプッシュとプルリクエストでビルドをトリガーします:
ウェブアプリケーションにアクセスできる場合、ビルドを実行するためのcronを設定できます。これは持続性のためやビルドをトリガーするために役立ちます:
こちらによると、.travis.yml
内でcronを設定することはできないようです。
TravisCIはデフォルトで、第三者からのPRと環境変数を共有することを無効にしていますが、誰かがそれを有効にすると、リポジトリにPRを作成して秘密を抽出することができます:
基本情報ページで説明されているように、秘密には2種類あります。環境変数の秘密(ウェブページにリストされています)と、カスタム暗号化された秘密で、これは.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で実行されるリバースシェルを持つビルドの例
ログにbase64エンコードされたenvを漏洩させるビルドの例
攻撃者がTravisCIエンタープライズを使用している環境に入った場合(これが何であるかの詳細は基本情報にあります)、彼はWorkerでビルドをトリガーすることができます。これは、攻撃者がそのサーバーに横移動できることを意味し、そこから次のことができる可能性があります:
ホストに逃げる?
Kubernetesを侵害する?
同じネットワーク内の他のマシンを侵害する?
新しいクラウド資格情報を侵害する?
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)