GCP - Cloud SQL Post Exploitation

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

Cloud SQL

有关 Cloud SQL 的更多信息,请参阅:

GCP - Cloud SQL Enum

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

要连接到数据库,你只需要访问数据库端口并知道usernamepassword,不需要任何 IAM 权限。因此,一个简单的访问方法(假设数据库有公网 IP)是更新允许的网络并允许你自己的 IP 地址 访问它

允许你的 IP 并连接到数据库 ```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

此权限允许 在数据库中创建新用户:

Create database user ```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,以便您可以从那里访问:

将数据库导出到 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 导入数据库(覆盖):

从 bucket 导入数据库 ```bash # Import format SQL, you could also import formats bak and csv gcloud sql import sql ```

cloudsql.databases.delete

从数据库实例中删除数据库:

删除数据库 ```bash gcloud sql databases delete --instance ```

Tip

学习并练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并练习 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks