GCP - Cloud SQL Enum
Reading time: 7 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
基本情報
Google Cloud SQLは、MySQL、PostgreSQL、SQL ServerなどのリレーショナルデータベースをGoogle Cloud Platform上で設定、維持、管理することを簡素化するマネージドサービスであり、ハードウェアのプロビジョニング、データベースのセットアップ、パッチ適用、バックアップなどのタスクを処理する必要がなくなります。
Google Cloud SQLの主な機能は以下の通りです:
- 完全管理:Google Cloud SQLは完全管理サービスであり、Googleがパッチ適用、更新、バックアップ、構成などのデータベースメンテナンスタスクを処理します。
- スケーラビリティ:データベースのストレージ容量と計算リソースをスケールアップする能力を提供し、しばしばダウンタイムなしで実現します。
- 高可用性:高可用性構成を提供し、データベースサービスが信頼性が高く、ゾーンやインスタンスの障害に耐えられるようにします。
- セキュリティ:データ暗号化、アイデンティティとアクセス管理(IAM)制御、プライベートIPとVPCを使用したネットワーク隔離などの堅牢なセキュリティ機能を提供します。
- バックアップと復元:自動バックアップと時点復元をサポートし、データを保護し復元するのに役立ちます。
- 統合:他のGoogle Cloudサービスとシームレスに統合され、アプリケーションの構築、展開、管理のための包括的なソリューションを提供します。
- パフォーマンス:データベースのパフォーマンスを監視、トラブルシューティング、改善するためのパフォーマンスメトリクスと診断を提供します。
パスワード
ウェブコンソールではCloud SQLがユーザーにデータベースのパスワードを設定することを許可しており、生成機能もありますが、最も重要なのは、MySQLが空のパスワードを許可し、すべてのデータベースがパスワードとして文字"a"のみを設定することを許可することです:
.png)
長さ、複雑さ、再利用の無効化、およびパスワードにユーザー名を使用しないことを要求するパスワードポリシーを構成することも可能です。すべての設定はデフォルトで無効になっています。
SQL ServerはActive Directory Authenticationで構成できます。
ゾーンの可用性
データベースは1つのゾーンまたは複数のゾーンで利用可能であり、重要なデータベースは複数のゾーンに配置することが推奨されます。
暗号化
デフォルトではGoogle管理の暗号化キーが使用されますが、顧客管理の暗号化キー(CMEK)を選択することも可能です。
接続
- プライベートIP:VPCネットワークを指定すると、データベースはネットワーク内にプライベートIPを取得します。
- パブリックIP:データベースはパブリックIPを取得しますが、デフォルトでは誰も接続できません。
- 承認されたネットワーク:データベースに接続を許可すべきパブリックIP範囲を指定します。
- プライベートパス:DBがVPCに接続されている場合、このオプションを有効にしてBigQueryなどの他のGCPサービスにアクセスを提供することが可能です。
.png)
データ保護
- 毎日のバックアップ:自動的に毎日のバックアップを実行し、維持したいバックアップの数を指定します。
- 時点復元:特定の時点からデータを復元することを可能にし、秒の一部まで対応します。
- 削除保護:有効にすると、この機能が無効になるまでDBを削除できなくなります。
列挙
# Get SQL instances
gcloud sql instances list
gcloud sql instances describe <inst-name> # get IPs, CACert, settings
# Get database names inside an instance (like information_schema, sys...)
gcloud sql databases list --instance <intance-name>
gcloud sql databases describe <db-name> --instance <intance-name>
# Get usernames inside the db instance
gcloud sql users list --instance <intance-name>
# Backups
gcloud sql backups list --instance <intance-name>
gcloud sql backups describe <backup-name> --instance <intance-name>
認証されていない列挙
GCP - Cloud SQL Unauthenticated Enum
ポストエクスプロイテーション
GCP - Cloud SQL Post Exploitation
永続性
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。