GCP - Cloud Shell Persistence
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)
詳細については、次を確認してください:
GCP - Cloud Shell EnumGoogle Cloud Shell は、関連するコストなしにブラウザから直接クラウドリソースへのコマンドラインアクセスを提供します。
ウェブコンソールから、または**gcloud cloud-shell ssh
**を実行することでGoogleのCloud Shellにアクセスできます。
このコンソールには攻撃者にとって興味深い機能があります:
Google Cloudにアクセスできる任意のGoogleユーザーは、完全に認証されたCloud Shellインスタンスにアクセスできます(サービスアカウントは、組織のオーナーであってもアクセス可能です)。
そのインスタンスは、活動がない場合、少なくとも120日間はホームディレクトリを維持します。
そのインスタンスの活動を組織が監視する能力はありません。
これは基本的に、攻撃者がユーザーのホームディレクトリにバックドアを設置でき、ユーザーが少なくとも120日ごとにGC Shellに接続する限り、バックドアは生き残り、攻撃者は実行するたびにシェルを取得できることを意味します:
ホームフォルダには .customize_environment
という別のファイルがあり、存在する場合はユーザーが cloud shell にアクセスするたびに 実行されます(前の技術と同様に)。ユーザーが「頻繁に」cloud shell を使用する限り、前のバックドアまたは以下のようなものを挿入して持続性を維持してください:
最初に認証を必要とするアクションが実行されると、ユーザーのブラウザにポップアップ認証ウィンドウが表示されることに注意することが重要です。このウィンドウは、コマンドを実行する前に受け入れられなければなりません。予期しないポップアップが表示されると、疑念を引き起こし、使用している永続性メソッドが危険にさらされる可能性があります。
これは、クラウドシェルから gcloud projects list
を実行したときのポップアップ(攻撃者として)で、ブラウザのユーザーセッションで表示されます:
ただし、ユーザーがクラウドシェルを積極的に使用している場合、ポップアップは表示されず、次のコマンドでユーザーのトークンを収集できます:
基本的に、これらの3つのAPI呼び出しが使用されます:
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:addPublicKey [POST] (ローカルで作成した公開鍵を追加します)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start [POST] (インスタンスを起動します)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default [GET] (Google Cloud ShellのIPを教えてくれます)
さらに詳しい情報は、https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-keyで見つけることができます。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)