GCP - Filestore Enum

Support HackTricks

Podstawowe informacje

Google Cloud Filestore to zarządzana usługa przechowywania plików, dostosowana do aplikacji potrzebujących zarówno interfejsu systemu plików, jak i współdzielonego systemu plików dla danych. Usługa ta wyróżnia się oferowaniem wydajnych współdzielonych zasobów plikowych, które można zintegrować z różnymi usługami GCP. Jej użyteczność objawia się w scenariuszach, w których tradycyjne interfejsy i semantyka systemu plików są kluczowe, takich jak przetwarzanie mediów, zarządzanie treścią i tworzenie kopii zapasowych baz danych.

Można to porównać do każdego innego NFS współdzielonego repozytorium dokumentów - potencjalnego źródła wrażliwych informacji.

Połączenia

Podczas tworzenia instancji Filestore można wybrać sieć, w której będzie dostępna.

Ponadto, domyślnie wszyscy klienci w wybranej sieci VPC i regionie będą mogli uzyskać do niej dostęp, jednak możliwe jest ograniczenie dostępu również według adresu IP lub zakresu oraz wskazanie uprawnień dostępu (Admin, Admin Viewer, Editor, Viewer), które klient otrzyma w zależności od adresu IP.

Można również uzyskać dostęp za pomocą Połączenia z Prywatnym Dostępem do Usług:

  • Są per sieć VPC i mogą być używane w ramach wszystkich zarządzanych usług, takich jak Memorystore, Tensorflow i SQL.

  • między twoją siecią VPC a siecią należącą do Google przy użyciu połączenia VPC, umożliwiając twoim instancjom i usługom komunikację wyłącznie za pomocą wewnętrznych adresów IP.

  • Tworzą izolowany projekt dla ciebie po stronie producenta usługi, co oznacza, że żaden inny klient go nie dzieli. Będziesz obciążany tylko za zasoby, które przydzielisz.

  • Połączenie VPC zaimportuje nowe trasy do twojej VPC.

Kopie zapasowe

Możliwe jest tworzenie kopii zapasowych współdzielonych plików. Mogą być one później przywracane w oryginalnej nowej instancji Fileshare lub w nowych.

Szyfrowanie

Domyślnie używany będzie klucz szyfrowania zarządzany przez Google do szyfrowania danych, ale możliwe jest wybranie klucza szyfrowania zarządzanego przez klienta (CMEK).

Enumeracja

Jeśli znajdziesz filestore dostępny w projekcie, możesz zamontować go z poziomu swojej skompromitowanej instancji Compute. Użyj następującego polecenia, aby sprawdzić, czy jakieś istnieją.

# 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

Zauważ, że usługa filestore może znajdować się w całkowicie nowej podsieci utworzonej dla niej (w ramach Połączenia Prywatnego Dostępu do Usług, które jest VPC peer). Możesz więc potrzebować enumerować VPC peers, aby również uruchomić nmap w tych zakresach sieci.

# 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

Eskalacja Uprawnień i Po Eksploatacji

Nie ma sposobów na eskalację uprawnień w GCP bezpośrednio wykorzystując tę usługę, ale używając kilku sztuczek po eksploatacji, możliwe jest uzyskanie dostępu do danych i być może znajdziesz jakieś poświadczenia do eskalacji uprawnień:

GCP - Filestore Post Exploitation

Utrzymywanie

GCP - Filestore Persistence
Wsparcie dla HackTricks

Last updated