# 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**. ```bash # 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 # 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: ```bash gcloud sql users list --instance ``` ### `cloudsql.users.create` Hierdie toestemming laat toe om **nuwe gebruiker binne** die databasis te **skep**: ```bash gcloud sql users create --instance --password ``` ### `cloudsql.users.update` Hierdie toestemming laat toe om **gebruikers binne** die databasis te **opdateer**. Byvoorbeeld, jy kan sy wagwoord verander: ```bash gcloud sql users set-password --instance --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: ```bash gcloud sql backups restore --restore-instance ``` 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: ```bash gcloud sql backups delete --instance ``` ### `cloudsql.instances.export`, `storage.objects.create` **Eksporteer 'n databasis** na 'n Cloud Storage-bucket sodat jy dit van daar kan toegang. ```bash # Export sql format, it could also be csv and bak gcloud sql export sql --database ``` ### `cloudsql.instances.import`, `storage.objects.get` **Importeer 'n databasis** (oorskryf) vanaf 'n Cloud Storage-bucket: ```bash # Import format SQL, you could also import formats bak and csv gcloud sql import sql ``` ### `cloudsql.databases.delete` Verwyder 'n databasis van die db-instantie: ```bash gcloud sql databases delete --instance ``` {{#include ../../../banners/hacktricks-training.md}}