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)