GCP - パブリックバケットの特権昇格

Reading time: 4 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

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エンドポイントを使用して、指定された権限を持っているかどうかを確認することです。例えば、次のようにアクセスします: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を付与するには、次のコマンドを実行することができます:

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

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

参考文献

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする