# GCP - Cloud SQL Enum

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

## Basiese Inligting

Google Cloud SQL is 'n bestuurde diens wat **die opstelling, onderhoud en administrasie van relationele databasisse** soos MySQL, PostgreSQL en SQL Server op Google Cloud Platform vereenvoudig, wat die behoefte om take soos hardeware voorsiening, databasisopstelling, patching en rugsteun te hanteer, verwyder.

Belangrike kenmerke van Google Cloud SQL sluit in:

1. **Volledig Bestuurde**: Google Cloud SQL is 'n volledig bestuurde diens, wat beteken dat Google databasis onderhoudstake soos patching, opdaterings, rugsteun en konfigurasie hanteer.
2. **Skaalbaarheid**: Dit bied die vermoë om jou databasis se stoor kapasiteit en rekenaarhulpbronne te skaal, dikwels sonder stilstand.
3. **Hoë Beskikbaarheid**: Bied hoë beskikbaarheid konfigurasies, wat verseker dat jou databasisdienste betroubaar is en teen sone of instansiefoute kan standhoud.
4. **Sekuriteit**: Bied robuuste sekuriteitskenmerke soos data-enkripsie, Identiteit en Toegang Bestuur (IAM) kontroles, en netwerk isolasie met behulp van privaat IP's en VPC.
5. **Rugsteun en Herstel**: Ondersteun outomatiese rugsteun en punt-in-tyd herstel, wat jou help om jou data te beskerm en te herstel.
6. **Integrasie**: Integreer naatloos met ander Google Cloud dienste, wat 'n omvattende oplossing bied vir die bou, ontplooiing en bestuur van toepassings.
7. **Prestasie**: Bied prestasiemetrieke en diagnostiek om databasisprestasie te monitor, probleemoplossing te doen en te verbeter.

### Wagwoord

In die webkonsol Cloud SQL laat die gebruiker toe om die **wagwoord** van die databasis te **stel**, daar is ook 'n genereer funksie, maar die belangrikste is dat **MySQL** toelaat om **'n leë wagwoord te laat en al hulle toelaat om net die karakter "a" as wagwoord te stel:**

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

Dit is ook moontlik om 'n wagwoordbeleid te konfigureer wat **lengte**, **kompleksiteit**, **hergebruik deaktiveer** en **gebruikersnaam in wagwoord deaktiveer** vereis. Almal is standaard gedeaktiveer.

**SQL Server** kan geconfigureer word met **Aktiewe Gidsverifikasie**.

### Sone Beskikbaarheid

Die databasis kan **beskikbaar wees in 1 sone of in meerdere**, natuurlik, dit word aanbeveel om belangrike databasisse in meerdere sones te hê.

### Enkripsie

Standaard word 'n Google-bestuurde enkripsiesleutel gebruik, maar dit is ook **moontlik om 'n Kliënt-bestuurde enkripsiesleutel (CMEK)** te kies.

### Verbindinge

- **Privaat IP**: Gee die VPC-netwerk aan en die databasis sal 'n privaat IP binne die netwerk kry
- **Publieke IP**: Die databasis sal 'n publieke IP kry, maar standaard sal niemand in staat wees om te verbind nie
- **Geautoriseerde netwerke**: Gee publieke **IP-reekse wat toegelaat moet word** om met die databasis te verbind
- **Privaat Pad**: As die DB in 'n VPC gekoppel is, is dit moontlik om hierdie opsie in te skakel en **ander GCP-dienste soos BigQuery toegang daaroor te gee**

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

### Data Beskerming

- **Daaglikse rugsteun**: Voer outomatiese daaglikse rugsteun uit en gee die aantal rugsteun wat jy wil handhaaf aan.
- **Punt-in-tyd herstel**: Laat jou toe om data van 'n spesifieke tydstip te herstel, tot 'n fraksie van 'n sekonde.
- **Verwydering Beskerming**: As geaktiveer, sal die DB nie verwyder kan word nie totdat hierdie funksie gedeaktiveer is.

### Enumerasie
```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>
```
### Ongeauthentiseerde Enum

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

### Post Exploitatie

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

### Volharding

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

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