From 51b47f833f15f6c0db088669cdb2200f04eb66ee Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 22 Feb 2025 12:48:31 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az --- .../az-logic-apps-post-exploitation.md | 59 +++++++++- .../az-logic-apps-privesc.md | 63 +++++++++- .../azure-security/az-services/az-cosmosDB.md | 91 ++++++++++----- .../az-services/az-logic-apps.md | 109 +++++++++++++----- 4 files changed, 258 insertions(+), 64 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 ec73eb631..610a58cec 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 @@ Vir meer inligting oor logika-apps, kyk: {{#endref}} ### `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action` -Met hierdie toestemmings kan jy Logic App werkvloei verander en hul identiteite bestuur. Spesifiek kan jy stelsels toegewyde en gebruikers toegewyde bestuurde identiteite aan werkvloei toewys of verwyder, wat die Logic App in staat stel om te verifieer en toegang tot ander Azure hulpbronne te verkry sonder eksplisiete akrediteer. +Met hierdie toestemmings kan jy Logic App workflows wysig en hul identiteite bestuur. Spesifiek kan jy stelsels toegewyde en gebruikers toegewyde bestuurde identiteite aan workflows toewys of verwyder, wat die Logic App in staat stel om te verifieer en toegang tot ander Azure hulpbronne te verkry sonder eksplisiete akrediteer. ```bash az logic workflow identity remove/assign \ --name \ @@ -18,8 +18,47 @@ az logic workflow identity remove/assign \ --system-assigned true \ --user-assigned "/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/" ``` +Boonop kan jy met net `Microsoft.Logic/workflows/write` sommige konfigurasies verander soos Toegelate inkomende IP adresse of Loop geskiedenis behou dae: +```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` -Met hierdie toestemmings kan jy Logic Apps skep of opdateer wat op 'n App Service Plan gehosteer word. Dit sluit die aanpassing van instellings in, soos om HTTPS-afdwinging in of uit te skakel. +Met hierdie toestemmings kan jy Logic Apps skep of opdateer wat op 'n App Service Plan gehosteer is. Dit sluit die aanpassing van instellings in, soos om HTTPS-afdwinging in of uit te skakel. ```bash az logicapp update \ --resource-group \ @@ -35,7 +74,7 @@ az webapp start/stop/restart \ ``` ### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/read` && `Microsoft.Web/sites/config/write` -Met hierdie toestemming kan jy instellings vir webtoepassings konfigureer of wysig, insluitend Logic Apps wat op 'n App Service Plan gehos is. Dit stel veranderinge aan toepassingsinstellings, verbindingsstringe, outentikasie-konfigurasies, en meer moontlik. +Met hierdie toestemming kan jy instellings vir webtoepassings konfigureer of wysig, insluitend Logic Apps wat op 'n App Service Plan gehos is. Dit stel veranderinge aan toepassingsinstellings, verbindsels, outentikasie-konfigurasies, en meer in staat. ```bash az logicapp config appsettings set \ --name \ @@ -66,7 +105,7 @@ az logic integration-account batch-configuration create \ }' ``` ### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/maps/write` -Met hierdie toestemming kan jy kaarte binne 'n Azure Logic Apps integrasietoevoer skep of wysig. Kaarte word gebruik om data van een formaat na 'n ander te transformeer, wat naatlose integrasie tussen verskillende stelsels en toepassings moontlik maak. +Met hierdie toestemming kan jy kaarte binne 'n Azure Logic Apps integrasie rekening skep of wysig. Kaarte word gebruik om data van een formaat na 'n ander te transformeer, wat naatlose integrasie tussen verskillende stelsels en toepassings moontlik maak. ```bash az logic integration-account map create \ --resource-group \ @@ -96,7 +135,7 @@ az logic integration-account partner create \ }' ``` ### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/sessions/write` -Met hierdie toestemming kan jy sessies binne 'n Azure Logic Apps integrasietoevoeging skep of wysig. Sessies word in B2B werkvloei gebruik om boodskappe te groepeer en verwante transaksies oor 'n gedefinieerde tydperk te volg. +Met hierdie toestemming kan jy sessies binne 'n Azure Logic Apps integrasietoevoer aanmaak of wysig. Sessies word in B2B werkvloei gebruik om boodskappe te groepeer en verwante transaksies oor 'n gedefinieerde tydperk te volg. ```bash az logic integration-account session create \ --resource-group \ @@ -111,6 +150,16 @@ az logic integration-account session create \ } } }' +``` +### `Microsoft.Logic/workflows/regenerateAccessKey/action` + +Gebruikers met hierdie toestemming kan Logic App toegang sleutels hernu, en as dit misbruik word, kan dit lei tot diensonderbrekings. +```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" Met hierdie toestemmings kan jy hulpbronne wat verband hou met Azure Logic Apps verwyder. 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 b4d2e3d8f..d30e6b014 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 @@ -11,7 +11,7 @@ Vir meer inligting oor SQL Database, kyk: ### (`Microsoft.Resources/subscriptions/resourcegroups/read`, `Microsoft.Logic/workflows/read`, `Microsoft.Logic/workflows/write` && `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`) && (`Microsoft.Logic/workflows/triggers/run/action`) -Met hierdie toestemming kan jy Azure Logic Apps workflows skep of opdateer. Workflows definieer geoutomatiseerde prosesse en integrasies tussen verskeie stelsels en dienste. +Met hierdie toestemming kan jy Azure Logic Apps workflows skep of opdateer. Workflows definieer geoutomatiseerde prosesse en integrasies tussen verskillende stelsels en dienste. ```bash az logic workflow create \ --resource-group \ @@ -32,8 +32,67 @@ az rest \ --body '{}' \ --headers "Content-Type=application/json" ``` +Boonop met net `Microsoft.Logic/workflows/write` kan jy die Outeurskapbeleid verander, wat byvoorbeeld 'n ander tenant die vermoë gee om die werksvloei te aktiveer: +```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` +Jy kan die terugroep-URL van die sneller kry en dit uitvoer. +```bash +az rest --method POST \ +--uri "https://management.azure.com/subscriptions//resourceGroups//providers/Microsoft.Logic/workflows//triggers//listCallbackUrl?api-version=2019-05-01" +``` +Dit sal 'n terugroep-URL soos `https://prod-28.centralus.logic.azure.com:443/workflows/....` teruggee. Nou kan ons dit uitvoer met: +```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`) -Met hierdie toestemmings kan jy Logic App werkvloei ontplooi deur ZIP-lêer ontplooiings. Hierdie toestemmings stel aksies in staat soos om app besonderhede te lees, toegang tot publikasie geloofsbriewe te verkry, veranderinge te skryf, en app konfigurasies te lys. Saam met die begin toestemmings kan jy 'n nuwe Logic App opdateer en ontplooi met die gewenste inhoud. +Met hierdie toestemmings kan jy Logic App werkvloei ontplooi deur ZIP-lêer ontplooiing. Hierdie toestemmings stel aksies in staat soos om app besonderhede te lees, toegang tot publikasie geloofsbriewe te verkry, veranderinge te skryf, en app konfigurasies te lys. Saam met die begin toestemmings kan jy 'n nuwe Logic App opdateer en ontplooi met die verlangde inhoud. ```bash az logicapp deployment source config-zip \ --name \ 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 7ac7bc994..ba101ede8 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md +++ b/src/pentesting-cloud/azure-security/az-services/az-cosmosDB.md @@ -6,28 +6,28 @@ **Azure Cosmos DB** is 'n volledig **bestuurde NoSQL, relationele, en vektordatabasis** wat enkel-digit millisekonde reaksietye, outomatiese skaalbaarheid, en SLA-ondersteunde beskikbaarheid met ondernemingsgraad sekuriteit bied. Dit stel vinniger app-ontwikkeling in staat deur kant-en-klaar multi-streek data verspreiding, oopbron API's, SDK's vir gewilde tale, en KI-databasis funksies soos geïntegreerde vektorondersteuning en naatlose Azure KI-integrasie. -Azure Cosmos DB bied verskeie databasis API's om werklike data te modelleer met behulp van dokumente, relationeel, sleutel-waarde, grafiek, en kolom-familie datamodelles, wat hierdie API's NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin en Tabel is. +Azure Cosmos DB bied verskeie databasis API's om werklike data te modelleer met behulp van dokumente, relationele, sleutel-waarde, grafiek, en kolom-familie datamodelles, wat hierdie API's NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin en Tabel is. -Een sleutel aspek van CosmosDB is Azure Cosmos Account. **Azure Cosmos Account** dien as die toegangspunt tot die databasisse. Die rekening bepaal sleutelinstellings soos globale verspreiding, konsekwentievlakke, en die spesifieke API wat gebruik moet word, soos NoSQL. Deur die rekening kan jy globale replikaasies konfigureer om te verseker dat data beskikbaar is oor verskeie streke vir lae-latensie toegang. Boonop kan jy 'n konsekwentievlak kies wat 'n balans tussen prestasie en datanauwkeurigheid handhaaf, met opsies wat wissel van Sterk tot Finale konsekwentheid. +Een sleutel aspek van CosmosDB is Azure Cosmos Account. **Azure Cosmos Account** dien as die toegangspunt tot die databasisse. Die rekening bepaal sleutelinstellings soos globale verspreiding, konsekwentievlakke, en die spesifieke API wat gebruik moet word, soos NoSQL. Deur die rekening kan jy globale replikaasies konfigureer om te verseker dat data beskikbaar is oor verskeie streke vir lae-latensie toegang. Boonop kan jy 'n konsekwentievlak kies wat 'n balans tussen prestasie en datanauwkeurigheid handhaaf, met opsies wat wissel van Sterk tot Geleidelike konsekwentheid. -Azure Cosmos DB ondersteun **gebruikers-toegewyde identiteite** en **sisteem-toegewyde bestuurde identiteite** wat outomaties geskep word en aan die hulpbron se lewensiklus gekoppel is, wat veilige, token-gebaseerde verifikasie moontlik maak wanneer daar met ander dienste gekonnekteer word—mits daardie dienste die toepaslike roltoewysings het. egter, Cosmos DB het nie 'n ingeboude meganisme om direk eksterne databronne soos Azure Blob Storage te ondervra nie. Anders as SQL Server se eksterne tabel funksies, vereis Cosmos DB dat data in sy houers ingeneem word met behulp van eksterne gereedskap soos Azure Data Factory, die Data Migrasie Gereedskap, of pasgemaakte skripte voordat dit met sy inheemse ondervragingsvermoëns ondervra kan word. +Azure Cosmos DB ondersteun **gebruikers-toegewyde identiteite** en **sisteem-toegewyde bestuurde identiteite** wat outomaties geskep en aan die hulpbron se lewensiklus gekoppel is. egter, Cosmos DB het nie 'n ingeboude meganisme om direk eksterne databasisse soos Azure Blob Storage te ondervra nie. Anders as SQL Server se eksterne tabel funksies, vereis Cosmos DB dat data in sy houers ingeneem word met behulp van eksterne gereedskap soos Azure Data Factory, die Data Migrasie Gereedskap, of pasgemaakte skripte voordat dit met sy inheemse ondervragingsvermoëns ondervra kan word. ### NoSQL Die Azure Cosmos DB NoSQL API is 'n dokument-gebaseerde API wat JSON as sy dataformaat gebruik. Dit bied 'n SQL-agtige ondervragingsintaksis vir die ondervraging van JSON-objekte, wat dit geskik maak vir die werk met gestruktureerde en semi-gestruktureerde data. Die eindpunt van die diens is: ```bash https://.documents.azure.com:443/ ``` -#### Databasies -Binne 'n rekening kan jy een of meer databasies skep, wat dien as logiese groepe van houers. 'n Databasis dien as 'n grense vir hulpbronbestuur en gebruikersregte. Databasies kan of die voorsiene deurset oor hul houers deel of toegewyde deurset aan individuele houers toewys. +#### Databasas +Binne 'n rekening kan jy een of meer databasas skep, wat dien as logiese groepe van houers. 'n Databasis dien as 'n grense vir hulpbronbestuur en gebruikersregte. Databasas kan of verskeie houers toelaat om 'n gedeelde poel van prestasiekapasiteit te gebruik, of elke houer sy eie toegewyde krag gee. #### Houers -Die kern eenheid van data-opberging is die houer, wat JSON-dokumente bevat en outomaties geindekseer word vir doeltreffende navraag. Houers is elasties skaalbaar en versprei oor partisie, wat bepaal word deur 'n deur gebruiker gedefinieerde partisie-sleutel. Die partisie-sleutel is krities vir die verseker van optimale prestasie en eweredige data verspreiding. Byvoorbeeld, 'n houer kan kliëntdata stoor, met "customerId" as die partisie-sleutel. +Die kern eenheid van data-opberging is die houer, wat JSON-dokumente bevat en outomaties geindexeer word vir doeltreffende navraag. Houers is elasties skaalbaar en versprei oor partisie, wat bepaal word deur 'n gebruiker-gedefinieerde partisie sleutel. Die partisie sleutel is krities vir die verseker van optimale prestasie en eweredige data verspreiding. Byvoorbeeld, 'n houer kan klantdata stoor, met "customerId" as die partisie sleutel. #### Sleutelkenmerke -**Globale Verspreiding**: Aktiveer of deaktiveer Geo-Retundansie vir kruisstreek replika en Multi-streek Skrywe vir verbeterde beskikbaarheid. -**Netwerk & Sekuriteit**: tussen openbare (alle/selekteer netwerke) of private eindpunte vir konnektiwiteit. Veilige verbindings met TLS 1.2-enkripsie. Ondersteun CORS (Cross-Origin Resource Sharing) vir beheerde toegang tot hulpbronne. -**Rugsteun & Herstel**: van Periodieke, Kontinu (7 dae), of Kontinu (30 dae) rugsteunbeleide met konfigureerbare tydsintervalle en behoud. -**Data Enkripsie**: Standaard diens-beheerde sleutels of kliënt-beheerde sleutels (CMK) vir enkripsie (CMK-keuse is onomkeerbaar). +- **Globale Verspreiding**: Aktiveer of deaktiveer Geo-Retundansie vir kruis-streek replika en Multi-streek Skrywe vir verbeterde beskikbaarheid. +- **Netwerk & Sekuriteit**: tussen openbare (alle/selekteer netwerke) of private eindpunte vir konnektiwiteit. Veilige verbindings met TLS 1.2 versleuteling. Ondersteun CORS (Cross-Origin Resource Sharing) vir beheerde toegang tot hulpbronne. Microsoft Defender vir Cloud kan geaktiveer word. Om die verbinding te maak, kan jy sleutels gebruik. +- **Rugsteun & Herstel**: van Periodieke, Kontinuïteit (7 dae), of Kontinuïteit (30 dae) rugsteunbeleide met konfigureerbare tydsintervalle en behoud. +- **Data Versleuteling**: Standaard diens-beheerde sleutels of klant-beheerde sleutels (CMK) vir versleuteling (CMK keuse is onomkeerbaar). #### Enumerasie @@ -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 }} @@ -118,7 +131,8 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "" -A #### Verbinding -Om die azure-cosmosDB (pip install azure-cosmos) biblioteek te verbind, is dit nodig. Boonop is die eindpunt en die sleutel belangrike komponente om die verbinding te maak. +Dit het 2 sleutel tipes, Lees-skrif (vol) en Lees-alleen. Hulle gee die aangeduide toegang tot alle databasisse, versamelings, en data binne die Cosmos DB rekening. +Om te verbind is die azure-cosmosDB (pip install azure-cosmos) biblioteek nodig. Boonop is die eindpunt en die sleutel kritieke komponente om die verbinding te maak. ```python from azure.cosmos import CosmosClient, PartitionKey @@ -183,28 +197,28 @@ container.create_item(item) print("Document inserted.") ``` ### MongoDB -Die MongoDB NoSQL API is 'n dokument-gebaseerde API wat JSON-agtige BSON (Binary JSON) as sy dataformaat gebruik. Dit bied 'n navraagtaal met aggregasie vermoëns, wat dit geskik maak vir die werk met gestruktureerde, semi-gestruktureerde, en ongestruktureerde data. Die eindpunt van die diens volg tipies hierdie formaat: +Die MongoDB NoSQL API is 'n dokument-gebaseerde API wat JSON-agtige BSON (Binary JSON) as sy dataformaat gebruik. Dit bied 'n navraagtaal met aggregasievermoëns, wat dit geskik maak om met gestruktureerde, semi-gestruktureerde en ongestruktureerde data te werk. Die eindpunt van die diens volg tipies hierdie formaat: ```bash mongodb://:/ ``` -#### Databasas -In MongoDB kan jy een of meer databasas binne 'n instansie skep. Elke databasis dien as 'n logiese groep van versamelings en bied 'n grense vir hulpbronorganisasie en -bestuur. Databasas help om data logies te skei en te bestuur, soos vir verskillende toepassings of projekte. +#### Databases +In MongoDB kan jy een of meer databasisse binne 'n instansie skep. Elke databasis dien as 'n logiese groep van versamelings en bied 'n grense vir hulpbronorganisasie en -bestuur. Databasisse help om data logies te skei en te bestuur, soos vir verskillende toepassings of projekte. -#### Versamelings +#### Collections Die kern eenheid van data-opberging in MongoDB is die versameling, wat dokumente hou en ontwerp is vir doeltreffende navraag en buigsame skema-ontwerp. Versamelings is elasties skaalbaar en kan hoë-deurvoer operasies oor verskeie nodes in 'n verspreide opstelling ondersteun. -#### Sleutelkenmerke van Versoekeenheid (RU) tipe -**Globale Verspreiding**: Aktiveer of deaktiveer Geo-Retensie vir kruisstreek replika en Multi-streek Skrywe vir verbeterde beskikbaarheid. -**Netwerk & Sekuriteit**: tussen openbare (alle/selekteer netwerke) of private eindpunte vir konnektiwiteit. Veilige verbindings met TLS 1.2 versleuteling. Ondersteun CORS (Cross-Origin Resource Sharing) vir beheerde toegang tot hulpbronne. -**Rugsteun & Herstel**: van Periodieke, Kontinuïteit (7 dae, gratis), of Kontinuïteit (30 dae, betaalde) rugsteunbeleide met konfigureerbare tussenposes en behoud. -**Data Versleuteling**: Standaard diens-beheerde sleutels of kliënt-beheerde sleutels (CMK) vir versleuteling (CMK-keuse is onomkeerbaar). +#### Key Features of Request unit (RU) type +**Global Distribution**: Aktiveer of deaktiveer Geo-Redundancy vir kruisgebied replikasie en Multi-region Writes vir verbeterde beskikbaarheid. +**Networking & Security**: tussen openbare (alle/selekteer netwerke) of private eindpunte vir konnektiwiteit. Veilige verbindings met TLS 1.2-enkripsie. Ondersteun CORS (Cross-Origin Resource Sharing) vir beheerde toegang tot hulpbronne. Om die verbinding te maak, kan jy sleutels gebruik. +**Backup & Recovery**: van Periodieke, Kontinuïteit (7 dae, gratis), of Kontinuïteit (30 dae, betaalde) rugsteunbeleide met konfigureerbare tussenposes en behoud. +**Data Encryption**: Standaard diens-beheerde sleutels of kliënt-beheerde sleutels (CMK) vir enkripsie (CMK-keuse is onomkeerbaar). -#### Sleutelkenmerke van vCore kluster tipe -**Globale Verspreiding**: Aktiveer 'n lees replika in 'n ander Azure streek vir hoë beskikbaarheid en failover ondersteuning. Konfigureer die replika naam, streek, en stoor per shard. -**Netwerk & Sekuriteit**: Ondersteun openbare toegang met toegewyde openbare IP's en private toegang. Beperk verbindings met firewall reëls—per standaard, geen openbare IP's is toegelaat. -**Versleutelde Verbindinge**: Handhaaf TLS versleuteling vir veilige datatransmissie. +#### Key Features of vCore cluster type +**Global Distribution**: Aktiveer 'n lees replika in 'n ander Azure streek vir hoë beskikbaarheid en failover ondersteuning. Konfigureer die replika naam, streek, en stoor per shard. +**Networking & Security**: Ondersteun openbare toegang met toegewyde openbare IP's en private toegang. Beperk verbindings met firewall-reëls—per standaard is geen openbare IP's toegelaat nie. +**Encrypted Connections**: Handhaaf TLS-enkripsie vir veilige datatransmissie. -#### Enumerasie +#### Enumeration {{#tabs }} {{#tab name="az cli" }} @@ -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 #### Verbinding -Hier kan jy die wagwoord vind met die sleutels of met die metode beskryf in die privesc afdeling. +RU MongoDB tipe in CosmoDB het 2 sleutel tipes, Lees-skrif (vol) en Lees-alleen. Hulle gee die aangeduide toegang tot alle databasisse, versamelings, en data binne die Cosmos DB rekening. +Vir die wagwoord kan jy die sleutels gebruik of met die metode beskryf in die privesc afdeling. ```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}") ``` +Of deur 'n gebruiker binne die mongo: +```bash +mongosh "mongodb://:@.mongo.cosmos.azure.com:10255/?ssl=true&replicaSet=globaldb&retrywrites=false" +``` ## Verwysings - [https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api](https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api) @@ -329,8 +362,6 @@ print(f"Inserted document with ID: {result.inserted_id}") * Die res van die DB hier, tabelle, cassandra, gremlin... * Kyk na die post exploitation "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" en rol definisies want hier mag daar 'n privesc wees -* Kyk na herstelwerk - - +* Kyk na herstel {{#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 9d74c6599..c1792a2b0 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,19 +4,16 @@ ## Basiese Inligting -Azure Logic Apps is 'n wolk-gebaseerde diens wat deur Microsoft Azure verskaf word wat ontwikkelaars in staat stel om **werkvloei te skep en te bestuur wat verskeie dienste**, databronne en toepassings integreer. Hierdie werkvloei is ontwerp om **besigheidsprosesse te outomatiseer**, take te orkestreer, en data-integrasies oor verskillende platforms uit te voer. +Azure Logic Apps is 'n wolk-gebaseerde diens wat deur Microsoft Azure verskaf word wat ontwikkelaars in staat stel om **werkvloei te skep en te bestuur wat verskeie dienste**, databronne en toepassings integreer. Hierdie werkvloei is ontwerp om **besigheidsprosesse te outomatiseer**, take te orkestreer en data-integrasies oor verskillende platforms uit te voer. -Logic Apps bied 'n visuele ontwerper om werkvloei te skep met 'n **wye verskeidenheid voorafgeboude koppelvlakke**, wat dit maklik maak om met verskeie dienste, soos Office 365, Dynamics CRM, Salesforce, en vele ander te verbind en te kommunikeer. Jy kan ook pasgemaakte koppelvlakke vir jou spesifieke behoeftes skep. +Logic Apps bied 'n visuele ontwerper om werkvloei te skep met 'n **wye verskeidenheid voorafgeboude koppelvlakke**, wat dit maklik maak om te verbind met en te kommunikeer met verskeie dienste, soos Office 365, Dynamics CRM, Salesforce, en vele ander. Jy kan ook pasgemaakte koppelvlakke skep vir jou spesifieke behoeftes. -Wanneer jy 'n Logic App skep, moet jy óf 'n eksterne stoorrekening skep of koppel wat die werkvloei-toestand, uitvoergeskiedenis, en artefakte stoor. Hierdie stoor kan geconfigureer word met diagnostiese instellings vir monitering en kan beveilig word met netwerktoegangbeperkings of in 'n virtuele netwerk geïntegreer word om inkomende en uitgaande verkeer te beheer. - -### Gemanagte Identiteite -Logic Apps het 'n **sisteem-toegewyde gemanagte identiteit** wat aan sy lewensiklus gekoppel is. Wanneer geaktiveer, ontvang dit 'n unieke Objekt (hoof) ID wat gebruik kan word met Azure RBAC om die nodige toestemmings te verleen om ander Azure-dienste veilig te benader. Dit elimineer die behoefte om akrediteerbare inligting in kode te stoor omdat die identiteit geverifieer word deur Microsoft Entra ID. Boonop kan jy ook **gebruikers-toegewyde gemanagte identiteite** gebruik, wat oor verskeie hulpbronne gedeel kan word. Hierdie identiteite stel werkvloei en Logic Apps in staat om veilig met eksterne stelsels te kommunikeer, wat verseker dat die nodige toegangbeheer en toestemmings sentraal deur Azure se sekuriteitsraamwerk bestuur word. +Wanneer jy 'n Logic App skep, moet jy óf 'n eksterne stoorrekening skep of koppel wat die werkvloei-toestand, uitvoergeskiedenis en artefakte stoor. Hierdie stoor kan gekonfigureer word met diagnostiese instellings vir monitering en kan beveilig word met netwerktoegangbeperkings of in 'n virtuele netwerk geïntegreer word om inkomende en uitgaande verkeer te beheer. ### Voorbeelde -- **Outomatisering van Data-pype**: Logic Apps kan **data-oordrag en transformasieprosesse** outomatiseer in kombinasie met Azure Data Factory. Dit is nuttig om skaalbare en betroubare datapipes te skep wat data tussen verskeie datastores, soos Azure SQL Database en Azure Blob Storage, beweeg en transformeer, wat help met analise en besigheidsintelligensie-operasies. -- **Integrasie met Azure Functions**: Logic Apps kan saam met Azure Functions werk om **gesofistikeerde, gebeurtenisgedrewe toepassings te ontwikkel wat soos nodig skaal** en naatloos met ander Azure-dienste integreer. 'n Voorbeeld gebruiksgeval is om 'n Logic App te gebruik om 'n Azure Function te aktiveer in reaksie op sekere gebeurtenisse, soos veranderinge in 'n Azure Stoorrekening, wat dinamiese dataverwerking moontlik maak. +- **Outomatisering van Data Pype**: Logic Apps kan **data-oordrag en transformasieprosesse** outomatiseer in kombinasie met Azure Data Factory. Dit is nuttig om skaalbare en betroubare datapipes te skep wat data tussen verskeie datastores, soos Azure SQL Database en Azure Blob Storage, beweeg en transformeer, wat help met analise en besigheidsintelligensie-operasies. +- **Integrasie met Azure Functions**: Logic Apps kan saam met Azure Functions werk om **gesofistikeerde, gebeurtenisgedrewe toepassings te ontwikkel wat soos nodig skaal** en naatloos met ander Azure-dienste integreer. 'n Voorbeeld gebruiksgeval is om 'n Logic App te gebruik om 'n Azure Function te aktiveer in reaksie op sekere gebeurtenisse, soos veranderinge in 'n Azure Storage-rekening, wat dinamiese dataverwerking moontlik maak. ### Visualiseer 'n LogicAPP @@ -24,11 +21,11 @@ Dit is moontlik om 'n LogicApp met grafika te sien:
-of om die kode in die "**Logic app kodeweergave**" afdeling te kontroleer. +of om die kode in die "**Logic app kode weergawe**" afdeling te kontroleer. ### SSRF Beskerming -Selfs al vind jy die **Logic App kwesbaar vir SSRF**, sal jy nie in staat wees om die akrediteerbare inligting van die metadata te bekom nie, aangesien Logic Apps dit nie toelaat nie. +Selfs al vind jy die **Logic App kwesbaar vir SSRF**, sal jy nie in staat wees om die akrediteer te bekom uit die metadata nie, aangesien Logic Apps dit nie toelaat nie. Byvoorbeeld, iets soos dit sal nie die token teruggee: ```bash @@ -37,18 +34,69 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741 ``` ### Hosting options -Daar is verskeie hosting opsies: +Daar is verskeie gasheeropsies: * **Consumption** -- **Multi-tenant**: bied gedeelde rekenaarbronne, werk in die openbare wolk, en volg 'n betaal-per-operasie prysmodel. Dit is ideaal vir liggewig en kostedoeltreffende werklas. +- **Multi-tenant**: bied gedeelde rekenaarbronne, werk in die openbare wolk, en volg 'n betaal-per-operasie prysmodel. Dit is ideaal vir liggewig en kostedoeltreffende werklas. Dit ontplooi 'n "Single Workflow". * **Standard** -- **Workflow Service Plan**: toegewyde rekenaarbronne met VNET integrasie vir netwerk en hef per workflow service plan instansie. Dit is geskik vir meer veeleisende werklas wat groter beheer vereis. -- **App Service Environment V3** toegewyde rekenaarbronne met volle isolasie en skaalbaarheid. Dit integreer ook met VNET vir netwerk en gebruik 'n prysmodel gebaseer op App Service instansies binne die omgewing. Dit is ideaal vir ondernemingskaal toepassings wat hoë isolasie benodig. -- **Hybrid** ontwerp vir plaaslike verwerking en multi-wolk ondersteuning. Dit laat kliënt-bestuurde rekenaarbronne met plaaslike netwerktoegang toe en gebruik Kubernetes Event-Driven Autoscaling (KEDA). +- **Workflow Service Plan**: toegewyde rekenaarbronne met VNET-integrasie vir netwerking en hef per workflow service plan instansie. Dit is geskik vir meer veeleisende werklas wat groter beheer vereis. +- **App Service Environment V3** toegewyde rekenaarbronne met volle isolasie en skaalbaarheid. Dit integreer ook met VNET vir netwerking en gebruik 'n prysmodel gebaseer op App Service instansies binne die omgewing. +- **Hybrid** ontwerp vir plaaslike verwerking en multi-cloud ondersteuning. Dit laat kliënt-bestuurde rekenaarbronne met plaaslike netwerktoegang toe en gebruik Kubernetes Event-Driven Autoscaling (KEDA). Dit staat op 'n Container App Connected Environment. -### Workflows +### Key Features +- **Storage**: Logic Apps vereis 'n eksterne Azure Storage rekening om workflow toestand, uitvoering geskiedenis… te stoor en moet in dieselfde hulpbron groep wees as die Logic App. +- **Networking & Security**: Logic Apps kan gekonfigureer word met openbare of private toegang. Standaard is die app oop vir die internet, maar kan geïntegreer word met 'n Azure Virtuele Netwerk vir geïsoleerde konnektiwiteit. +- **Application Insights**: Toepassing Prestasie Bestuur (APM) deur Azure Monitor Application Insights kan geaktiveer word om prestasie te volg, anomalieë te ontdek, en analise te verskaf. +- **Access Control**: Logic apps ondersteun Stelsel Bestuurde Identiteite & Gebruiker Bestuurde Identiteite. -Workflows in Azure Logic Apps is die kern geoutomatiseerde prosesse wat aksies oor verskeie dienste orkestreer. 'n Workflow begin met 'n trigger—'n gebeurtenis of skedule—en voer dan 'n reeks aksies uit, soos om API's aan te roep, data te verwerk, of met ander Azure dienste te kommunikeer. Workflows kan visueel gedefinieer word met behulp van 'n ontwerper of via kode (JSON definisies) en word bestuur deur opdragte soos az logic workflow create, az logic workflow show, en az logic workflow update. Hulle ondersteun ook identiteitsbestuur (deur die identiteits subgroep) om toestemmings en integrasies met eksterne bronne veilig te bestuur. +### "Single" Workflows + +'n **workflow** is 'n gestruktureerde volgorde van geoutomatiseerde stappe of take wat 'n spesifieke proses of doelwit uitvoer. Dit definieer hoe verskillende aksies, toestande, en besluite met mekaar interaksie het om 'n gewenste uitkoms te bereik, wat operasies stroomlyn en handmatige moeite verminder. Workflows kan verskeie stelsels integreer, gebeurtenisse en reëls ontketen, en verseker konsekwentheid en doeltreffendheid in prosesse. + +Azure Logic apps bied die funksionaliteit van **die skep van 'n enkele workflow sonder die behoefte aan 'n Logic App** self. + +Elke workflow het verskillende **triggers**. Hierdie triggers is die stappe wat die workflow volg. Elke trigger het sy parameters wat kan wissel, afhangende van die tipe van die trigger: +- Verbinding naam +- **Authentication Type** wat kan wees, Toegang Sleutel, Microsoft Entra ID, Geïntegreerde Diens hoofverifikasie en Logic Apps Bestuurde Identiteit. + +Triggers het ook verskeie instellings: +- Schema Validasie: Verseker dat inkomende data 'n vooraf gedefinieerde struktuur volg. +- Gelyktydigheidsbeheer: Beperk die aantal parallelle uitvoerings. +- Trigger Voorwaardes: voorwaardes wat nagekom moet word voordat die trigger afgevuur word. +- Networking: Konfigureer blokgrootte vir datatransfer en laat toe om workflow koptekste in antwoorde te onderdruk. +- **Security**: Maak **Veilige Insette/Uitsette moontlik om** sensitiewe data in logs en die uitsette te verberg. + +**Settings & API Conections:** + +'n workflow het verskillende instellings soos: +- Toegelate inkomende IP adresse: Hierdie instelling laat jou toe om te beperk wie jou Logic App kan ontketen of begin. Die opsies is Enige IP, Slegs ander Logic Apps en Spesifieke IP reeks. +- Integrasie rekening: Hier kan jy jou Logic App aan 'n Integrasie Rekening koppel. +- Hoë deurset: Hierdie instelling stel jou Logic App in staat om meer versoeke vinnig te hanteer. +- Uitvoering geskiedenis behoud: vir hoe lank die geskiedenis van jou Logic App se uitvoerings gehou word. + +Jy kan die verskillende API verbindings sien wat die workflow het. Binne elkeen van hierdie verbindings het hulle verskillende eienskappe en die moontlikheid om die API verbinding te wysig waar die Verifikasietipe verander kan word. + +**History & Versions:** +Dit het die opsie om toegang te verkry tot die **geskiedenis** van die verskillende uitvoerings, dit wys, Instellings, Uitset, Parameters en die Kode. + +Dit het ook die opsie om toegang te verkry tot verskillende **weergawe** van die workflow, waar jy die kode kan nagaan en die huidige workflow met 'n ouer weergawe daarvan kan verander. + +**Authorization:** +Azure Logic Apps ondersteun **autorisering beleid** met Entra ID om versoek-gebaseerde triggers te beveilig deur 'n geldige toegangstoken te vereis. Hierdie token moet spesifieke aansprake insluit: +- Uitgever (iss) om die identiteitsverskaffer te verifieer +- Publiek (aud) om te verseker dat die token bedoel is vir die Logic App +- Onderwerp (sub) om die oproeper te identifiseer +- JWT ID (JSON Web Token identifiseerder) +- Aangepaste Aanspraak + +Wanneer 'n versoek ontvang word, valideer Logic Apps die token teen hierdie aansprake en laat uitvoering toe slegs as hulle ooreenstem met die geconfigureerde beleid. Dit kan gebruik word om 'n ander huurder toe te laat om die workflow te ontketen of om die ontketening van ander bronne te ontken, byvoorbeeld net die ontketening toe te laat as dit van https://login.microsoftonline.com/ kom. + +**Access Keys:** +Wanneer jy 'n versoek-gebaseerde trigger vir die eerste keer stoor, skep Logic Apps outomaties 'n unieke eindpunt met 'n SAS-handtekening (gecreëer vanaf die Toegang Sleutel) wat toestemming gee om die workflow aan te roep. Hierdie SAS-handtekening is ingebed in die trigger se URL. Hierdie sleutel kan weer gegenereer word en dit sal 'n nuwe SAS-handtekening gee, maar die sleutels kan nie gelys word nie. + +Die URL om dit met die Toegang Sleutel aan te roep: + +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 }} @@ -146,15 +203,13 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "" -Name "