GCP - Cloud Shell Persistence
Cloud Shell
詳細については、以下をチェックしてください:
GCP - Cloud Shell Enum永続的なバックドア
Google Cloud Shellは、ブラウザから直接クラウドリソースに対するコマンドラインアクセスを提供し、関連するコストはかかりません。
GoogleのCloud Shellには、webコンソールからアクセスするか、**gcloud cloud-shell ssh
**を実行してアクセスできます。
このコンソールには、攻撃者にとって興味深い機能がいくつかあります:
Google Cloudにアクセス権を持つ任意のGoogleユーザーは、完全に認証されたCloud Shellインスタンスにアクセスできます(サービスアカウントは、組織の所有者であっても可能です)。
このインスタンスは、活動がない場合でも少なくとも120日間はホームディレクトリを維持します。
そのインスタンスの活動を監視するための組織の機能はありません。
基本的には、攻撃者はユーザーのホームディレクトリにバックドアを設置し、ユーザーが少なくとも120日ごとにGC Shellに接続する限り、バックドアは生き残り、攻撃者は実行されるたびにシェルを取得します。以下を実行するだけです:
ホームフォルダにはもう1つ**.customize_environment
というファイルがあり、存在する場合は、ユーザーがクラウドシェルにアクセスするたびに実行**されます(前のテクニックと同様)。ユーザーがクラウドシェルを「頻繁に」使用する限り、以前のバックドアまたは次のようなバックドアを挿入して持続性を維持します。
認証が必要なアクションが初めて実行されるときには、ユーザーのブラウザにポップアップ認証ウィンドウが表示されます。このウィンドウを受け入れる必要があります。予期しないポップアップが表示されると、疑念を抱かれ、使用されている持続性手法が潜在的に危険にさらされる可能性があります。
これは、クラウドシェル(攻撃者として)からgcloud projects list
を実行した際の、ブラウザのユーザーセッションで表示されるポップアップです:
ただし、ユーザーがクラウドシェルを積極的に使用している場合、ポップアップは表示されず、ユーザーのトークンを収集できます:
SSH接続の確立方法
基本的に、以下の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 で詳細情報を見つけることができます。
参考文献
Last updated