GCP - Storage Post Exploitation

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Cloud Storage

Pour plus d’informations sur Cloud Storage, consultez cette page :

GCP - Storage Enum

Accorder un accès public

Il est possible de donner à des utilisateurs externes (connectés à GCP ou non) l’accès au contenu des buckets. Cependant, par défaut l’option d’exposer publiquement un bucket est désactivée :

# 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

Si vous essayez de donner ACLs à un bucket dont les ACLs sont désactivées, vous obtiendrez cette erreur : 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

Pour accéder aux buckets ouverts via un navigateur, utilisez l’URL https://<bucket_name>.storage.googleapis.com/ ou https://<bucket_name>.storage.googleapis.com/<object_name>

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

Pour supprimer un objet :

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

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

Pour supprimer un bucket:

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

Désactiver les clés HMAC

La permission storage.hmacKeys.update permet de désactiver les clés HMAC, et la permission storage.hmacKeys.delete permet à une identité de supprimer les clés HMAC associées aux comptes de service dans Cloud Storage.

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

# Delete
gcloud storage hmac delete <ACCESS_ID>

storage.buckets.setIpFilter & storage.buckets.update

Les permissions storage.buckets.setIpFilter et storage.buckets.update permettent à une identité de configurer des filtres d’adresses IP sur un bucket Cloud Storage, en spécifiant quelles plages ou adresses IP sont autorisées à accéder aux ressources du bucket.

Pour effacer complètement le filtre IP, la commande suivante peut être utilisée :

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

Pour modifier les adresses IP filtrées, la commande suivante peut être utilisée :

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

Le fichier JSON représente le filtre lui-même, quelque chose comme :

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

storage.buckets.restore

Restaurer un bucket en utilisant :

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

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks