GCP - Filestore Enum

Support HackTricks

Basic Information

Google Cloud Filestore è un servizio di archiviazione file gestito progettato per applicazioni che necessitano sia di un interfaccia filesystem che di un filesystem condiviso per i dati. Questo servizio si distingue per l'offerta di condivisioni di file ad alte prestazioni, che possono essere integrate con vari servizi GCP. La sua utilità si manifesta in scenari in cui le interfacce e le semantiche del filesystem tradizionale sono cruciali, come nell'elaborazione dei media, nella gestione dei contenuti e nel backup dei database.

Puoi pensare a questo come a qualsiasi altro NFS repository di documenti condivisi - una potenziale fonte di informazioni sensibili.

Connections

Quando crei un'istanza di Filestore è possibile selezionare la rete da cui sarà accessibile.

Inoltre, per default tutti i client sulla rete VPC selezionata e nella regione potranno accedervi, tuttavia, è possibile limitare l'accesso anche per indirizzo IP o intervallo e indicare il privilegio di accesso (Admin, Admin Viewer, Editor, Viewer) che l'utente client otterrà a seconda dell'indirizzo IP.

Può anche essere accessibile tramite una Connessione di Accesso ai Servizi Privati:

  • Sono per rete VPC e possono essere utilizzate in tutti i servizi gestiti come Memorystore, Tensorflow e SQL.

  • Sono tra la tua rete VPC e la rete di proprietà di Google utilizzando un peering VPC, consentendo alle tue istanze e servizi di comunicare esclusivamente utilizzando indirizzi IP interni.

  • Crea un progetto isolato per te dal lato del produttore di servizi, il che significa che nessun altro cliente lo condivide. Sarai fatturato solo per le risorse che provisioni.

  • Il peering VPC importerà nuove rotte nella tua VPC.

Backups

È possibile creare backup delle condivisioni di file. Questi possono essere successivamente ripristinati nell'istanza di Fileshare originale o in nuove.

Encryption

Per impostazione predefinita verrà utilizzata una chiave di crittografia gestita da Google per crittografare i dati, ma è possibile selezionare una chiave di crittografia gestita dal cliente (CMEK).

Enumeration

Se trovi un filestore disponibile nel progetto, puoi montarlo dall'interno della tua Istanza Compute compromessa. Usa il seguente comando per vedere se esistono.

# 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

Nota che un servizio filestore potrebbe trovarsi in una sottorete completamente nuova creata per esso (all'interno di una Connessione di Accesso ai Servizi Privati, che è un peer VPC). Quindi potresti dover enumerare i peer VPC per eseguire nmap anche su quelle gamme di rete.

# 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

Escalation dei privilegi e Post Exploitation

Non ci sono modi per escalare i privilegi in GCP abusando direttamente di questo servizio, ma utilizzando alcuni trucchi di Post Exploitation è possibile ottenere accesso ai dati e forse puoi trovare alcune credenziali per escalare i privilegi:

Persistenza

Supporta HackTricks

Last updated