Translated ['src/pentesting-cloud/azure-security/az-services/az-cosmosDB

This commit is contained in:
Translator
2025-01-22 09:53:26 +00:00
parent 59335c9c21
commit 07070af795

View File

@@ -17,14 +17,14 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).p
## Azure CosmosDB
**Azure Cosmos DB** ni **hifadhidata ya NoSQL, ya uhusiano, na ya vector** inayosimamiwa kikamilifu inayo toa nyakati za majibu za milisekunde moja, upanuzi wa kiotomatiki, na upatikanaji unaoungwa mkono na SLA kwa usalama wa kiwango cha biashara. Inaruhusu maendeleo ya programu kwa haraka kupitia usambazaji wa data wa mikoa mingi, APIs za chanzo wazi, SDKs za lugha maarufu, na vipengele vya hifadhidata vya AI kama msaada wa vector uliojumuishwa na uunganisho wa Azure AI usio na mshono.
**Azure Cosmos DB** ni **hifadhidata ya NoSQL, ya uhusiano, na ya vector** inayosimamiwa kikamilifu inayo toa nyakati za majibu za milisekunde moja, upanuzi wa kiotomatiki, na upatikanaji unaoungwa mkono na SLA kwa usalama wa kiwango cha biashara. Inaruhusu maendeleo ya programu kwa haraka kupitia usambazaji wa data wa mikoa mingi, APIs za chanzo wazi, SDKs za lugha maarufu, na vipengele vya hifadhidata vya AI kama vile msaada wa vector uliojumuishwa na uunganisho wa Azure AI usio na mshono.
Azure Cosmos DB inatoa APIs nyingi za hifadhidata ili kuunda mfano wa data halisi kwa kutumia nyaraka, uhusiano, modeli za data za funguo-thamani, grafu, na familia za safu, ambapo hizi APIs ni NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin na Table.
Moja ya vipengele muhimu vya CosmosDB ni Akaunti ya Azure Cosmos. **Akaunti ya Azure Cosmos**, inafanya kazi kama lango la kuingia kwenye hifadhidata. Akaunti inamua mipangilio muhimu kama usambazaji wa kimataifa, viwango vya usawa, na API maalum itakayotumika, kama NoSQL. Kupitia akaunti, unaweza kuunda upya wa kimataifa ili kuhakikisha data inapatikana katika mikoa mingi kwa ufikiaji wa chini wa latency. Zaidi ya hayo, unaweza kuchagua kiwango cha usawa kinacholingana kati ya utendaji na usahihi wa data, ikiwa na chaguzi zinazotoka kwa Usawa Imara hadi Usawa wa Hatimaye.
Moja ya vipengele muhimu vya CosmosDB ni Akaunti ya Azure Cosmos. **Akaunti ya Azure Cosmos**, inafanya kazi kama lango la kuingia kwenye hifadhidata. Akaunti inamua mipangilio muhimu kama vile usambazaji wa kimataifa, viwango vya usawa, na API maalum itakayotumika, kama vile NoSQL. Kupitia akaunti, unaweza kuunda upya wa kimataifa ili kuhakikisha data inapatikana katika mikoa mingi kwa ufikiaji wa chini wa latency. Zaidi ya hayo, unaweza kuchagua kiwango cha usawa kinacholingana kati ya utendaji na usahihi wa data, ikiwa na chaguzi zinazotofautiana kutoka kwa Usawa Imara hadi Usawa wa Hatimaye.
### NoSQL (sql)
API ya Azure Cosmos DB NoSQL ni API inayotegemea nyaraka inayotumia JSON kama muundo wake wa data. Inatoa sintaksia ya kuhoji inayofanana na SQL kwa kuhoji vitu vya JSON, na kuifanya iweze kutumika kwa kazi na data iliyopangwa na isiyo na mpangilio. Kituo cha huduma ni:
API ya NoSQL ya Azure Cosmos DB ni API inayotumia nyaraka ambayo inatumia JSON kama muundo wake wa data. Inatoa sintaksia ya kuhoji inayofanana na SQL kwa kuhoji vitu vya JSON, na kuifanya iweze kutumika kwa kazi na data iliyopangwa na isiyo na mpangilio. Kituo cha huduma ni:
{% code overflow="wrap" %}
```bash
@@ -36,7 +36,7 @@ https://<Account-Name>.documents.azure.com:443/
Katika akaunti, unaweza kuunda moja au zaidi ya hifadhidata, ambazo hutumikia kama makundi ya mantiki ya kontena. Hifadhidata inafanya kazi kama mpaka wa usimamizi wa rasilimali na ruhusa za mtumiaji. Hifadhidata zinaweza kushiriki kupitia uwezo wa kupangwa kati ya kontena zao au kugawa uwezo maalum kwa kontena binafsi.
#### Containers
Kitengo cha msingi cha uhifadhi wa data ni kontena, ambacho kinashikilia hati za JSON na kimepangwa kiotomatiki kwa ajili ya uchunguzi mzuri. Kontena zinaweza kupanuliwa kwa urahisi na kusambazwa kati ya sehemu, ambazo zinatolewa na ufunguo wa sehemu ulioelezwa na mtumiaji. Ufunguzi wa sehemu ni muhimu kwa kuhakikisha utendaji bora na usambazaji sawa wa data. Kwa mfano, kontena inaweza kuhifadhi data za wateja, huku "customerId" ikiwa kama ufunguo wa sehemu.
Kitengo cha msingi cha uhifadhi wa data ni kontena, ambacho kinashikilia hati za JSON na kimepangwa kiotomatiki kwa ajili ya uchunguzi wa ufanisi. Kontena zinaweza kupanuliwa kwa urahisi na kusambazwa kati ya sehemu, ambazo zinatolewa na ufunguo wa sehemu ulioelezwa na mtumiaji. Ufunguo wa sehemu ni muhimu kwa kuhakikisha utendaji bora na usambazaji sawa wa data. Kwa mfano, kontena inaweza kuhifadhi data za wateja, huku "customerId" ikiwa kama ufunguo wa sehemu.
#### Enumeration
@@ -131,7 +131,7 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "<ResourceGroupName>" -A
#### Muunganisho
Ili kuungana, maktaba ya azure-cosmosDB (pip install azure-cosmos) inahitajika. Zaidi ya hayo, mwisho wa huduma na ufunguo ni vipengele muhimu ili kufanya muunganisho.
Ili kuungana na azure-cosmosDB (pip install azure-cosmos) maktaba inahitajika. Zaidi ya hayo, mwisho wa huduma na ufunguo ni vipengele muhimu ili kufanya muunganisho.
{% code overflow="wrap" %}
```python
from azure.cosmos import CosmosClient, PartitionKey
@@ -203,7 +203,7 @@ print("Document inserted.")
{% endcode %}
### MongoDB
API ya MongoDB NoSQL ni API inayotegemea hati ambayo inatumia BSON (Binary JSON) kama muundo wake wa data. Inatoa lugha ya kuuliza yenye uwezo wa kujumlisha, na kuifanya iweze kutumika kwa kazi na data iliyopangwa, nusu iliyopangwa, na isiyo na muundo. Kituo cha huduma kwa kawaida kinafuata muundo huu:
API ya MongoDB NoSQL ni API inayotumia hati ambayo inatumia BSON (Binary JSON) kama muundo wake wa data. Inatoa lugha ya kuuliza yenye uwezo wa kujumlisha, na kuifanya iweze kutumika kwa kazi na data iliyopangwa, nusu iliyopangwa, na isiyo na muundo. Kituo cha huduma kwa kawaida kinafuata muundo huu:
{% code overflow="wrap" %}
```bash
@@ -212,7 +212,7 @@ mongodb://<hostname>:<port>/<database>
{% endcode %}
#### Hifadhidata
Katika MongoDB, unaweza kuunda hifadhidata moja au zaidi ndani ya mfano. Kila hifadhidata inatumika kama kundi la kimantiki la makusanyo na inatoa mipaka kwa ajili ya shirika na usimamizi wa rasilimali. Hifadhidata husaidia kutenganisha na kusimamia data kimantiki, kama vile kwa programu au miradi tofauti.
Katika MongoDB, unaweza kuunda hifadhidata moja au zaidi ndani ya mfano. Kila hifadhidata inatumika kama kundi la kimantiki la makusanyo na inatoa mipaka kwa ajili ya shirika na usimamizi wa rasilimali. Hifadhidata husaidia kutenganisha na kusimamia data kwa kimantiki, kama vile kwa programu au miradi tofauti.
#### Makusanyo
Kitengo cha msingi cha uhifadhi wa data katika MongoDB ni makusanyo, ambayo yanaweka hati na yameundwa kwa ajili ya uchunguzi mzuri na muundo wa skimu unaoweza kubadilishwa. Makusanyo yanaweza kupanuka kwa urahisi na yanaweza kusaidia operesheni zenye kiwango kikubwa katika nodi nyingi katika mpangilio wa kusambazwa.
@@ -237,6 +237,17 @@ az cosmosdb restorable-database-account list --account-name <AccountName>
## Show the identities for a Azure Cosmos DB database account.
az cosmosdb identity show --resource-group <ResourceGroupName> --name <AccountName>
## MongoDB
# List all MongoDB databases in a specified Azure Cosmos DB account
az cosmosdb mongodb database list --account-name <AccountName> --resource-group <ResourceGroupName>
# List all collections in a specific MongoDB database within an Azure Cosmos DB account
az cosmosdb mongodb collection list --account-name <AccountName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
# List all role definitions for MongoDB within an Azure Cosmos DB account
az cosmosdb mongodb role definition list --account-name <AccountName> --resource-group <ResourceGroupName>
# List all user definitions for MongoDB within an Azure Cosmos DB account
az cosmosdb mongodb user definition list --account-name <AccountName> --resource-group <ResourceGroupName>
```
{% endcode %}
{% endtab %}
@@ -280,7 +291,7 @@ Get-AzCosmosDBMongoDBRoleDefinition -AccountName <account-name> -ResourceGroupNa
#### Muunganisho
Hapa ndivyo nenosiri unavyoweza kuyapata kwa funguo au kwa njia iliyoelezewa katika sehemu ya privesc.
Hapa ndivyo nenosiri unavyoweza kuyapata kwa funguo au kwa njia iliyoelezwa katika sehemu ya privesc.
{% code overflow="wrap" %}
```python
from pymongo import MongoClient
@@ -323,22 +334,22 @@ print(f"Inserted document with ID: {result.inserted_id}")
* [https://learn.microsoft.com/en-us/azure/cosmos-db/introduction](https://learn.microsoft.com/en-us/azure/cosmos-db/introduction)
* [https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli)
## Kuinua Mamlaka
## Kuinua Privilege
{% content-ref url="../az-privilege-escalation/az-cosmosDB-privesc.md" %}
[az-cosmosDB-privesc.md](../az-privilege-escalation/az-cosmosDB-privesc.md)
{% endcontent-ref %}
## Baada ya Ukatili
## Baada ya Utekelezaji
{% content-ref url="../az-post-exploitation/az-cosmosDB-post-exploitation.md" %}
[az-cosmosDB-post-exploitation.md](../az-post-exploitation/az-sql-post-exploitation.md)
{% endcontent-ref %}
## Kufanya
## Kitu cha Kufanya
* Sehemu nyingine ya DB hapa, meza, cassandra, gremlin...
* Angalia baada ya ukatili "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" na ufafanuzi wa majukumu kwa sababu hapa kunaweza kuwa na privesc
* Angalia utekelezaji wa "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" na ufafanuzi wa majukumu kwa sababu hapa kunaweza kuwa na privesc
* Angalia urejeleaji
{% hint style="success" %}
@@ -351,7 +362,7 @@ Jifunze & fanya mazoezi ya GCP Hacking: <img src="../../../.gitbook/assets/image
* Angalia [**mpango wa usajili**](https://github.com/sponsors/carlospolop)!
* **Jiunge na** 💬 [**kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **fuata** sisi kwenye **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Shiriki hila za ukatili kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Shiriki hila za hacking kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
</details>
{% endhint %}