TravisCI セキュリティ
Reading time: 6 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
TravisCI とは
Travis CI は、ホスティングまたはオンプレミスの継続的インテグレーションサービスで、複数の異なる git プラットフォームにホストされたソフトウェアプロジェクトをビルドおよびテストするために使用されます。
攻撃
トリガー
攻撃を開始するには、まずビルドをトリガーする方法を知っておく必要があります。デフォルトでは、TravisCI はプッシュとプルリクエストでビルドをトリガーします:
Cron ジョブ
Web アプリケーションにアクセスできる場合、ビルドを実行するための cron を設定できます。これは持続性のためやビルドをトリガーするために役立ちます:
note
これによると、.travis.yml
内で cron を設定することはできないようです。
サードパーティ PR
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 とキー**を探します:
TODO:
- Windows/Mac/Linux で実行されるリバースシェルを持つビルドの例
- ログにエンコードされた環境変数を漏洩させるビルドの例
TravisCI エンタープライズ
攻撃者がTravisCI エンタープライズを使用している環境に入った場合(これについての詳細は基本情報を参照)、彼はWorker でビルドをトリガーすることができます。これは、攻撃者がそのサーバーに横移動できることを意味し、そこから次のことが可能になります:
- ホストに脱出する?
- Kubernetes を侵害する?
- 同じネットワーク内の他のマシンを侵害する?
- 新しいクラウド資格情報を侵害する?
参考文献
- https://docs.travis-ci.com/user/encrypting-files/
- https://docs.travis-ci.com/user/best-practices-security
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。