GCP - Filestore Enum

Support HackTricks

Grundinformationen

Google Cloud Filestore ist ein verwalteter Dateispeicherdienst, der für Anwendungen entwickelt wurde, die sowohl eine Dateisystemschnittstelle als auch ein gemeinsames Dateisystem für Daten benötigen. Dieser Dienst zeichnet sich durch hochleistungsfähige Dateifreigaben aus, die mit verschiedenen GCP-Diensten integriert werden können. Seine Nützlichkeit zeigt sich in Szenarien, in denen traditionelle Dateisystemschnittstellen und -semantiken entscheidend sind, wie z.B. in der Medienverarbeitung, im Content-Management und bei der Sicherung von Datenbanken.

Man kann sich das wie ein anderes NFS gemeinsames Dokumentenrepository vorstellen - eine potenzielle Quelle sensibler Informationen.

Verbindungen

Beim Erstellen einer Filestore-Instanz ist es möglich, das Netzwerk auszuwählen, in dem es zugänglich sein wird.

Darüber hinaus können standardmäßig alle Clients im ausgewählten VPC-Netzwerk und -Region darauf zugreifen, jedoch ist es möglich, den Zugriff auch nach IP-Adresse oder -Bereich zu beschränken und die Zugriffsprivilegien (Admin, Admin Viewer, Editor, Viewer) anzugeben, die der Client je nach IP-Adresse erhält.

Es kann auch über eine Private Service Access Connection zugänglich sein:

  • Ist pro VPC-Netzwerk und kann über alle verwalteten Dienste wie Memorystore, Tensorflow und SQL verwendet werden.

  • Ist zwischen deinem VPC-Netzwerk und einem von Google betriebenen Netzwerk unter Verwendung eines VPC-Peerings, wodurch deine Instanzen und Dienste ausschließlich über interne IP-Adressen kommunizieren können.

  • Erstellt ein isoliertes Projekt für dich auf der Dienstanbieter-Seite, was bedeutet, dass keine anderen Kunden es teilen. Du wirst nur für die Ressourcen, die du bereitstellst, in Rechnung gestellt.

  • Das VPC-Peering importiert neue Routen in dein VPC.

Backups

Es ist möglich, Backups der Dateifreigaben zu erstellen. Diese können später im Ursprungs-Dateifreigabe-Instanz oder in neuen wiederhergestellt werden.

Verschlüsselung

Standardmäßig wird ein von Google verwalteter Verschlüsselungsschlüssel verwendet, um die Daten zu verschlüsseln, aber es ist möglich, einen vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) auszuwählen.

Enumeration

Wenn du einen Filestore im Projekt findest, kannst du ihn von deiner kompromittierten Compute-Instanz aus einbinden. Verwende den folgenden Befehl, um zu sehen, ob welche existieren.

# 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

Beachten Sie, dass ein Filestore-Dienst sich in einem völlig neuen Subnetz befinden kann, das dafür erstellt wurde (innerhalb einer Private Service Access Connection, die ein VPC-Peer ist). Sie müssen möglicherweise auch VPC-Peers enumerieren, um nmap über diese Netzwerkbereiche auszuführen.

# 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

Privilegieneskalation & Nach der Ausnutzung

Es gibt keine Möglichkeiten, Privilegien in GCP direkt durch den Missbrauch dieses Dienstes zu eskalieren, aber mit einigen Nach der Ausnutzung Tricks ist es möglich, auf die Daten zuzugreifen und vielleicht finden Sie einige Anmeldeinformationen, um Privilegien zu eskalieren:

GCP - Filestore Post Exploitation

Persistenz

GCP - Filestore Persistence
Unterstützen Sie HackTricks

Last updated