# GCP - Cloud SQL Enum

{{#include ../../../banners/hacktricks-training.md}}

## Osnovne informacije

Google Cloud SQL je upravljana usluga koja **pojednostavljuje postavljanje, održavanje i upravljanje relacionim bazama podataka** kao što su MySQL, PostgreSQL i SQL Server na Google Cloud Platform, uklanjajući potrebu za obavljanjem zadataka kao što su nabavka hardvera, postavljanje baze podataka, zakrpe i rezervne kopije.

Ključne karakteristike Google Cloud SQL uključuju:

1. **Potpuno upravljano**: Google Cloud SQL je potpuno upravljana usluga, što znači da Google obavlja zadatke održavanja baze podataka kao što su zakrpe, ažuriranja, rezervne kopije i konfiguracija.
2. **Skalabilnost**: Omogućava skaliranje kapaciteta skladišta i računarskih resursa vaše baze podataka, često bez prekida rada.
3. **Visoka dostupnost**: Nudi konfiguracije visoke dostupnosti, osiguravajući da su vaši servisi baze podataka pouzdani i da mogu izdržati kvarove zone ili instance.
4. **Bezbednost**: Pruža robusne bezbednosne karakteristike kao što su enkripcija podataka, kontrole identiteta i upravljanja pristupom (IAM), i mrežna izolacija korišćenjem privatnih IP adresa i VPC.
5. **Rezervne kopije i oporavak**: Podržava automatske rezervne kopije i oporavak u tački vremena, pomažući vam da zaštitite i obnovite svoje podatke.
6. **Integracija**: Besprekorno se integriše sa drugim Google Cloud uslugama, pružajući sveobuhvatno rešenje za izgradnju, implementaciju i upravljanje aplikacijama.
7. **Performanse**: Pruža metrike performansi i dijagnostiku za praćenje, rešavanje problema i poboljšanje performansi baze podataka.

### Lozinka

U web konzoli Cloud SQL omogućava korisniku da **postavi** **lozinku** baze podataka, postoji i opcija za generisanje, ali najvažnije, **MySQL** omogućava **ostavljanje prazne lozinke i svi omogućavaju postavljanje samo karaktera "a" kao lozinke:**

<figure><img src="../../../images/image (14).png" alt=""><figcaption></figcaption></figure>

Takođe je moguće konfigurisati politiku lozinki koja zahteva **dužinu**, **složenost**, **onemogućavanje ponovne upotrebe** i **onemogućavanje korisničkog imena u lozinci**. Sve su podrazumevano onemogućene.

**SQL Server** može biti konfiguran sa **Active Directory autentifikacijom**.

### Dostupnost zone

Baza podataka može biti **dostupna u 1 zoni ili u više**, naravno, preporučuje se da važne baze podataka budu u više zona.

### Enkripcija

Podrazumevano se koristi ključ za enkripciju koji upravlja Google, ali je takođe **moguće odabrati ključ za enkripciju koji upravlja korisnik (CMEK)**.

### Konekcije

- **Privatni IP**: Naznačite VPC mrežu i baza podataka će dobiti privatni IP unutar mreže
- **Javni IP**: Baza podataka će dobiti javni IP, ali podrazumevano niko neće moći da se poveže
- **Ovlašćene mreže**: Naznačite javne **IP opsege koji bi trebali biti dozvoljeni** da se povežu na bazu podataka
- **Privatna staza**: Ako je DB povezan u nekom VPC-u, moguće je omogućiti ovu opciju i dati **drugim GCP uslugama kao što je BigQuery pristup preko nje**

<figure><img src="../../../images/image (15).png" alt=""><figcaption></figcaption></figure>

### Zaštita podataka

- **Dnevne rezervne kopije**: Izvršava automatske dnevne rezervne kopije i naznačava broj rezervnih kopija koje želite da održavate.
- **Oporavak u tački vremena**: Omogućava vam da povratite podatke iz određene tačke u vremenu, do delova sekunde.
- **Zaštita od brisanja**: Ako je omogućena, DB neće moći da se obriše dok se ova funkcija ne onemogući.

### Enumeracija
```bash
# Get SQL instances
gcloud sql instances list
gcloud sql instances describe <inst-name> # get IPs, CACert, settings

# Get database names inside an instance (like information_schema, sys...)
gcloud sql databases list --instance <intance-name>
gcloud sql databases describe <db-name> --instance <intance-name>

# Get usernames inside the db instance
gcloud sql users list --instance <intance-name>

# Backups
gcloud sql backups list --instance <intance-name>
gcloud sql backups describe <backup-name> --instance <intance-name>
```
### Neautentifikovana Enum

{{#ref}}
../gcp-unauthenticated-enum-and-access/gcp-cloud-sql-unauthenticated-enum.md
{{#endref}}

### Post Eksploatacija

{{#ref}}
../gcp-post-exploitation/gcp-cloud-sql-post-exploitation.md
{{#endref}}

### Persistencija

{{#ref}}
../gcp-persistence/gcp-cloud-sql-persistence.md
{{#endref}}

{{#include ../../../banners/hacktricks-training.md}}
