# GCP - ストレージの未認証列挙

{{#include ../../../../banners/hacktricks-training.md}}

## ストレージ

ストレージに関する詳細情報は、以下を確認してください:

{{#ref}}
../../gcp-services/gcp-storage-enum.md
{{#endref}}

### 公開バケットブルートフォース

バケットにアクセスするための**URLの形式**は**`https://storage.googleapis.com/<bucket-name>`**です。

次のツールを使用して、与えられた名前のバリエーションを生成し、その名前で誤って構成されたバケットを検索できます:

- [https://github.com/RhinoSecurityLabs/GCPBucketBrute](https://github.com/RhinoSecurityLabs/GCPBucketBrute)

**また、以下のツール**も参照してください:

{{#ref}}
../
{{#endref}}

バケットに**アクセスできる**ことがわかった場合、さらに**エスカレーションできる**可能性があります。以下を確認してください:

{{#ref}}
gcp-public-buckets-privilege-escalation.md
{{#endref}}

### 現在のアカウントでオープンバケットを検索

以下のスクリプトを使用すると、すべてのオープンバケットを見つけることができます: [gathered from here](https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_misc/-/blob/master/find_open_buckets.sh)
```bash
#!/bin/bash

############################
# Run this tool to find buckets that are open to the public anywhere
# in your GCP organization.
#
# Enjoy!
############################

for proj in $(gcloud projects list --format="get(projectId)"); do
echo "[*] scraping project $proj"
for bucket in $(gsutil ls -p $proj); do
echo "    $bucket"
ACL="$(gsutil iam get $bucket)"

all_users="$(echo $ACL | grep allUsers)"
all_auth="$(echo $ACL | grep allAuthenticatedUsers)"

if [ -z "$all_users" ]
then
:
else
echo "[!] Open to all users: $bucket"
fi

if [ -z "$all_auth" ]
then
:
else
echo "[!] Open to all authenticated users: $bucket"
fi
done
done
```
{{#include ../../../../banners/hacktricks-training.md}}
