GCP - Compute Post Exploitation
Compute
ComputeとVPC(Networking)に関する詳細情報は以下を参照してください:
GCP - Compute Enumイメージをエクスポートしてローカルで検査
これにより、攻撃者は既存のイメージ内のデータにアクセスしたり、実行中のVMの新しいイメージを作成して、そのデータにアクセスすることができます。
VMイメージをバケットにエクスポートし、次にそれをダウンロードしてローカルにマウントすることが可能です。コマンドは以下の通りです:
このアクションを実行するには、攻撃者がストレージバケットに対する権限を持っている必要があり、確実にcloudbuildに対する権限が必要です。これはサービスがエクスポートを実行するために要求されるからです。
さらに、これが機能するためには、codebuild SAとcompute SAが特権的な権限を持っている必要があります。
cloudbuild SA <project-id>@cloudbuild.gserviceaccount.com
には以下が必要です:
roles/iam.serviceAccountTokenCreator
roles/compute.admin
roles/iam.serviceAccountUser
そして、SA <project-id>-compute@developer.gserviceaccount.com
には以下が必要です:
roles/compute.storageAdmin
roles/storage.objectAdmin
スナップショットとディスクをローカルでエクスポートおよび検査
スナップショットとディスクを直接エクスポートすることはできませんが、スナップショットをディスクに、ディスクをイメージに変換し、前のセクションに従ってそのイメージをエクスポートしてローカルで検査することが可能です。
VMを作成してイメージを検査する
攻撃者がイメージを作成したVMやイメージに保存されているデータにアクセスすることを目的として、外部アカウントにイメージへのアクセス権を付与することが可能です:
そして、それから新しいVMを作成します:
外部アカウントにイメージへのアクセス権を与えられない場合、被害者のプロジェクトでそのイメージを使用してVMを起動し、次のパラメータを追加してメタデータにリバースシェルを実行させることでイメージにアクセスできます:
スナップショット/ディスクをVMにアタッチして検査する
ディスクやスナップショットに保存されているデータにアクセスするために、スナップショットをディスクに変換し、ディスクをイメージに変換して前述の手順に従うことができます。
または、外部アカウントにディスクへのアクセス権を付与することもできます(開始点がスナップショットの場合は、スナップショットにアクセス権を付与するか、そこからディスクを作成します):
ディスクをアタッチ するインスタンス:
VM内にディスクをマウントする:
VMにSSH接続:
ディスクを特定: VM内で新しいディスクを特定するためにディスクデバイスをリストします。通常、
/dev/sdb
、/dev/sdc
などとして見つけることができます。ディスクをフォーマットしてマウント (新しいまたは未使用のディスクの場合):
マウントポイントを作成:
ディスクをマウント:
スナップショットやディスクに外部プロジェクトへのアクセスを許可できない場合、スナップショット/ディスクと同じプロジェクト内のインスタンスでこれらの操作を実行する必要があるかもしれません。
Last updated