Az - PostgreSQL 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.
PostgreSQL Privesc
SQL Veritabanı hakkında daha fazla bilgi için kontrol edin:
Microsoft.DBforPostgreSQL/flexibleServers/read && Microsoft.DBforPostgreSQL/flexibleServers/write
Bu izinle, Azure’da PostgreSQL Flexible Server örnekleri oluşturabilir, güncelleyebilir veya silebilirsiniz. Bu, yeni sunucuların sağlanmasını, mevcut sunucu yapılandırmalarının değiştirilmesini veya sunucuların devre dışı bırakılmasını içerir.
az postgres flexible-server create \
--name <ServerName> \
--resource-group <ResourceGroupName> \
--location <Location> \
--admin-user <AdminUsername> \
--admin-password <AdminPassword> \
--sku-name <SkuName> \
--storage-size <StorageSizeInGB> \
--tier <PricingTier> \
--version <PostgreSQLVersion>
Örneğin, bu izinler PostgreSQL şifresini değiştirmeye olanak tanır, bu elbette PostgreSQL kimlik doğrulaması etkinse faydalıdır.
az postgres flexible-server update \
--resource-group <resource_group_name> \
--name <server_name> \
--admin-password <password_to_update>
Ayrıca, izinlerle atanmış kimliği etkinleştirebilir ve sunucuya bağlı yönetilen kimlikle işlem yapabilirsiniz. Azure PostgreSQL esnek sunucusunun desteklediği tüm uzantıları burada bulabilirsiniz https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions. Bu uzantıları kullanabilmek için bazı sunucu parametrelerinin (azure.extensions) değiştirilmesi gerekir. Örneğin, Azure Storage’a erişebilen bir yönetilen kimlikle burada:
Öncelikle parametreleri değiştiriyoruz ve atanmış kimliğin etkin olduğundan emin oluyoruz:
az postgres flexible-server parameter set \
--resource-group <YourResourceGroupName> \
--server-name <YourServerName> \
--name azure.extensions \
--value "AZURE_STORAGE"
az postgres flexible-server identity update \
--resource-group <YourResourceGroupName> \
--server-name <YourServerName> \
--system-assigned Enabled
CREATE EXTENSION IF NOT EXISTS azure_storage;
CREATE EXTERNAL DATA SOURCE ManagedIdentity
SELECT azure_storage.account_add('<storage-account>', '<storage-key>');
SELECT *
FROM azure_storage.blob_get(
'<storage-account>',
'<container>',
'message.txt',
decoder := 'text'
) AS t(content text)
LIMIT 1;
Ayrıca, özel bir uç noktadan erişmek istemiyorsanız, genel erişimin etkinleştirilmesi gereklidir, bunu etkinleştirmek için:
az postgres flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
Microsoft.DBforPostgreSQL/flexibleServers/read, Microsoft.DBforPostgreSQL/flexibleServers/write, Microsoft.DBforPostgreSQL/flexibleServers/backups/read, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
Bu izinlerle, bir sunucuyu yedekten geri yükleyebilirsiniz:
az postgres flexible-server restore \
--resource-group <RESOURCE_GROUP> \
--name <NEW_SERVER_NAME> \
--source-server <SOURCE_SERVER_NAME> \
--restore-time "<ISO8601_TIMESTAMP>" \
--yes
Microsoft.DBforPostgreSQL/flexibleServers/read, Microsoft.DBforPostgreSQL/flexibleServers/write, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action, Microsoft.DBforPostgreSQL/flexibleServers/administrators/write && Microsoft.DBforPostgreSQL/flexibleServers/administrators/read
Bu izinle, bir PostgreSQL Flexible Server için Azure Active Directory (AD) yöneticilerini yapılandırabilirsiniz. Bu, kendinizi veya başka bir hesabı AD yöneticisi olarak ayarlayarak PostgreSQL sunucusu üzerinde tam yönetim kontrolü sağlamak için istismar edilebilir. Mevcut bir ilkenin güncellenmesi henüz desteklenmiyor, bu nedenle bir tane oluşturulmuşsa önce silmeniz gerekir.
Flexible-server’ın kullanmak için atanmış yönetilen kimliklere sahip olması önemlidir.
az postgres flexible-server ad-admin create \
--resource-group <ResourceGroupName> \
--server-name <ServerName> \
--display-name <ADAdminDisplayName> \
--identity <IdentityNameOrID> \
--object-id <ObjectID>
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

