GCP - Filestore Enum

Support HackTricks

Basic Information

O Google Cloud Filestore é um serviço de armazenamento de arquivos gerenciado voltado para aplicações que precisam tanto de uma interface de sistema de arquivos quanto de um sistema de arquivos compartilhado para dados. Este serviço se destaca ao oferecer compartilhamentos de arquivos de alto desempenho, que podem ser integrados com vários serviços do GCP. Sua utilidade brilha em cenários onde interfaces e semânticas de sistemas de arquivos tradicionais são cruciais, como em processamento de mídia, gerenciamento de conteúdo e backup de bancos de dados.

Você pode pensar nisso como qualquer outro repositório de documentos compartilhados NFS - uma potencial fonte de informações sensíveis.

Connections

Ao criar uma instância do Filestore, é possível selecionar a rede onde ela estará acessível.

Além disso, por padrão, todos os clientes na rede VPC selecionada e região poderão acessá-la, no entanto, é possível restringir o acesso também por endereço IP ou intervalo e indicar o privilégio de acesso (Admin, Admin Viewer, Editor, Viewer) que o usuário cliente receberá dependendo do endereço IP.

Ela também pode ser acessada via uma Conexão de Acesso a Serviço Privado:

  • São por rede VPC e podem ser usadas em todos os serviços gerenciados, como Memorystore, Tensorflow e SQL.

  • São entre sua rede VPC e a rede de propriedade do Google usando um emparelhamento de VPC, permitindo que suas instâncias e serviços se comuniquem exclusivamente usando endereços IP internos.

  • Crie um projeto isolado para você no lado do produtor de serviços, significando que nenhum outro cliente o compartilha. Você será cobrado apenas pelos recursos que provisionar.

  • O emparelhamento de VPC importará novas rotas para sua VPC.

Backups

É possível criar backups dos compartilhamentos de arquivos. Estes podem ser posteriormente restaurados na instância de Fileshare de origem ou em novas.

Encryption

Por padrão, uma chave de criptografia gerenciada pelo Google será usada para criptografar os dados, mas é possível selecionar uma chave de criptografia gerenciada pelo cliente (CMEK).

Enumeration

Se você encontrar um filestore disponível no projeto, pode montá-lo a partir de sua Instância de Computação comprometida. Use o seguinte comando para ver se algum existe.

# 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

Observe que um serviço de filestore pode estar em uma sub-rede completamente nova criada para ele (dentro de uma Conexão de Acesso a Serviço Privado, que é um peer VPC). Portanto, você pode precisar enumerar peers VPC para também executar nmap sobre esses intervalos de rede.

# 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 Privilégios & Pós Exploração

Não há maneiras de escalar privilégios no GCP abusando diretamente deste serviço, mas usando alguns truques de Pós Exploração é possível obter acesso aos dados e talvez você consiga encontrar algumas credenciais para escalar privilégios:

GCP - Filestore Post Exploitation

Persistência

GCP - Filestore Persistence
Support HackTricks

Last updated