GCP - Filestore Enum

Support HackTricks

Información Básica

Google Cloud Filestore es un servicio de almacenamiento de archivos gestionado diseñado para aplicaciones que necesitan tanto una interfaz de sistema de archivos como un sistema de archivos compartido para datos. Este servicio se destaca al ofrecer comparticiones de archivos de alto rendimiento, que pueden integrarse con varios servicios de GCP. Su utilidad brilla en escenarios donde las interfaces y semánticas 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, por defecto, todos los clientes en la red VPC seleccionada y región podrán acceder a ella, sin embargo, es posible restringir el acceso también por dirección IP o rango e indicar el privilegio de acceso (Admin, Admin Viewer, Editor, Viewer) 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 pueden ser utilizados en todos los servicios gestionados como Memorystore, Tensorflow y SQL.

  • Son entre tu red VPC y la red propiedad de Google usando un emparejamiento de VPC, permitiendo que tus instancias y servicios se comuniquen exclusivamente usando 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 cobrará solo por los recursos que aprovisionas.

  • El emparejamiento de VPC importará nuevas rutas a tu VPC.

Copias de Seguridad

Es posible crear copias de seguridad de las comparticiones de archivos. Estas pueden ser restauradas más tarde en la instancia de Fileshare de origen o en nuevas.

Cifrado

Por defecto, se utilizará una clave de cifrado gestionada por Google para cifrar los datos, pero es posible seleccionar una clave de cifrado gestionada por el cliente (CMEK).

Enumeración

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

# 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

Tenga en cuenta que un servicio de filestore podría estar en una subred completamente nueva creada para él (dentro de una Conexión de Acceso a Servicio Privado, que es un peer de VPC). Por lo tanto, es posible que necesite enumerar peers de VPC para también ejecutar nmap sobre 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

Escalamiento de Privilegios y Post Explotación

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

Persistencia

Apoya a HackTricks

Last updated