8.7 KiB
Az - CosmosDB Post Exploitation
{{#include ../../../banners/hacktricks-training.md}}
CosmosDB Post Exploitation
Vir meer inligting oor SQL Database, kyk:
{% content-ref url="../az-services/az-cosmosDB.md" %} az-cosmosDB.md {% endcontent-ref %}
"Microsoft.DocumentDB/databaseAccounts/read" && "Microsoft.DocumentDB/databaseAccounts/write"
Met hierdie toestemming kan jy Azure Cosmos DB-rekeninge skep of opdateer. Dit sluit die aanpassing van rekeningvlakinstellings in, die toevoeging of verwydering van streke, die verandering van konsekwentievlakke, en die inskakeling of deaktivering van funksies soos multi-streek skrywe.
{% code overflow="wrap" %}
az cosmosdb update \
--name <account_name> \
--resource-group <resource_group_name> \
--public-network-access ENABLED
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/read" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/write"
Met hierdie toestemming kan jy houers (versamelings) binne 'n SQL-databasis van 'n Azure Cosmos DB-rekening skep of wysig. Houers word gebruik om data te stoor, en veranderinge aan hulle kan die databasis se struktuur en toegangspatrone beïnvloed.
{% code overflow="wrap" %}
# Create
az cosmosdb sql container create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <database_name> \
--name <container_name> \
--partition-key-path <partition_key_path>
#Update
az cosmosdb sql container update \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <database_name> \
--name <container_name> \
--ttl 3600
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/read"
Met hierdie toestemming kan jy SQL-databasisse binne 'n Azure Cosmos DB-rekening skep of wysig. Dit stel jou in staat om die databasisstruktuur te bestuur en nuwe databasisse aan die rekening toe te voeg. Terwyl hierdie toestemming databasiscreatie moontlik maak, kan onvanpaste of ongeoorloofde gebruik lei tot onnodige hulpbronverbruik, verhoogde koste, of operasionele ondoeltreffendhede.
{% code overflow="wrap" %}
az cosmosdb sql database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/failoverPriorityChange/action"
Met hierdie toestemming kan jy die failover prioriteit van streke vir 'n Azure Cosmos DB databasisrekening verander. Hierdie aksie bepaal die volgorde waarin streke primêr word tydens 'n failover gebeurtenis. Onbehoorlike gebruik van hierdie toestemming kan die hoë beskikbaarheid van die databasis ontwrig of lei tot onbedoelde operasionele impakte.
{% code overflow="wrap" %}
az cosmosdb failover-priority-change \
--name <database_account_name> \
--resource-group <resource_group_name> \
--failover-policies <region1=priority1> <region2=priority2>
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/regenerateKey/action"
Met hierdie toestemming kan jy die primêre of sekondêre sleutels vir 'n Azure Cosmos DB-rekening hergenerer. Dit word tipies gebruik om sekuriteit te verbeter deur ou sleutels te vervang, maar dit kan toegang vir dienste of toepassings wat op die huidige sleutels staatmaak, ontwrig.
{% code overflow="wrap" %}
az cosmosdb keys regenerate \
--name <account_name> \
--resource-group <resource_group_name> \
--key-kind <primary|secondary>
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/userDefinedFunctions/read"
Met hierdie toestemming kan jy triggers binne 'n houer van 'n SQL-databasis in 'n Azure Cosmos DB-rekening skep of wysig. Triggers stel jou in staat om bediener-kant logika uit te voer in reaksie op operasies.
{% code overflow="wrap" %}
az cosmosdb sql trigger create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <sql_database_name> \
--container-name <container_name> \
--name <trigger_name> \
--body 'function trigger() { var context = getContext(); var request = context.getRequest(); request.setBody("Triggered operation!"); }' \
--type Pre \
--operation All
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read"
Met hierdie toestemming kan jy gestoor prosedures binne 'n houer van 'n SQL-databasis in 'n Azure Cosmos DB-rekening skep of wysig. Gestoor prosedures in Cosmos DB is bediener-kant JavaScript funksies wat jou toelaat om logika vir die verwerking van data of die uitvoering van operasies direk binne die databasis te enkapsuleer.
{% code overflow="wrap" %}
az cosmosdb sql stored-procedure create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <sql_database_name> \
--container-name <container_name> \
--name <stored_procedure_name> \
--body 'function sample() { return "Hello, Cosmos!"; }'
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write" && "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read"
Met hierdie toestemming kan jy triggers binne 'n houer van 'n SQL-databasis in 'n Azure Cosmos DB-rekening skep of wysig. Triggers stel jou in staat om bediener-kant logika uit te voer in reaksie op operasies soos invoegings, opdaterings of verwyderings.
{% code overflow="wrap" %}
az cosmosdb sql trigger create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <sql_database_name> \
--container-name <container_name> \
--name <trigger_name> \
--body 'function trigger() { var context = getContext(); var request = context.getRequest(); request.setBody("Triggered operation!"); }' \
--type Pre \
--operation All
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/read" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections/write"
Met hierdie toestemming kan jy versamelinge binne MongoDB-databasisse in 'n Azure Cosmos DB-rekening skep of wysig. Versamelinge word gebruik om dokumente te stoor en die struktuur en partitionering van data te definieer.
{% code overflow="wrap" %}
az cosmosdb mongodb collection create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--database-name <mongodb_database_name> \
--name <collection_name>
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/read"
Met hierdie toestemming kan jy nuwe MongoDB-databasisse binne 'n Azure Cosmos DB-rekening skep. Dit stel jou in staat om nuwe databasisse te voorsien om versamelings en dokumente te stoor en te bestuur.
{% code overflow="wrap" %}
az cosmosdb mongodb database create \
--account-name <account_name> \
--resource-group <resource_group_name> \
--name <database_name>
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions/read"
Met hierdie toestemming kan jy nuwe MongoDB rol definisies binne 'n Azure Cosmos DB rekening skep. Dit stel jou in staat om pasgemaakte rolle met spesifieke toestemmings vir MongoDB gebruikers te definieer.
{% code overflow="wrap" %}
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": []
}'
{% endcode %}
"Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read"
Met hierdie toestemming kan jy nuwe MongoDB gebruikersdefinisies binne 'n Azure Cosmos DB rekening skep. Dit stel die voorsiening van gebruikers met spesifieke rolle en toegangsvlakke tot MongoDB databasisse in staat. {% code overflow="wrap" %}
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>"
}
]
}'
{% endcode %}
{{#include ../../../banners/hacktricks-training.md}}