GCP - Filestore Enum

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Informações Básicas

O Google Cloud Filestore é um serviço de armazenamento de arquivos gerenciado projetado para aplicativos que precisam de uma interface de sistema de arquivos e um sistema de arquivos compartilhado para dados. Este serviço se destaca por oferecer compartilhamento 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 sistema de arquivos tradicionais são cruciais, como no 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 fonte potencial de informações sensíveis.

Conexões

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

Além disso, por padrão, todos os clientes na rede VPC e região selecionadas 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 (Administrador, Visualizador de Administrador, Editor, Visualizador) que o cliente vai obter dependendo do endereço IP.

Também pode ser acessível por meio de uma Conexão de Acesso a Serviços Privados:

  • São por rede VPC e podem ser usados 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 VPC peering, permitindo que suas instâncias e serviços se comuniquem exclusivamente usando endereços IP internos.

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

  • O VPC peering importará novas rotas para sua VPC

Backups

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

Criptografia

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).

Enumeração

Se você encontrar um filestore disponível no projeto, você pode montá-lo de dentro da 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

Note que um serviço de armazenamento de arquivos pode estar em uma sub-rede completamente nova criada para ele (dentro de uma Conexão de Acesso a Serviços Privados, que é um peer VPC). Portanto, pode ser necessário enumerar os peers VPC para também executar o nmap nessas faixas 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

Escalação de Privilégios e 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 acessar os dados e talvez você consiga encontrar algumas credenciais para escalar privilégios:

Persistência

Última actualización