GCP - Cloud SQL Post Exploitation
Cloud SQL
Cloud SQL에 대한 자세한 정보는 다음을 확인하세요:
pageGCP - Cloud SQL Enumcloudsql.instances.update
, (cloudsql.instances.get
)
cloudsql.instances.update
, (cloudsql.instances.get
)데이터베이스에 연결하려면 데이터베이스 포트에 대한 액세스 권한과 사용자 이름 및 비밀번호만 알면 됩니다. IAM 요구 사항은 없습니다. 따라서, 데이터베이스에 공개 IP 주소가 있는 경우, 허용된 네트워크를 업데이트하고 자신의 IP 주소를 액세스할 수 있도록 허용하는 것이 쉬운 방법입니다.
데이터베이스의 백업을 방해하기 위해 **--no-backup
**을 사용할 수도 있습니다.
이 요구 사항에 대해서는 cloudsql.instances.connect
및 cloudsql.instances.login
권한이 정확히 무엇을 의미하는지 확실하지 않습니다. 알고 계시다면 PR을 보내주세요!
cloudsql.users.list
cloudsql.users.list
데이터베이스의 모든 사용자 목록을 가져옵니다:
cloudsql.users.create
cloudsql.users.create
이 권한은 데이터베이스 내에서 새로운 사용자를 생성할 수 있게 합니다:
cloudsql.users.update
cloudsql.users.update
이 권한은 데이터베이스 내에서 사용자를 업데이트하는 것을 허용합니다. 예를 들어, 비밀번호를 변경할 수 있습니다:
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
, cloudsql.backupRuns.get
백업에는 이전의 민감한 정보가 포함될 수 있으므로 확인하는 것이 흥미로울 수 있습니다. 데이터베이스 내에서 백업을 복원하세요:
보다 은밀하게 작업하기 위해 현재 실행 중인 데이터베이스가 아닌 새로운 SQL 인스턴스를 생성하고 데이터를 복구하는 것이 좋습니다.
cloudsql.backupRuns.delete
cloudsql.backupRuns.delete
이 권한은 백업을 삭제할 수 있습니다.
cloudsql.instances.export
, storage.objects.create
cloudsql.instances.export
, storage.objects.create
데이터베이스를 내보내기하여 Cloud Storage 버킷에서 액세스할 수 있도록합니다:
cloudsql.instances.import
, storage.objects.get
cloudsql.instances.import
, storage.objects.get
클라우드 스토리지 버킷에서 데이터베이스를 덮어쓰기하여 가져옵니다:
cloudsql.databases.delete
cloudsql.databases.delete
데이터베이스를 데이터베이스 인스턴스에서 삭제합니다:
最終更新