GCP - Cloud Shell Persistence
Cloud Shell
詳細については、以下をチェックしてください:
pageGCP - Cloud Shell Enum永続的なバックドア
Google Cloud Shellは、ブラウザから直接クラウドリソースに対するコマンドラインアクセスを提供し、関連するコストはかかりません。
Google Cloud Shellには、Webコンソールからアクセスするか、**gcloud cloud-shell ssh
**を実行してアクセスできます。
このコンソールには、攻撃者にとって興味深い機能がいくつかあります:
Google Cloudにアクセス権を持つ任意のGoogleユーザーは、完全に認証されたCloud Shellインスタンスにアクセスできます(サービスアカウントは、組織の所有者であっても可能です)。
そのインスタンスは、活動がない場合でも少なくとも120日間はホームディレクトリを維持します。
そのインスタンスの活動を監視するための組織の機能はありません。
これは基本的に、攻撃者がユーザーのホームディレクトリにバックドアを設置し、ユーザーが少なくとも120日ごとにGC Shellに接続する限り、バックドアが生き残り、攻撃者は次回実行されるたびにシェルを取得できることを意味します。ただし、次のように実行するだけです:
ホームフォルダには**.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 で詳細情報を見つけることができます。
参考文献
最終更新