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