GCP - Public Buckets Privilege Escalation

htARTE (HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法:

バケット権限昇格

バケットポリシーが“allUsers”または“allAuthenticatedUsers”にバケットポリシーへの書き込みstorage.buckets.setIamPolicy権限)を許可している場合、誰でもバケットポリシーを変更して自分に完全なアクセス権を付与することができます。

権限の確認

バケットに対する権限を確認する方法は2つあります。1つ目は、https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iamにリクエストを送るか、gsutil iam get gs://BUCKET_NAMEを実行することで、それらを求めることです。

しかし、あなたのユーザー("allUsers"または"allAuthenticatedUsers"に属している可能性があります)がバケットのiamポリシーを読む権限(storage.buckets.getIamPolicy)を持っていない場合、それは機能しません。

常に機能するもう一つのオプションは、指定された権限を持っているかどうかを判断するために、バケットのtestPermissionsエンドポイントを使用することです。例えば、次のURLにアクセスします:https://www.googleapis.com/storage/v1/b/BUCKET_NAME/iam/testPermissions?permissions=storage.buckets.delete&permissions=storage.buckets.get&permissions=storage.buckets.getIamPolicy&permissions=storage.buckets.setIamPolicy&permissions=storage.buckets.update&permissions=storage.objects.create&permissions=storage.objects.delete&permissions=storage.objects.get&permissions=storage.objects.list&permissions=storage.objects.update

権限昇格

Google StorageのCLIプログラムである“gsutil”を使用して、以下のコマンドを実行し、“allAuthenticatedUsers”に“Storage Admin”ロールへのアクセスを付与し、私たちがバケットに付与された権限を昇格させることができます:

gsutil iam ch group:allAuthenticatedUsers:admin gs://BUCKET_NAME

LegacyBucketOwnerからStorage Adminへの権限昇格の主な魅力の一つは、「storage.buckets.delete」権限を使用できるようになることです。理論的には、権限を昇格した後にバケットを削除し、その名前を盗むために自分のアカウントでバケットを作成することができます

参考文献

htARTE (HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学ぶには

HackTricksをサポートする他の方法:

最終更新