GCP - Cloud SQL Post Exploitation
Cloud SQL
Per ulteriori informazioni su Cloud SQL, controlla:
pageGCP - Cloud SQL Enumcloudsql.instances.update
, (cloudsql.instances.get
)
cloudsql.instances.update
, (cloudsql.instances.get
)Per connettersi ai database, è sufficiente avere accesso alla porta del database e conoscere il nome utente e la password, non ci sono requisiti IAM. Quindi, un modo semplice per ottenere l'accesso, supponendo che il database abbia un indirizzo IP pubblico, è aggiornare le reti consentite e permettere al proprio indirizzo IP di accedervi.
È anche possibile utilizzare --no-backup
per interrompere i backup del database.
Poiché questi sono i requisiti, non sono completamente sicuro di quali siano i permessi cloudsql.instances.connect
e cloudsql.instances.login
. Se lo sai, invia una PR!
cloudsql.users.list
cloudsql.users.list
Ottieni un elenco di tutti gli utenti del database:
cloudsql.users.create
cloudsql.users.create
Questa autorizzazione consente di creare un nuovo utente all'interno del database:
cloudsql.users.update
cloudsql.users.update
Questa autorizzazione consente di aggiornare l'utente all'interno del database. Ad esempio, è possibile modificare la sua password:
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
I backup potrebbero contenere vecchie informazioni sensibili, quindi è interessante controllarli. Ripristina un backup all'interno di un database:
Per farlo in modo più discreto, è consigliabile creare una nuova istanza SQL e recuperare i dati lì anziché nei database attualmente in esecuzione.
cloudsql.backupRuns.delete
cloudsql.backupRuns.delete
Questa autorizzazione consente di eliminare i backup:
cloudsql.instances.export
, storage.objects.create
cloudsql.instances.export
, storage.objects.create
Esporta un database in un Cloud Storage Bucket in modo da potervi accedere da lì:
cloudsql.instances.import
, storage.objects.get
cloudsql.instances.import
, storage.objects.get
Importa un database (sovrascrivendo) da un Cloud Storage Bucket:
cloudsql.databases.delete
cloudsql.databases.delete
Elimina un database dall'istanza del database:
Last updated