GCP - Enumeração do Cloud SQL

Reading time: 5 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Informações Básicas

O Google Cloud SQL é um serviço gerenciado que simplifica a configuração, manutenção e administração de bancos de dados relacionais como MySQL, PostgreSQL e SQL Server na Google Cloud Platform, eliminando a necessidade de lidar com tarefas como provisionamento de hardware, configuração de banco de dados, patching e backups.

As principais características do Google Cloud SQL incluem:

  1. Totalmente Gerenciado: O Google Cloud SQL é um serviço totalmente gerenciado, o que significa que o Google cuida das tarefas de manutenção do banco de dados, como patching, atualizações, backups e configuração.
  2. Escalabilidade: Ele oferece a capacidade de escalar a capacidade de armazenamento e os recursos de computação do seu banco de dados, muitas vezes sem tempo de inatividade.
  3. Alta Disponibilidade: Oferece configurações de alta disponibilidade, garantindo que seus serviços de banco de dados sejam confiáveis e possam suportar falhas de zona ou instância.
  4. Segurança: Fornece recursos de segurança robustos, como criptografia de dados, controles de Gerenciamento de Identidade e Acesso (IAM) e isolamento de rede usando IPs privados e VPC.
  5. Backups e Recuperação: Suporta backups automáticos e recuperação em um ponto no tempo, ajudando a proteger e restaurar seus dados.
  6. Integração: Integra-se perfeitamente com outros serviços do Google Cloud, fornecendo uma solução abrangente para construir, implantar e gerenciar aplicativos.
  7. Desempenho: Oferece métricas de desempenho e diagnósticos para monitorar, solucionar problemas e melhorar o desempenho do banco de dados.

Senha

No console da web, o Cloud SQL permite que o usuário defina a senha do banco de dados, também há um recurso de geração, mas o mais importante, MySQL permite deixar uma senha em branco e todos eles permitem definir como senha apenas o caractere "a":

Também é possível configurar uma política de senha que exige comprimento, complexidade, desabilitar reutilização e desabilitar nome de usuário na senha. Todos estão desabilitados por padrão.

SQL Server pode ser configurado com Autenticação do Active Directory.

Disponibilidade de Zona

O banco de dados pode estar disponível em 1 zona ou em múltiplas, claro, é recomendado ter bancos de dados importantes em múltiplas zonas.

Criptografia

Por padrão, uma chave de criptografia gerenciada pelo Google é usada, mas também é possível selecionar uma chave de criptografia gerenciada pelo cliente (CMEK).

Conexões

  • IP Privado: Indique a rede VPC e o banco de dados receberá um IP privado dentro da rede
  • IP Público: O banco de dados receberá um IP público, mas por padrão ninguém poderá se conectar
  • Redes autorizadas: Indique os intervalos de IP públicos que devem ser permitidos para se conectar ao banco de dados
  • Caminho Privado: Se o DB estiver conectado em alguma VPC, é possível habilitar esta opção e dar acesso a outros serviços do GCP, como BigQuery, sobre ele

Proteção de Dados

  • Backups diários: Realiza backups automáticos diários e indica o número de backups que você deseja manter.
  • Recuperação em um ponto no tempo: Permite recuperar dados de um ponto específico no tempo, até uma fração de segundo.
  • Proteção contra Exclusão: Se habilitado, o DB não poderá ser excluído até que este recurso seja desabilitado.

Enumeração

bash
# Get SQL instances
gcloud sql instances list
gcloud sql instances describe <inst-name> # get IPs, CACert, settings

# Get database names inside an instance (like information_schema, sys...)
gcloud sql databases list --instance <intance-name>
gcloud sql databases describe <db-name> --instance <intance-name>

# Get usernames inside the db instance
gcloud sql users list --instance <intance-name>

# Backups
gcloud sql backups list --instance <intance-name>
gcloud sql backups describe <backup-name> --instance <intance-name>

Enum Não Autenticado

GCP - Cloud SQL Unauthenticated Enum

Pós Exploração

GCP - Cloud SQL Post Exploitation

Persistência

GCP - Cloud SQL Persistence

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks