# GCP - Filestore Enum

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

## Basiese Inligting

Google Cloud Filestore is 'n **bestuurde lêeropbergingsdiens** wat ontwerp is vir toepassings wat beide 'n **lêerstelselskoppelvlak en 'n gedeelde lêerstelsel vir data** benodig. Hierdie diens presteer uitstekend deur hoë-prestasie lêerdeelings aan te bied, wat geïntegreer kan word met verskeie GCP-dienste. Die nut daarvan skyn in scenario's waar tradisionele lêerstelselskoppelvlakke en semantiek van kardinale belang is, soos in media verwerking, inhoudsbestuur, en die rugsteun van databasisse.

Jy kan dit beskou as enige ander **NFS** **gedeelde dokumentbewaarplek -** 'n potensiële bron van sensitiewe inligting.

### Verbindinge

Wanneer jy 'n Filestore-instansie skep, is dit moontlik om die **netwerk te kies waar dit toeganklik gaan wees**.

Boonop, **standaard kan alle kliënte op die geselekteerde VPC-netwerk en streek dit toegang verkry**, egter, dit is moontlik om die toegang ook te **beperk deur IP-adres** of reeks en die toegang regte (Admin, Admin Viewer, Editor, Viewer) aan te dui wat die kliënt gaan kry **afhangende van die IP-adres.**

Dit kan ook toeganklik wees via 'n **Privaat Diens Toegang Verbinding:**

- Is per VPC-netwerk en kan oor alle bestuurde dienste soos Memorystore, Tensorflow en SQL gebruik word.
- Is **tussen jou VPC-netwerk en 'n netwerk wat aan Google behoort deur 'n VPC-peering**, wat jou instansies en dienste in staat stel om eksklusief te kommunikeer deur **interne IP-adresse** te gebruik.
- Skep 'n geïsoleerde projek vir jou aan die diens-producer kant, wat beteken dat geen ander kliënte dit deel nie. Jy sal slegs vir die hulpbronne wat jy voorsien, gefaktureer word.
- Die VPC-peering sal nuwe roetes na jou VPC invoer.

### Rugsteun

Dit is moontlik om **rugsteun van die lêerdeelings** te skep. Hierdie kan later **herstel word in die oorsprong** nuwe Lêerdeelingsinstansie of in **nuwe**.

### Enkripsie

Standaard sal 'n **Google-bestuurde enkripsiesleutel** gebruik word om die data te enkripteer, maar dit is moontlik om 'n **Kliënt-bestuurde enkripsiesleutel (CMEK)** te kies.

### Enumerasie

As jy 'n filestore in die projek beskikbaar vind, kan jy dit **monteer** vanuit jou gecompromitteerde Compute Instansie. Gebruik die volgende opdrag om te sien of enige bestaan.
```bash
# 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
```
> [!CAUTION]
> Let daarop dat 'n filestore-diens dalk in 'n **heeltemal nuwe subnetwerk geskep vir dit** is (binne 'n Private Service Access Connection, wat 'n **VPC-peer** is).\
> So jy mag nodig hê om **VPC-peers** te **enumerate** om ook nmap oor daardie netwerkreekse te kan hardloop.
>
> ```bash
> # Kry peerings
> gcloud compute networks peerings list
> # Kry roetes ingevoer vanaf 'n peering
> gcloud compute networks peerings list-routes <peering-name> --network=<network-name> --region=<region> --direction=INCOMING
> ```

### Privilege Escalation & Post Exploitation

Daar is nie maniere om voorregte in GCP direk te verhoog deur hierdie diens te misbruik nie, maar deur sommige **Post Exploitation truuks is dit moontlik om toegang tot die data te verkry** en dalk kan jy 'n paar akrediteerbare inligting vind om voorregte te verhoog:

{{#ref}}
../gcp-post-exploitation/gcp-filestore-post-exploitation.md
{{#endref}}

### Persistence

{{#ref}}
../gcp-persistence/gcp-filestore-persistence.md
{{#endref}}

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