GCP - Compute Privesc
Compute
ComputeとVPC(ネットワーク)に関する詳細情報は、以下をチェックしてください:
pageGCP - Compute Enumcompute.projects.setCommonInstanceMetadata
compute.projects.setCommonInstanceMetadata
この権限を持つと、インスタンスのメタデータ情報を変更し、ユーザーの認証キーを変更したり、sudo権限を持つ新しいユーザーを作成することができます。したがって、任意のVMインスタンスにSSH経由で接続し、そのインスタンスが実行されているGCPサービスアカウントを盗むことができます。 制限事項:
デフォルトでVMインスタンスで実行されているGCPサービスアカウントは、非常に限られたスコープを持っています
SSHサーバーにログインするためにSSHにアクセスできる必要があります
この権限を悪用する方法の詳細については、以下をチェックしてください:
pageGCP - Add Custom SSH Metadatacompute.instances.setMetadata
compute.instances.setMetadata
この権限は、前述の権限と同じ特権を持ちますが、プロジェクト全体ではなく特定のインスタンスに対して適用されます。前述のセクションと同じ悪用と制限が適用されます。
compute.instances.setIamPolicy
compute.instances.setIamPolicy
この種の権限を持つと、前の権限を持つロールを自分自身に付与し、それらを悪用して特権を昇格させることができます。
compute.instances.osLogin
compute.instances.osLogin
インスタンスでOSLoginが有効になっている場合、この権限を使用して**gcloud compute ssh [INSTANCE]
を実行し、インスタンスに接続できます。インスタンス内でroot権限を持ちません**。
compute.instances.osAdminLogin
compute.instances.osAdminLogin
インスタンスでOSLoginが有効になっている場合、この権限を使用して**gcloud compute ssh [INSTANCE]
を実行し、インスタンスに接続できます。インスタンス内でroot権限を持ちます**。
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
割り当てられたサービスアカウントを持つ仮想マシンを作成し、そのサービスアカウントのトークンを盗むことで特権を昇格させることができます。
この方法の悪用スクリプトはこちらで見つけることができます。
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
**osconfig.patchDeployments.create
またはosconfig.patchJobs.exec
**権限がある場合、パッチジョブまたはデプロイメントを作成できます。これにより、環境内を横断移動し、プロジェクト内のすべてのコンピュートインスタンスでコードを実行できます。
手動でこれを悪用する場合は、パッチジョブまたはデプロイメントを作成する必要があります:
gcloud compute os-config patch-jobs execute --file=patch.json
パッチデプロイメントを展開するには:
gcloud compute os-config patch-deployments create my-update --file=patch.json
patchyなどの自動化ツールが、緩い権限を検出し、自動的に横断移動するための存在します。
これを持続性のためにも悪用できます。
compute.machineImages.setIamPolicy
compute.machineImages.setIamPolicy
コンピュートイメージに追加の権限を付与します。
compute.snapshots.setIamPolicy
compute.snapshots.setIamPolicy
ディスクスナップショットに追加の権限を付与します。
compute.disks.setIamPolicy
compute.disks.setIamPolicy
ディスクに追加の権限を付与します。
アクセススコープのバイパス
このリンクには、アクセススコープをバイパスしようとするアイデアがいくつかあります。
GCP Computeインスタンスでのローカル特権昇格
pageGCP - local privilege escalation ssh pivoting参考文献
最終更新