GCP - Cloud SQL Post Exploitation
Cloud SQL
Pour plus d'informations sur Cloud SQL, consultez :
pageGCP - Cloud SQL Enumcloudsql.instances.update
, ( cloudsql.instances.get
)
cloudsql.instances.update
, ( cloudsql.instances.get
)Pour vous 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 pas d'exigences IAM. Ainsi, un moyen facile d'obtenir l'accès, en supposant que la base de données a une adresse IP publique, est de mettre à jour les réseaux autorisés et d'autoriser votre propre adresse IP à y accéder.
Il est également possible d'utiliser --no-backup
pour perturber les sauvegardes de la base de données.
Étant donné que ce sont les exigences, je ne suis pas complètement sûr à quoi servent les autorisations cloudsql.instances.connect
et cloudsql.instances.login
. Si vous le savez, envoyez une PR!
cloudsql.users.list
cloudsql.users.list
Obtenez une liste de tous les utilisateurs de la base de données:
cloudsql.users.create
cloudsql.users.create
Cette permission permet de créer un nouvel utilisateur à l'intérieur de la base de données :
cloudsql.users.update
cloudsql.users.update
Cette permission permet de mettre à jour un utilisateur à l'intérieur de la base de données. Par exemple, vous pourriez changer son mot de passe :
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
Les sauvegardes peuvent contenir d'anciennes informations sensibles, il est donc intéressant de les vérifier. Restaurer une sauvegarde à l'intérieur d'une base de données:
Pour le faire de manière plus discrète, il est recommandé de créer une nouvelle instance SQL et de récupérer les données là-bas au lieu de le faire dans les bases de données actuellement en cours d'exécution.
cloudsql.backupRuns.delete
cloudsql.backupRuns.delete
Cette autorisation permet de supprimer les sauvegardes :
cloudsql.instances.export
, storage.objects.create
cloudsql.instances.export
, storage.objects.create
Exporter une base de données vers un Bucket Cloud Storage pour y accéder à partir de là :
cloudsql.instances.import
, storage.objects.get
cloudsql.instances.import
, storage.objects.get
Importer une base de données (écraser) à partir d'un Bucket Cloud Storage :
cloudsql.databases.delete
cloudsql.databases.delete
Supprimer une base de données de l'instance de base de données :
Dernière mise à jour