From d4bc73c86eb7133190e25b3847950fe44f0432a0 Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 22 Feb 2025 12:48:38 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az --- .../az-logic-apps-post-exploitation.md | 53 ++++++++- .../az-logic-apps-privesc.md | 59 ++++++++++ .../azure-security/az-services/az-cosmosDB.md | 83 ++++++++++---- .../az-services/az-logic-apps.md | 107 ++++++++++++++---- 4 files changed, 250 insertions(+), 52 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md index 0af28f1f6..d933ff97d 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-logic-apps-post-exploitation.md @@ -10,7 +10,7 @@ Kwa maelezo zaidi kuhusu logic apps angalia: {{#endref}} ### `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` -Kwa ruhusa hizi, unaweza kubadilisha Logic App workflows na kusimamia vitambulisho vyao. Kwa hasa, unaweza kupewa au kuondoa vitambulisho vilivyotolewa na mfumo na vitambulisho vilivyotolewa na mtumiaji kwa workflows, ambayo inaruhusu Logic App kuthibitisha na kufikia rasilimali nyingine za Azure bila akidi maalum. +Kwa ruhusa hizi, unaweza kubadilisha Logic App workflows na kusimamia vitambulisho vyao. Kwa hasa, unaweza kupewa au kuondoa vitambulisho vilivyotolewa na mfumo na vitambulisho vilivyotolewa na mtumiaji kwa workflows, ambayo inaruhusu Logic App kuthibitisha na kufikia rasilimali nyingine za Azure bila akreditivu maalum. ```bash az logic workflow identity remove/assign \ --name \ @@ -18,6 +18,45 @@ az logic workflow identity remove/assign \ --system-assigned true \ --user-assigned "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" ``` +Zaidi ya hayo, kwa kutumia `Microsoft.Logic/workflows/write` unaweza kubadilisha baadhi ya mipangilio kama vile Anwani za IP zinazoruhusiwa kuingia au Siku za uhifadhi wa historia ya kukimbia: +```bash +az rest --method PUT \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Logic/workflows/?api-version=2019-05-01" \ +--headers "Content-Type=application/json" \ +--body '{ +"location": "", +"properties": { +"state": "Enabled", +"definition": { +"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", +"contentVersion": "1.0.0.0", +"parameters": {}, +"triggers": { +"": { +"type": "Request", +"kind": "Http" +} +}, +"actions": {}, +"outputs": {} +}, +"runtimeConfiguration": { +"lifetime": { +"unit": "day", +"count": +} +}, +"accessControl": { +"triggers": { +"allowedCallerIpAddresses": [] +}, +"actions": { +"allowedCallerIpAddresses": [] +} +} +} +}' +``` ### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write` Kwa ruhusa hizi, unaweza kuunda au kuboresha Logic Apps zinazohifadhiwa kwenye Mpango wa Huduma ya Programu. Hii inajumuisha kubadilisha mipangilio kama vile kuwezesha au kuzima utekelezaji wa HTTPS. ```bash @@ -43,7 +82,7 @@ az logicapp config appsettings set \ --settings "=" ``` ### `Microsoft.Logic/integrationAccounts/write` -Kwa ruhusa hii, unaweza kuunda, kusasisha, au kufuta akaunti za ushirikiano za Azure Logic Apps. Hii inajumuisha kusimamia usanidi wa kiwango cha akaunti za ushirikiano kama ramani, mifano, washirika, makubaliano, na zaidi. +Kwa ruhusa hii, unaweza kuunda, kusasisha, au kufuta akaunti za ushirikiano za Azure Logic Apps. Hii inajumuisha kusimamia mipangilio ya kiwango cha akaunti ya ushirikiano kama ramani, mifano, washirika, makubaliano, na zaidi. ```bash az logic integration-account create \ --resource-group \ @@ -111,6 +150,16 @@ az logic integration-account session create \ } } }' +``` +### `Microsoft.Logic/workflows/regenerateAccessKey/action` + +Watumiaji wenye ruhusa hii wanaweza kuunda upya funguo za ufikiaji za Logic App, na ikiwa zitatumika vibaya, zinaweza kusababisha usumbufu wa huduma. +```bash +az rest --method POST \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Logic/workflows//regenerateAccessKey?api-version=" \ +--body '{"keyType": ""}' \ +--headers "Content-Type=application/json" + ``` ### "*/delete" Kwa ruhusa hizi unaweza kufuta rasilimali zinazohusiana na Azure Logic Apps diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md index 5b49fb678..58aa32319 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-logic-apps-privesc.md @@ -32,6 +32,65 @@ az rest \ --body '{}' \ --headers "Content-Type=application/json" ``` +Zaidi ya hayo, kwa kutumia tu `Microsoft.Logic/workflows/write` unaweza kubadilisha Sera ya Uidhinishaji, ukitoa kwa mfano tenant mwingine uwezo wa kuanzisha mchakato: +```bash +az rest --method PUT \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Logic/workflows/?api-version=2016-10-01" \ +--body '{ +"location": "", +"properties": { +"definition": { +"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", +"contentVersion": "1.0.0.0", +"parameters": { +"$connections": { +"defaultValue": {}, +"type": "Object" +} +}, +"triggers": { +"": { +"type": "Request", +"kind": "Http" +} +}, +"actions": {}, +"outputs": {} +}, +"accessControl": { +"triggers": { +"openAuthenticationPolicies": { +"policies": { +"": { +"type": "AAD", +"claims": [ +{ +"name": "iss", +"value": "" +} +] +} +} +} +} +} +} +}' + +``` +### `Microsoft.Logic/workflows/triggers/listCallbackUrl/action` +Unaweza kupata URL ya kurudi ya kichocheo na kuikimbia. +```bash +az rest --method POST \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Logic/workflows//triggers//listCallbackUrl?api-version=2019-05-01" +``` +Hii itarudisha URL ya callback kama `https://prod-28.centralus.logic.azure.com:443/workflows/....`. Sasa tunaweza kuikimbia na: +```bash +curl --request POST \ +--url "https://prod-28.centralus.logic.azure.com:443/workflows//triggers//paths/invoke?api-version=2019-05-01&sp=%2Ftriggers%2F%2Frun&sv=1.0&sig=" \ +--header 'Content-Type: application/json' \ +--data '{"exampleKey": "exampleValue"}' +``` ### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`) Kwa ruhusa hizi, unaweza kupeleka, Logic App workflows kwa kutumia ZIP file deployments. Ruhusa hizi zinawezesha vitendo kama kusoma maelezo ya programu, kufikia akreditivu za uchapishaji, kuandika mabadiliko, na kuorodhesha usanidi wa programu. Pamoja na ruhusa za kuanzisha, unaweza kuboresha na kupeleka Logic App mpya na maudhui unayotaka. ```bash diff --git a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md index f1a4b2a4e..7b03c1034 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md @@ -4,30 +4,30 @@ ## Azure CosmosDB -**Azure Cosmos DB** ni **hifadhidata ya NoSQL, ya uhusiano, na ya vector** inayotolewa kwa usimamizi kamili, ikitoa nyakati za majibu za milisekunde moja, upanuzi wa kiotomatiki, na upatikanaji unaoungwa mkono na SLA pamoja na 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 usio na mshono wa Azure AI. +**Azure Cosmos DB** ni **hifadhi ya data ya NoSQL, ya uhusiano, na ya vector** inayosimamiwa kikamilifu, inatoa nyakati za majibu za milisekunde moja, upanuzi wa kiotomatiki, na upatikanaji unaoungwa mkono na SLA pamoja na 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 hifadhi ya data ya AI kama 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, funguo-thamani, grafu, na mifano ya data ya familia ya safu, ambapo APIs hizi ni NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin na Table. +Azure Cosmos DB inatoa APIs nyingi za hifadhi ya data ili kuunda mfano wa data halisi kwa kutumia nyaraka, uhusiano, funguo-thamani, grafu, na mifano ya data ya familia ya safu, ambapo APIs hizi 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 kiingilio kwa 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 ucheleweshaji. Zaidi ya hayo, unaweza kuchagua kiwango cha usawa kinacholingana kati ya utendaji na usahihi wa data, huku chaguzi zikisambaa kutoka 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 hifadhi za data. Akaunti inamua mipangilio muhimu kama vile 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 ucheleweshaji. Zaidi ya hayo, unaweza kuchagua kiwango cha usawa kinacholingana kati ya utendaji na usahihi wa data, huku chaguzi zikisambaa kutoka kwa Usawa Mkali hadi Usawa wa Hatimaye. -Azure Cosmos DB inasaidia **vitambulisho vilivyotolewa na mtumiaji** na **vitambulisho vilivyotolewa na mfumo** ambavyo vinaundwa kiotomatiki na kuunganishwa na mzunguko wa maisha wa rasilimali, kuruhusu uthibitishaji salama wa msingi wa token wakati wa kuungana na huduma nyingine—ikiwa tu huduma hizo zina usambazaji wa jukumu sahihi. Hata hivyo, Cosmos DB haina mekanizma iliyojengwa ili kuuliza moja kwa moja vyanzo vya data vya nje kama Azure Blob Storage. Tofauti na vipengele vya meza za nje za SQL Server, Cosmos DB inahitaji data kuingizwa katika vyombo vyake kwa kutumia zana za nje kama vile Azure Data Factory, Zana ya Uhamasishaji wa Data, au skripti za kawaida kabla ya kuweza kuulizwa kwa uwezo wake wa kuuliza wa asili. +Azure Cosmos DB inasaidia **vitambulisho vilivyotolewa na mtumiaji** na **vitambulisho vilivyotolewa na mfumo** ambavyo vinaundwa kiotomatiki na kuunganishwa na mzunguko wa maisha wa rasilimali. Hata hivyo, Cosmos DB haina mekanizma iliyojengwa ndani ya kutafuta moja kwa moja vyanzo vya data vya nje kama Azure Blob Storage. Tofauti na vipengele vya meza za nje za SQL Server, Cosmos DB inahitaji data kuingizwa kwenye vyombo vyake kwa kutumia zana za nje kama vile Azure Data Factory, Zana ya Uhamasishaji wa Data, au skripti za kawaida kabla ya kuweza kutafutwa kwa uwezo wake wa kutafuta wa asili. ### NoSQL -API ya NoSQL ya Azure Cosmos DB ni API inayotegemea nyaraka inayotumia JSON kama muundo wake wa data. Inatoa sintaksia ya kuuliza kama SQL kwa ajili ya kuuliza vitu vya JSON, na kuifanya iweze kutumika kwa kazi na data iliyopangwa na isiyo ya kawaida. 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 kutafuta kama SQL kwa kutafuta vitu vya JSON, na kuifanya iweze kutumika kwa kazi na data iliyopangwa na isiyo na mpangilio. Kituo cha huduma ni: ```bash https://.documents.azure.com:443/ ``` #### Databases -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. +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 kuruhusu kontena kadhaa kutumia mchanganyiko wa uwezo wa utendaji au kutoa kila kontena nguvu yake maalum. #### Containers -Kitengo cha msingi cha uhifadhi wa data ni kontena, ambacho kinashikilia hati za JSON na kimewekwa 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. 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 kinapangwa kiotomatiki kwa ajili ya uchunguzi wa ufanisi. Kontena zinaweza kupanuliwa kwa urahisi na kusambazwa katika 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. #### Key Features -**Global Distribution**: Wezesha au zima Geo-Redundancy kwa ajili ya nakala za mikoa tofauti na Multi-region Writes kwa ajili ya kuboresha upatikanaji. -**Networking & Security**: kati ya mwisho wa umma (mitandao yote/teule) au binafsi kwa ajili ya muunganisho. Muunganisho salama na usimbaji wa TLS 1.2. Inasaidia CORS (Cross-Origin Resource Sharing) kwa ajili ya ufikiaji ulio na udhibiti wa rasilimali. -**Backup & Recovery**: kutoka kwa sera za nakala za Periodic, Continuous (siku 7), au Continuous (siku 30) zenye vipindi na uhifadhi vinavyoweza kubadilishwa. -**Data Encryption**: Funguo za huduma zinazodhibitiwa na chaguo au funguo zinazodhibitiwa na mteja (CMK) kwa ajili ya usimbaji (uchaguzi wa CMK hauwezi kubadilishwa). +- **Global Distribution**: Wezesha au zima Geo-Redundancy kwa ajili ya nakala za kuvuka mikoa na Multi-region Writes kwa ajili ya kuboresha upatikanaji. +- **Networking & Security**: kati ya mwisho wa umma (mitandao yote/teule) au binafsi kwa ajili ya muunganisho. Muunganisho salama na usimbuaji wa TLS 1.2. Inasaidia CORS (Cross-Origin Resource Sharing) kwa ajili ya ufikiaji ulio na udhibiti wa rasilimali. Microsoft Defender for Cloud inaweza kuwezeshwa. Ili kufanya muunganisho unaweza kutumia funguo. +- **Backup & Recovery**: kutoka kwa sera za nakala za Kila Wakati, Endelevu (siku 7), au Endelevu (siku 30) zenye vipindi na uhifadhi vinavyoweza kubadilishwa. +- **Data Encryption**: Funguo za huduma zinazodhibitiwa na chaguo au funguo zinazodhibitiwa na mteja (CMK) kwa ajili ya usimbuaji (uchaguzi wa CMK hauwezi kubadilishwa). #### Enumeration @@ -67,6 +67,19 @@ az cosmosdb sql trigger list --account-name --container-name --container-name --database-name --resource-group + +## MongoDB (vCore) +# Install az cli extension +az extension add --name cosmosdb-preview +# List all MongoDB databases in a specified Azure Cosmos DB account +az cosmosdb mongocluster list +az cosmosdb mongocluster show --cluster-name --resource-group +# Get firewall rules +az cosmosdb mongocluster firewall rule list --cluster-name --resource-group +# Connect to in +brew install mongosh +mongosh "mongodb://:@.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retryWrites=false" --username --password + ``` {{#endtab }} @@ -116,9 +129,10 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "" -A {{#endtab }} {{#endtabs }} -#### Connection +#### 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. +Ina aina 2 za funguo, Kusoma-kandika (kamili) na Kusoma pekee. Zinatoa ufikiaji ulioonyeshwa kwa hifadhidata zote, makusanyo, na data ndani ya akaunti ya Cosmos DB. +Ili kuungana, maktaba ya azure-cosmosDB (pip install azure-cosmos) inahitajika. Zaidi ya hayo, kiunganishi na funguo ni vipengele muhimu ili kufanya muunganisho. ```python from azure.cosmos import CosmosClient, PartitionKey @@ -183,7 +197,7 @@ container.create_item(item) print("Document inserted.") ``` ### MongoDB -API ya MongoDB NoSQL ni API inayotegemea hati ambayo inatumia BSON (Binary JSON) kama muundo wake wa data. Inatoa lugha ya kuhoji yenye uwezo wa kujumlisha, na kuifanya iweze kutumika kwa kufanya kazi na data iliyopangwa, nusu iliyopangwa, na isiyo na muundo. Kituo cha huduma kwa kawaida kinafuata muundo huu: +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 kuunganisha, na kuifanya iweze kutumika kwa kufanya kazi na data iliyopangwa, nusu iliyopangwa, na isiyo na muundo. Kituo cha huduma kwa kawaida kinafuata muundo huu: ```bash mongodb://:/ ``` @@ -191,18 +205,18 @@ mongodb://:/ Katika MongoDB, unaweza kuunda moja au zaidi ya hifadhidata 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. #### Collections -Kitengo cha msingi cha uhifadhi wa data katika MongoDB ni mkusanyiko, ambao unashikilia hati na umeundwa kwa ajili ya uchunguzi wa ufanisi na muundo wa skimu unaoweza kubadilishwa. Mkusanyiko ni wa kupanuka kwa urahisi na unaweza kusaidia operesheni zenye kiwango kikubwa katika nodi nyingi katika mpangilio wa kusambazwa. +Kitengo cha msingi cha uhifadhi wa data katika MongoDB ni mkusanyiko, ambao unashikilia hati na umeundwa kwa ajili ya uchunguzi wa ufanisi 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. #### Key Features of Request unit (RU) type -**Global Distribution**: Wezesha au zima Geo-Redundancy kwa ajili ya nakala za kuvuka mikoa na Multi-region Writes kwa ajili ya kuboresha upatikanaji. -**Networking & Security**: kati ya mwisho wa umma (mitandao yote/teule) au binafsi kwa ajili ya muunganisho. Muunganisho salama na usimbuaji wa TLS 1.2. Inasaidia CORS (Cross-Origin Resource Sharing) kwa ajili ya ufikiaji ulio na udhibiti wa rasilimali. -**Backup & Recovery**: kutoka kwa sera za akiba za Kawaida, Endelevu (siku 7, bure), au Endelevu (siku 30, kulipwa) zenye vipindi na uhifadhi vinavyoweza kubadilishwa. -**Data Encryption**: Funguo za huduma zinazodhibitiwa na chaguo au funguo zinazodhibitiwa na mteja (CMK) kwa ajili ya usimbuaji (uchaguzi wa CMK hauwezi kubadilishwa). +**Global Distribution**: Wezesha au zima Geo-Redundancy kwa ajili ya ureplication wa mikoa tofauti na Multi-region Writes kwa ajili ya kuboresha upatikanaji. +**Networking & Security**: kati ya mwisho wa umma (mitandao yote/teule) au binafsi kwa ajili ya muunganisho. Muunganisho salama na usimbaji wa TLS 1.2. Inasaidia CORS (Cross-Origin Resource Sharing) kwa ajili ya ufikiaji ulio na udhibiti wa rasilimali. Ili kufanya muunganisho unaweza kutumia funguo. +**Backup & Recovery**: kutoka kwa sera za Backup za Kawaida, Endelevu (siku 7, bure), au Endelevu (siku 30, kulipwa) zenye vipindi na uhifadhi vinavyoweza kubadilishwa. +**Data Encryption**: Funguo za huduma zinazodhibitiwa na chaguo au funguo zinazodhibitiwa na mteja (CMK) kwa ajili ya usimbaji (uchaguzi wa CMK hauwezi kubadilishwa). #### Key Features of vCore cluster type -**Global Distribution**: Wezesha nakala ya kusoma katika eneo lingine la Azure kwa ajili ya upatikanaji wa juu na msaada wa kuhamasisha. Sanidi jina la nakala, eneo, na uhifadhi kwa kila shard. -**Networking & Security**: Inasaidia ufikiaji wa umma kwa IP za umma zilizotolewa na ufikiaji wa binafsi. Punguza muunganisho kwa kutumia sheria za moto—kwa chaguo-msingi, hakuna IP za umma zinazoruhusiwa. -**Encrypted Connections**: Inalazimisha usimbuaji wa TLS kwa ajili ya usafirishaji salama wa data. +**Global Distribution**: Wezesha replica ya kusoma katika eneo lingine la Azure kwa ajili ya upatikanaji wa juu na msaada wa failover. Sanidi jina la replica, eneo, na uhifadhi kwa kila shard. +**Networking & Security**: Inasaidia ufikiaji wa umma kwa IP za umma zilizotolewa na ufikiaji wa binafsi. Punguza muunganisho kwa kutumia sheria za firewall—kwa chaguo-msingi, hakuna IP za umma zinazoruhusiwa. +**Encrypted Connections**: Inalazimisha usimbaji wa TLS kwa ajili ya usafirishaji salama wa data. #### Enumeration @@ -229,10 +243,23 @@ az cosmosdb mongodb database list --account-name --resource-group # List all collections in a specific MongoDB database within an Azure Cosmos DB account az cosmosdb mongodb collection list --account-name --database-name --resource-group +#RBAC FUNCTIONALITIES MUST BE ENABLED TO USE THIS # List all role definitions for MongoDB within an Azure Cosmos DB account az cosmosdb mongodb role definition list --account-name --resource-group # List all user definitions for MongoDB within an Azure Cosmos DB account az cosmosdb mongodb user definition list --account-name --resource-group + +## MongoDB (vCore) +# Install az cli extension +az extension add --name cosmosdb-preview +# List all MongoDB databases in a specified Azure Cosmos DB account +az cosmosdb mongocluster list +az cosmosdb mongocluster show --cluster-name --resource-group +# Get firewall rules +az cosmosdb mongocluster firewall rule list --cluster-name --resource-group +# Connect to in +brew install mongosh +mongosh "mongodb://:@.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retryWrites=false" --username --password ``` {{#endtab }} @@ -273,14 +300,16 @@ Get-AzCosmosDBMongoDBRoleDefinition -AccountName -ResourceGroupNa #### Connection -Hapa neno la siri unaweza kulipata na funguo au kwa njia iliyoelezwa katika sehemu ya privesc. +Aina ya RU MongoDB katika CosmoDB ina aina 2 za funguo, Kusoma-kandika (kamili) na Kusoma pekee. Zinatoa ufikiaji ulioonyeshwa kwa hifadhidata zote, makusanyo, na data ndani ya akaunti ya Cosmos DB. +Kwa ajili ya nenosiri unaweza kutumia funguo au kwa njia iliyoelezwa katika sehemu ya privesc. ```python from pymongo import MongoClient # Updated connection string with retryWrites=false connection_string = "mongodb://.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retryWrites=false" -# Create the client +# Create the client. The password and username is a custom one if the type is "vCore cluster". +# In case that is a Request unit (RU) the username is the account name and the password is the key of the cosomosDB account. client = MongoClient(connection_string, username="", password="") # Access the database @@ -306,6 +335,10 @@ document = { result = collection.insert_one(document) print(f"Inserted document with ID: {result.inserted_id}") ``` +Au kutumia mtumiaji ndani ya mongo: +```bash +mongosh "mongodb://:@.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false" +``` ## References - [https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api](https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api) @@ -328,7 +361,7 @@ print(f"Inserted document with ID: {result.inserted_id}") ## ToDo * Sehemu nyingine za DB hapa, meza, cassandra, gremlin... -* Angalia post exploitation "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" na ufafanuzi wa majukumu kwa sababu hapa kunaweza kuwa na privesc +* Angalia post exploitation "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" na ufafanuzi wa majukumu kwa sababu hapa huenda kuna privesc * Angalia urejeleaji {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md index cb398bc74..ac946392a 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md +++ b/src/pentesting-cloud/azure-security/az-services/az-logic-apps.md @@ -4,23 +4,20 @@ ## Basic Information -Azure Logic Apps ni huduma ya msingi ya wingu inayotolewa na Microsoft Azure ambayo inawawezesha waendelezaji **kuunda na kuendesha michakato ya kazi inayounganisha huduma mbalimbali**, vyanzo vya data, na programu. Michakato hii ya kazi imeundwa ili **kujiendesha kwa mchakato wa biashara**, kupanga kazi, na kufanya uunganisho wa data kati ya majukwaa tofauti. +Azure Logic Apps ni huduma ya msingi ya wingu inayotolewa na Microsoft Azure ambayo inawawezesha waendelezaji **kuunda na kuendesha mifumo ya kazi inayounganisha huduma mbalimbali**, vyanzo vya data, na programu. Mifumo hii ya kazi imeundwa ili **kuandaa michakato ya biashara**, kupanga kazi, na kufanya uunganisho wa data kati ya majukwaa tofauti. -Logic Apps inatoa mbunifu wa kuona kuunda michakato ya kazi na **mifungamano mingi iliyojengwa awali**, ambayo inafanya iwe rahisi kuungana na kuingiliana na huduma mbalimbali, kama vile Office 365, Dynamics CRM, Salesforce, na nyingine nyingi. Unaweza pia kuunda mifungamano ya kawaida kwa mahitaji yako maalum. +Logic Apps inatoa mbunifu wa kuona kuunda mifumo ya kazi na **mifungamano mingi iliyojengwa awali**, ambayo inafanya iwe rahisi kuungana na kuingiliana na huduma mbalimbali, kama vile Office 365, Dynamics CRM, Salesforce, na nyingine nyingi. Unaweza pia kuunda mifungamano ya kawaida kwa mahitaji yako maalum. -Unapounda Logic App, lazima uunde au uunganishe akaunti ya kuhifadhi ya nje ambayo inahifadhi hali ya mchakato wa kazi, historia ya uendeshaji, na vitu. Hifadhi hii inaweza kuundwa na mipangilio ya uchunguzi kwa ajili ya ufuatiliaji na inaweza kulindwa kwa vizuizi vya ufikiaji wa mtandao au kuunganishwa kwenye mtandao wa virtual ili kudhibiti trafiki ya kuingia na kutoka. - -### Managed Identities -Logic Apps ina **utambulisho wa usimamizi uliopewa mfumo** unaohusishwa na mzunguko wake wa maisha. Wakati umewezeshwa, inapata ID ya Kiobjekti (principal) ya kipekee ambayo inaweza kutumika na Azure RBAC kutoa ruhusa zinazohitajika ili kufikia huduma nyingine za Azure kwa usalama. Hii inondoa haja ya kuhifadhi akiba katika msimbo kwa sababu utambulisho unathibitishwa kupitia Microsoft Entra ID. Zaidi ya hayo, unaweza pia kutumia **utambulisho wa usimamizi wa mtumiaji**, ambao unaweza kushirikiwa kati ya rasilimali nyingi. Utambulisho huu unaruhusu michakato ya kazi na Logic Apps kuingiliana kwa usalama na mifumo ya nje, kuhakikisha kuwa udhibiti wa ufikiaji na ruhusa unasimamiwa kwa kati kupitia mfumo wa usalama wa Azure. +Unapounda Logic App, lazima uunde au uunganishe akaunti ya kuhifadhi ya nje inayohifadhi hali ya mfumo wa kazi, historia ya uendeshaji, na vitu. Hifadhi hii inaweza kuundwa na mipangilio ya uchunguzi kwa ajili ya ufuatiliaji na inaweza kulindwa na vizuizi vya ufikiaji wa mtandao au kuunganishwa katika mtandao wa virtual ili kudhibiti trafiki ya kuingia na kutoka. ### Examples -- **Automating Data Pipelines**: Logic Apps inaweza kujiendesha **mchakato wa uhamishaji na mabadiliko ya data** kwa kushirikiana na Azure Data Factory. Hii ni muhimu kwa kuunda michakato ya data inayoweza kupanuka na kuaminika ambayo inahamisha na kubadilisha data kati ya hifadhi mbalimbali za data, kama vile Azure SQL Database na Azure Blob Storage, kusaidia katika uchambuzi na operesheni za akili ya biashara. -- **Integrating with Azure Functions**: Logic Apps inaweza kufanya kazi pamoja na Azure Functions kuendeleza **programu za kisasa, zinazotegemea matukio ambazo zinaweza kupanuka kadri inavyohitajika** na kuunganishwa kwa urahisi na huduma nyingine za Azure. Mfano wa matumizi ni kutumia Logic App kuanzisha Azure Function kama jibu kwa matukio fulani, kama vile mabadiliko katika akaunti ya Hifadhi ya Azure, kuruhusu usindikaji wa data wa kidinamik. +- **Automating Data Pipelines**: Logic Apps zinaweza kuandaa **mchakato wa uhamishaji na mabadiliko ya data** kwa kushirikiana na Azure Data Factory. Hii ni muhimu kwa kuunda mifumo ya data inayoweza kupanuka na kuaminika inayohamisha na kubadilisha data kati ya hifadhi mbalimbali za data, kama vile Azure SQL Database na Azure Blob Storage, kusaidia katika uchambuzi na operesheni za akili ya biashara. +- **Integrating with Azure Functions**: Logic Apps zinaweza kufanya kazi pamoja na Azure Functions kuendeleza **programu za kisasa zinazoendeshwa na matukio ambazo zinaweza kupanuka kadri inavyohitajika** na kuunganishwa kwa urahisi na huduma nyingine za Azure. Mfano wa matumizi ni kutumia Logic App kuanzisha Azure Function kama jibu kwa matukio fulani, kama vile mabadiliko katika akaunti ya Azure Storage, kuruhusu usindikaji wa data wa kidinamikia. ### Visualize a LogicAPP -Inawezekana kuona LogicApp kwa picha: +Ni rahisi kuona LogicApp kwa picha:
@@ -28,9 +25,9 @@ au kuangalia msimbo katika sehemu ya "**Logic app code view**". ### SSRF Protection -Hata kama unapata **Logic App inayoathirika na SSRF**, huwezi kupata akiba kutoka kwa metadata kwani Logic Apps haiwezi kuruhusu hilo. +Hata kama unapata **Logic App ikiwa na udhaifu wa SSRF**, huwezi kupata akidi kutoka kwa metadata kwani Logic Apps haiwezeshi hilo. -Kwa mfano, kitu kama hiki hakiwezi kurudisha token: +Kwa mfano, kitu kama hiki hakitatoa token: ```bash # The URL belongs to a Logic App vulenrable to SSRF curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e974123adf0b98159966644/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=_8_oqqsCXc0u2c7hNjtSZmT0uM4Xi3hktw6Uze0O34s' -d '{"url": "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/"}' -H "Content-type: application/json" -v @@ -40,15 +37,66 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741 Kuna chaguzi kadhaa za mwenyeji: * **Consumption** -- **Multi-tenant**: inatoa rasilimali za kompyuta za pamoja, inafanya kazi katika wingu la umma, na inafuata mfano wa bei kulingana na operesheni. Hii ni bora kwa kazi nyepesi na za gharama nafuu. +- **Multi-tenant**: inatoa rasilimali za kompyuta zinazoshirikiwa, inafanya kazi katika wingu la umma, na inafuata mfano wa bei kulingana na operesheni. Hii ni bora kwa kazi nyepesi na za gharama nafuu. Hii inapeleka "Single Workflow". * **Standard** -- **Workflow Service Plan**: rasilimali za kompyuta zilizotengwa zikiwa na ushirikiano wa VNET kwa ajili ya mtandao na malipo kwa kila mfano wa mpango wa huduma ya kazi. Inafaa kwa kazi zinazohitaji udhibiti zaidi. -- **App Service Environment V3** rasilimali za kompyuta zilizotengwa zikiwa na kutengwa kamili na uwezo wa kupanuka. Pia inashirikiana na VNET kwa ajili ya mtandao na inatumia mfano wa bei kulingana na mifano ya Huduma ya Programu ndani ya mazingira. Hii ni bora kwa programu za kiwango cha biashara zinazohitaji kutengwa kubwa. -- **Hybrid** iliyoundwa kwa ajili ya usindikaji wa ndani na msaada wa wingu nyingi. Inaruhusu rasilimali za kompyuta zinazodhibitiwa na mteja zikiwa na ufikiaji wa mtandao wa ndani na inatumia Kubernetes Event-Driven Autoscaling (KEDA). +- **Workflow Service Plan**: rasilimali za kompyuta zilizotengwa zikiwa na ushirikiano wa VNET kwa ajili ya mtandao na malipo kwa kila mfano wa mpango wa huduma ya workflow. Inafaa kwa kazi zinazohitaji udhibiti zaidi. +- **App Service Environment V3** rasilimali za kompyuta zilizotengwa zikiwa na kutengwa kamili na upanuzi. Pia inashirikiana na VNET kwa mtandao na inatumia mfano wa bei kulingana na mifano ya App Service ndani ya mazingira. +- **Hybrid** iliyoundwa kwa ajili ya usindikaji wa ndani na msaada wa multi-cloud. Inaruhusu rasilimali za kompyuta zinazodhibitiwa na mteja zikiwa na ufikiaji wa mtandao wa ndani na inatumia Kubernetes Event-Driven Autoscaling (KEDA). Inategemea Mazingira ya Programu ya Kontena. -### Workflows +### Key Features +- **Storage**: Logic Apps zinahitaji akaunti ya nje ya Azure Storage kuhifadhi hali ya workflow, historia ya kukimbia… na lazima iwe katika kundi moja la rasilimali kama Logic App. +- **Networking & Security**: Logic Apps zinaweza kuwekewa mipangilio ya ufikiaji wa umma au wa kibinafsi. Kwa kawaida, programu iko wazi kwa mtandao lakini inaweza kuunganishwa na Azure Virtual Network kwa ajili ya muunganisho wa kutengwa. +- **Application Insights**: Usimamizi wa Utendaji wa Programu (APM) kupitia Azure Monitor Application Insights unaweza kuwezeshwa kufuatilia utendaji, kugundua tofauti, na kutoa uchambuzi. +- **Access Control**: Logic apps zinasaidia Identiti Zinazosimamiwa na Mfumo & Identiti Zinazosimamiwa na Mtumiaji. -Workflows katika Azure Logic Apps ni michakato ya kiotomatiki ya msingi inayoratibu vitendo kati ya huduma mbalimbali. Workflow inaanza na kichocheo—tukio au ratiba—na kisha inatekeleza mfululizo wa vitendo, kama vile kuita APIs, kusindika data, au kuingiliana na huduma nyingine za Azure. Workflows zinaweza kufafanuliwa kwa njia ya kuona kwa kutumia mbunifu au kupitia msimbo (m定义 ya JSON) na zinadhibitiwa kupitia amri kama az logic workflow create, az logic workflow show, na az logic workflow update. Pia zinasaidia usimamizi wa utambulisho (kupitia kikundi cha utambulisho) ili kusimamia ruhusa na ushirikiano na rasilimali za nje kwa usalama. +### "Single" Workflows + +**workflow** ni mfululizo wa hatua au kazi za kiotomatiki zilizopangwa ambazo zinafanya mchakato au lengo maalum. Inafafanua jinsi vitendo tofauti, hali, na maamuzi yanavyoshirikiana ili kufikia matokeo yanayotakiwa, ikipunguza operesheni na kupunguza juhudi za mikono. Workflows zinaweza kuunganisha mifumo mingi, kuanzisha matukio, na sheria, kuhakikisha uthabiti na ufanisi katika michakato. + +Azure Logic apps inatoa uwezo wa **kuunda workflow moja bila haja ya Logic App** yenyewe. + +Kila workflow ina **triggers** tofauti. Hizi triggers ndizo hatua ambazo workflow inafuata. Kila trigger ina vigezo vyake ambavyo vinaweza kutofautiana kulingana na aina ya trigger: +- Jina la muunganisho +- **Aina ya Uthibitishaji** ambayo inaweza kuwa, Funguo za Ufikiaji, Microsoft Entra ID, uthibitishaji wa huduma iliyounganishwa na Identiti ya Logic Apps. + +Triggers pia zina mipangilio mbalimbali: +- Uthibitishaji wa Schema: Inahakikisha data inayokuja inafuata muundo ulioainishwa. +- Udhibiti wa Ufanisi: Inapunguza idadi ya kukimbia kwa wakati mmoja +- Masharti ya Trigger: masharti ambayo yanapaswa kutimizwa kabla ya trigger kuanzishwa. +- Networking: Inapanga ukubwa wa kipande kwa ajili ya uhamishaji wa data na inaruhusu kuficha vichwa vya workflow katika majibu. +- **Usalama**: Inaruhusu **Inputs/Outputs Salama kuficha** data nyeti katika kumbukumbu na matokeo. + +**Mipangilio & Muunganisho wa API:** + +Workflow ina mipangilio tofauti kama: +- Anwani za IP zinazoruhusiwa kuingia: Mipangilio hii inakuwezesha kupunguza nani anaweza kuanzisha au kuanzisha Logic App yako. Chaguo ni IP yoyote, Logic Apps nyingine pekee na anuwai maalum za IP. +- Akaunti ya uunganisho: Hapa, unaweza kuunganisha Logic App yako na Akaunti ya Uunganisho. +- Uhamasishaji wa juu: Mipangilio hii inaruhusu Logic App yako kushughulikia maombi zaidi kwa haraka. +- Uhifadhi wa historia ya kukimbia: kwa muda gani historia ya utekelezaji wa Logic App yako inahifadhiwa. + +Unaweza kuona muunganisho tofauti wa API ambao workflow ina. Ndani ya kila moja ya muunganisho haya wana mali tofauti na uwezekano wa kuhariri muunganisho wa API ambapo aina ya uthibitishaji inaweza kubadilishwa. + +**Historia & Matoleo:** +Ina chaguo la kufikia **historia** ya utekelezaji tofauti, inaonyesha, Mipangilio, Matokeo, Vigezo na Msimbo. + +Pia ina chaguo la kufikia **matoleo** tofauti ya workflow, ambapo unaweza kuangalia msimbo na kubadilisha workflow iliyopo na toleo la zamani la hiyo. + +**Uidhinishaji:** +Azure Logic Apps zinasaidia **sera za uidhinishaji** na Entra ID ili kulinda triggers zinazotegemea maombi kwa kuhitaji tokeni halali ya ufikiaji. Tokeni hii lazima iwe na madai maalum: +- Mtoaji (iss) ili kuthibitisha mtoa huduma wa utambulisho +- Walengwa (aud) ili kuhakikisha tokeni inakusudiwa kwa Logic App +- Kichwa (sub) ili kutambua mpiga simu +- JWT ID (kitambulisho cha JSON Web Token) +- Dhamana Maalum + +Wakati ombi linapopokelewa, Logic Apps inathibitisha tokeni dhidi ya madai haya na inaruhusu utekelezaji tu ikiwa zinakidhi sera iliyowekwa. Hii inaweza kutumika kuruhusu mpangaji mwingine kuanzisha workflow au kukataa trigger kutoka vyanzo vingine, kwa mfano kuruhusu trigger tu ikiwa inatoka https://login.microsoftonline.com/. + +**Funguo za Ufikiaji:** +Unapohifadhi trigger inayotegemea ombi kwa mara ya kwanza, Logic Apps kiotomatiki huunda mwisho wa kipekee na saini ya SAS (iliyoundwa kutoka kwa Funguo za Ufikiaji) inayotoa ruhusa ya kuita workflow. Saini hii ya SAS imejumuishwa katika URL ya trigger. Funguo hii inaweza kuundwa upya na itatoa saini mpya ya SAS, lakini funguo hazitaweza kuorodheshwa. + +URL ya kuitisha kwa Funguo za Ufikiaji: + +https://.logic.azure.com:443/workflows//triggers//paths/invoke?api-version=&sp=%2Ftriggers%2F%2Frun&sv=&sig= ### Enumeration @@ -102,11 +150,6 @@ az rest \ --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/versions/{versionName}?api-version=2016-06-01" \ --headers "Content-Type=application/json" -az rest \ ---method GET \ ---uri "https://examplelogicapp1994.scm.azurewebsites.net/api/functions/admin/download?includeCsproj=true&includeAppSettings=true" \ ---headers "Content-Type=application/json" - # List all Logic Apps in the specified resource group az logicapp list --resource-group @@ -115,6 +158,20 @@ az logicapp show --name --resource-group # List all application settings for a specific Logic App az logicapp config appsettings list --name --resource-group + +# Get a Parameters from an Azure App Service using Azure REST API +az rest --method GET --url "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{app-service-name}/hostruntime/admin/vfs/parameters.json?api-version=2018-11-01&relativepath=1" + +# Get webhook-triggered workflows from an Azure Logic App using Azure REST API +az rest --method GET --url "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{logic-app-name}/hostruntime/runtime/webhooks/workflow/api/management/workflows?api-version=2018-11-01" + +# Get workflows from an Azure Logic App using Azure REST API +az rest --method GET --url "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{logic-app-name}/workflows?api-version=2018-11-01" + +# Get details of a specific workflow including its connections and parameters in Azure Logic Apps using Azure REST API +az rest --method GET --uri "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Web/sites/{logic-app-name}/workflows/{workflow-name}?api-version=2018-11-01&\$expand=connections.json,parameters.json" + + ``` {{#endtab }} @@ -150,13 +207,13 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "" -Name "