GCP - Storage Post Exploitation

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Cloud Storage

Cloud Storage hakkında daha fazla bilgi için bu sayfaya bakın:

GCP - Storage Enum

Herkese Açık Erişim Verme

Dış kullanıcılara (GCP’ye giriş yapmış olsunlar ya da olmasınlar) bucket içeriğine erişim vermek mümkündür. Ancak, varsayılan olarak bucket’ların herkese açık şekilde açılma seçeneği devre dışı bırakılmıştır:

# Disable public prevention
gcloud storage buckets update gs://BUCKET_NAME --no-public-access-prevention

# Make all objects in a bucket public
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
## I don't think you can make specific objects public just with IAM

# Make a bucket or object public (via ACL)
gcloud storage buckets update gs://BUCKET_NAME --add-acl-grant=entity=AllUsers,role=READER
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --add-acl-grant=entity=AllUsers,role=READER

Eğer ACLs devre dışı bırakılmış bir bucket’a ACLs vermeye çalışırsanız şu hatayı alırsınız: ERROR: HTTPError 400: Cannot use ACL API to update bucket policy when uniform bucket-level access is enabled. Read more at https://cloud.google.com/storage/docs/uniform-bucket-level-access

Açık bucket’lara tarayıcı üzerinden erişmek için şu URL’leri kullanın: https://<bucket_name>.storage.googleapis.com/ veya https://<bucket_name>.storage.googleapis.com/<object_name>

storage.objects.delete (storage.objects.get)

Bir nesneyi silmek için:

gcloud storage rm gs://<BUCKET_NAME>/<OBJECT_NAME> --project=<PROJECT_ID>

storage.buckets.delete, storage.objects.delete & storage.objects.list

Bir bucket’ı silmek için:

gcloud storage rm -r gs://<BUCKET_NAME>

HMAC Keys’leri Devre Dışı Bırak

storage.hmacKeys.update izni HMAC Keys’leri devre dışı bırakmaya izin verir, storage.hmacKeys.delete izni ise bir identity’nin Cloud Storage içindeki service accounts ile ilişkili HMAC Keys’leri silmesine izin verir.

# Deactivate
gcloud storage hmac update <ACCESS_ID> --deactivate

# Delete
gcloud storage hmac delete <ACCESS_ID>

storage.buckets.setIpFilter & storage.buckets.update

storage.buckets.setIpFilter izni, storage.buckets.update izniyle birlikte, bir Cloud Storage bucket’ında IP adresi filtreleri yapılandırarak hangi IP aralıklarının veya adreslerinin bucket’ın kaynaklarına erişebileceğini belirlemeye olanak tanır.

IP filtresini tamamen temizlemek için aşağıdaki komut kullanılabilir:

gcloud storage buckets update gs://<BUCKET_NAME> --project=<PROJECT_ID>

Filtrelenen IP’leri değiştirmek için aşağıdaki komut kullanılabilir:

gcloud storage buckets update gs://<BUCKET_NAME> \
--ip-filter-file=ip-filter.json \
--project=<PROJECT_ID>

JSON dosyası filtrenin kendisini temsil eder, şöyle bir şey:

{
"mode": "Enabled",
"publicNetworkSource": {
"allowedIpCidrRanges": ["<IP>/<MASK>"]
},
"allowCrossOrgVpcs": false,
"allowAllServiceAgentAccess": false
}

storage.buckets.restore

Bir bucket’ı geri yüklemek için kullanın:

gcloud storage restore gs://<BUCKET_NAME>#<GENERATION> \
--project=<PROJECT_ID>

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin