GCP - Filestore Enum

Apoya a HackTricks

Información Básica

Google Cloud Filestore es un servicio de almacenamiento de archivos administrado diseñado para aplicaciones que necesitan tanto una interfaz de sistema de archivos como un sistema de archivos compartido para datos. Este servicio destaca al ofrecer comparticiones de archivos de alto rendimiento, que se pueden integrar con varios servicios de GCP. Su utilidad brilla en escenarios donde las interfaces y semántica de sistemas de archivos tradicionales son cruciales, como en el procesamiento de medios, la gestión de contenido y la copia de seguridad de bases de datos.

Puedes pensar en esto como cualquier otro repositorio de documentos compartidos NFS - una posible fuente de información sensible.

Conexiones

Al crear una instancia de Filestore es posible seleccionar la red donde va a ser accesible.

Además, de forma predeterminada todos los clientes en la red VPC y región seleccionadas podrán acceder a él, sin embargo, es posible restringir el acceso también por dirección IP o rango e indicar el privilegio de acceso (Administrador, Administrador de visualización, Editor, Visualizador) que el cliente va a obtener dependiendo de la dirección IP.

También puede ser accesible a través de una Conexión de Acceso a Servicio Privado:

  • Son por red VPC y se pueden utilizar en todos los servicios administrados como Memorystore, Tensorflow y SQL.

  • Son entre tu red VPC y la red propiedad de Google utilizando un VPC peering, permitiendo que tus instancias y servicios se comuniquen exclusivamente utilizando direcciones IP internas.

  • Crea un proyecto aislado para ti en el lado del productor de servicios, lo que significa que ningún otro cliente lo comparte. Se te facturará solo por los recursos que provisiones.

  • El VPC peering importará nuevas rutas a tu VPC

Copias de Seguridad

Es posible crear copias de seguridad de las comparticiones de archivos. Estas pueden ser luego restauradas en el origen de la nueva instancia de Fileshare o en nuevas.

Encriptación

Por defecto se utilizará una clave de encriptación administrada por Google para encriptar los datos, pero es posible seleccionar una clave de encriptación administrada por el cliente (CMEK).

Enumeración

Si encuentras un filestore disponible en el proyecto, puedes montarlo desde tu Instancia de Cómputo comprometida. Utiliza el siguiente comando para ver si existe alguno.

# 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

Ten en cuenta que un servicio de almacenamiento de archivos podría estar en una subred completamente nueva creada para él (dentro de una Conexión de Acceso a Servicios Privados, que es un VPC peer). Por lo tanto, es posible que necesites enumerar los VPC peers para también ejecutar nmap en esos rangos de red.

# 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

Escalada de Privilegios y Post Explotación

No hay formas de escalar privilegios en GCP abusando directamente de este servicio, pero utilizando algunos trucos de Post Explotación es posible acceder a los datos y tal vez puedas encontrar algunas credenciales para escalar privilegios:

GCP - Filestore Post Exploitation

Persistencia

GCP - Filestore Persistence
Apoya a HackTricks

Last updated