GCP - Filestore Enum

Support HackTricks

Basic Information

Google Cloud Filestore est un service de stockage de fichiers géré conçu pour les applications ayant besoin à la fois d'une interface de système de fichiers et d'un système de fichiers partagé pour les données. Ce service excelle en offrant des partages de fichiers haute performance, qui peuvent être intégrés avec divers services GCP. Son utilité se manifeste dans des scénarios où les interfaces et sémantiques de systèmes de fichiers traditionnels sont cruciales, comme dans le traitement des médias, la gestion de contenu et la sauvegarde de bases de données.

Vous pouvez le considérer comme tout autre NFS dépôt de documents partagé - une source potentielle d'informations sensibles.

Connections

Lors de la création d'une instance Filestore, il est possible de sélectionner le réseau où elle sera accessible.

De plus, par défaut, tous les clients sur le réseau VPC sélectionné et la région pourront y accéder, cependant, il est possible de restreindre l'accès également par adresse IP ou plage et d'indiquer le privilège d'accès (Admin, Admin Viewer, Editor, Viewer) que l'utilisateur client obtiendra en fonction de l'adresse IP.

Il peut également être accessible via une connexion d'accès de service privé :

  • Sont par réseau VPC et peuvent être utilisés à travers tous les services gérés tels que Memorystore, Tensorflow et SQL.

  • Sont entre votre réseau VPC et un réseau appartenant à Google utilisant un peering VPC, permettant à vos instances et services de communiquer exclusivement en utilisant des adresses IP internes.

  • Créez un projet isolé pour vous du côté du producteur de services, ce qui signifie qu'aucun autre client ne le partage. Vous serez facturé uniquement pour les ressources que vous provisionnez.

  • Le peering VPC importera de nouvelles routes vers votre VPC.

Backups

Il est possible de créer des sauvegardes des partages de fichiers. Celles-ci peuvent être ensuite restaurées dans l'instance de Fileshare d'origine ou dans de nouvelles.

Encryption

Par défaut, une clé de chiffrement gérée par Google sera utilisée pour chiffrer les données, mais il est possible de sélectionner une clé de chiffrement gérée par le client (CMEK).

Enumeration

Si vous trouvez un filestore disponible dans le projet, vous pouvez le monter depuis votre instance Compute compromise. Utilisez la commande suivante pour voir s'il en existe.

# Instances
gcloud filestore instances list # Check the IP address
gcloud filestore instances describe --zone <zone> <name> # Check IP and access restrictions

# Backups
gcloud filestore backups list
gcloud filestore backups describe --region <region> <backup>

# Search for NFS shares in a VPC subnet
sudo nmap -n -T5 -Pn -p 2049 --min-parallelism 100 --min-rate 1000 --open 10.99.160.2/20

Notez qu'un service filestore pourrait être dans un sous-réseau complètement nouveau créé pour lui (à l'intérieur d'une connexion d'accès de service privé, qui est un pair VPC). Vous pourriez donc avoir besoin de énumérer les pairs VPC pour également exécuter nmap sur ces plages de réseau.

# Get peerings
gcloud compute networks peerings list
# Get routes imported from a peering
gcloud compute networks peerings list-routes <peering-name> --network=<network-name> --region=<region> --direction=INCOMING

Escalade de privilèges & Post Exploitation

Il n'y a pas de moyens d'escalader les privilèges dans GCP en abusant directement de ce service, mais en utilisant quelques astuces de Post Exploitation, il est possible d'accéder aux données et peut-être que vous pouvez trouver des identifiants pour escalader les privilèges :

Persistance

Soutenir HackTricks

Last updated