GCP - Public Buckets Privilege Escalation

HackTricksをサポートする

バケットの特権昇格

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

権限の確認

バケットに対する権限を確認する方法は2つあります。最初の方法は、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

昇格

allAuthenticatedUsersStorage Adminを付与するには、次のコマンドを実行することが可能です:

gsutil iam ch allAuthenticatedUsers:admin gs://BUCKET_NAME

別の攻撃は、バケットを削除して自分のアカウントに再作成し、所有権を盗むことです。

参考文献

Support HackTricks

Last updated