From 4cb1c3654f4fbf705e1661b6df22c8b972e80925 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 26 Jan 2025 10:45:02 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes --- src/pentesting-cloud/azure-security/README.md | 46 +++++++++++++++---- .../az-privilege-escalation/README.md | 1 - .../az-storage-unauth.md | 41 +++++++++++++++++ 3 files changed, 77 insertions(+), 11 deletions(-) delete mode 100644 src/pentesting-cloud/azure-security/az-privilege-escalation/README.md create mode 100644 src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md diff --git a/src/pentesting-cloud/azure-security/README.md b/src/pentesting-cloud/azure-security/README.md index 2337c5fd8..54c37be13 100644 --- a/src/pentesting-cloud/azure-security/README.md +++ b/src/pentesting-cloud/azure-security/README.md @@ -12,7 +12,7 @@ az-basic-information/ ## Azure Pentester/Red Team Metodologie -Om 'n AZURE omgewing te oudit, is dit baie belangrik om te weet: watter **dienste gebruik word**, wat **blootgestel** word, wie **toegang** het tot wat, en hoe interne Azure dienste en **eksterne dienste** gekoppel is. +Om 'n AZURE omgewing te oudit, is dit baie belangrik om te weet: watter **dienste gebruik word**, wat is **blootgestel**, wie het **toegang** tot wat, en hoe is interne Azure dienste en **eksterne dienste** gekoppel. Vanuit 'n Red Team perspektief is die **eerste stap om 'n Azure omgewing te kompromitteer** om 'n **voorsprong** te verkry. @@ -38,22 +38,29 @@ Met hierdie inligting is die mees algemene maniere om te probeer om 'n voorspron - Kwetsbaarhede in Azure-gehoste toepassings - [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) met toegang tot metadata eindpunt - **Subdomein oorneem** soos in [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/) +- **Ander azure dienste misconfigurasies** - As 'n ontwikkelaar se skootrekenaar gecompromitteer is ([WinPEAS en LinPEAS](https://github.com/peass-ng/PEASS-ng) kan hierdie inligting vind): - Binne **`/.Azure`** - **`azureProfile.json`** bevat inligting oor ingelogde gebruikers van die verlede - **`clouds.config contains`** inligting oor intekeninge - **`service_principal_entries.json`** bevat toepassings akkrediteer (tenant id, kliënte en geheim). Slegs in Linux & macOS -- **`msal_token_cache.json`** bevat toegangstokens en hernuwingstokens. Slegs in Linux & macOS +- **`msal_token_cache.json`** bevat toegangstokens en verfrissingstokens. Slegs in Linux & macOS - **`service_principal_entries.bin`** en msal_token_cache.bin word in Windows gebruik en is met DPAPI versleuteld -- **`msal_http_cache.bin`** is 'n kas van HTTP versoek +- **`msal_http_cache.bin`** is 'n kas van HTTP versoeke - Laai dit: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)` - **`AzureRmContext.json`** bevat inligting oor vorige aanmeldings met Az PowerShell (maar geen akkrediteer nie) - Binne **`C:\Users\\AppData\Local\Microsoft\IdentityCache\*`** is verskeie `.bin` lêers met **toegangstokens**, ID tokens en rekeninginligting versleuteld met die gebruikers DPAPI. - Dit is moontlik om meer **toegangstokens** in die `.tbres` lêers binne **`C:\Users\\AppData\Local\Microsoft\TokenBroken\Cache\`** te vind wat 'n base64 versleuteling met DPAPI met toegangstokens bevat. -- In Linux en macOS kan jy **toegangstokens, hernuwingstokens en id tokens** van Az PowerShell (indien gebruik) verkry deur `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` te loop. +- In Linux en macOS kan jy **toegangstokens, verfrissingstokens en id tokens** van Az PowerShell (indien gebruik) verkry deur `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` te loop. - In Windows genereer dit net id tokens. - Dit is moontlik om te sien of Az PowerShell in Linux en macOS gebruik is deur te kyk of `$HOME/.local/share/.IdentityService/` bestaan (alhoewel die bevat lêers leeg en nutteloos is) +Vind **ander Azure Dienste misconfigurasies** wat tot 'n voorsprong kan lei op die volgende bladsy: + +{{#ref}} +az-unauthenticated-enum-and-initial-entry/ +{{#endref}} + > [!NOTE] > Onthou dat gewoonlik die **luidste** deel van die enumerasie die **aanmelding** is, nie die enumerasie self nie. @@ -69,7 +76,7 @@ az-enumeration-tools.md
-In gevalle waar jy 'n paar geldige akkrediteer het maar jy kan nie aanmeld nie, is dit 'n paar algemene beskermings wat in plek kan wees: +In gevalle waar jy 'n paar geldige akkrediteer het maar jy kan nie aanmeld nie, is dit 'n paar algemene beskermings wat moontlik in plek is: - **IP witlys** -- Jy moet 'n geldige IP kompromitteer - **Geo beperkings** -- Vind waar die gebruiker woon of waar die kantore van die maatskappy is en kry 'n IP van dieselfde stad (of land ten minste) @@ -130,14 +137,14 @@ Get-AzureADTenantDetail ### Entra ID Enumerasie & Privilege Escalation -Standaard behoort enige gebruiker **voldoende regte te hê om** dinge soos gebruikers, groepe, rolle, diensprincipals... te enumerate (kyk [standaard AzureAD regte](az-basic-information/index.html#default-user-permissions)).\ +Standaard behoort enige gebruiker **voldoende regte te hê om** dinge soos gebruikers, groepe, rolle, diensprincipals... te enumerate (kyk [default AzureAD permissions](az-basic-information/index.html#default-user-permissions)).\ Hier kan jy 'n gids vind: {{#ref}} az-services/az-azuread.md {{#endref}} -Kyk na die **Post-Exploitation gereedskap** om gereedskap te vind om regte in Entra ID te verhoog soos **AzureHound:** +Kyk na die **Post-Exploitation tools** om gereedskap te vind om regte in Entra ID te verhoog soos **AzureHound:** {{#ref}} az-enumeration-tools.md#automated-post-exploitation-tools @@ -148,13 +155,32 @@ az-enumeration-tools.md#automated-post-exploitation-tools Sodra jy weet wie jy is, kan jy begin om die **Azure dienste waartoe jy toegang het** te enumerate. +Jy moet begin om die **regte wat jy het** oor die hulpbronne uit te vind. Hiervoor: + +1. **Vind die hulpbron waartoe jy toegang het**: + Die Az PowerShell opdrag **`Get-AzResource`** laat jou **weet watter hulpbronne jou huidige gebruiker sigbaar het**. -Boonop kan jy dieselfde inligting in die **webkonsol** kry deur na [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) te gaan of te soek na "Alle hulpbronne" of deur uit te voer: `az rest --method GET --url "https://management.azure.com/subscriptions//resources?api-version=2021-04-01"` +Boonop kan jy dieselfde inligting in die **webkonsol** kry deur na [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) te gaan of te soek na "All resources" of deur uit te voer: `az rest --method GET --url "https://management.azure.com/subscriptions//resources?api-version=2021-04-01"` -Verder, met genoeg regte, kan die rol **`Get-AzRoleAssignment`** gebruik word om **alle rolle** in die subskripsie of die regte oor 'n spesifieke hulpbron te enumerate soos in: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`** +2. **Vind die regte wat jy het oor die hulpbronne waartoe jy toegang het en vind die rolle wat aan jou toegeken is**: -In die volgende afdeling kan jy inligting vind oor die mees algemene Azure dienste en hoe om hulle te enumerate: +Let daarop dat jy die regte **`Microsoft.Authorization/roleAssignments/read`** nodig het om hierdie aksie uit te voer. + +Verder, met genoeg regte, kan die rol **`Get-AzRoleAssignment`** gebruik word om **alle rolle** in die subskripsie of die regte oor 'n spesifieke hulpbron aan te dui soos in: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**. + +Dit is ook moontlik om hierdie inligting te verkry deur **`az rest --method GET --uri "https://management.azure.com//providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** uit te voer soos in: + +- **`az rest --method GET --uri "https://management.azure.com//subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** + +3. **Vind die gedetailleerde regte van die rolle wat aan jou geheg is**: + +Dan, om die gedetailleerde regte te kry, kan jy **`(Get-AzRoleDefinition -Id "").Actions`** uitvoer. + +Of bel die API direk met **`az rest --method GET --uri "https://management.azure.com//subscriptions//providers/Microsoft.Authorization/roleDefinitions/?api-version=2020-08-01-preview" | jq ".properties"`**. + + +In die volgende afdeling kan jy **inligting vind oor die mees algemene Azure dienste en hoe om hulle te enumerate**: {{#ref}} az-services/ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md deleted file mode 100644 index 3e45f0680..000000000 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md +++ /dev/null @@ -1 +0,0 @@ -# Az - Privilege Escalation diff --git a/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md b/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md new file mode 100644 index 000000000..fc22a19b9 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md @@ -0,0 +1,41 @@ +# Az - Storage Unauth + +{{#include ../../../banners/hacktricks-training.md}} + +## Storage Unauth + +Vir meer inligting oor stoor, kyk: + +{{#ref}} +../az-services/az-storage.md +{{#endref}} + +### Open Storage + +Jy kan oop stoor ontdek met 'n hulpmiddel soos [**InvokeEnumerateAzureBlobs.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Invoke-EnumerateAzureBlobs.ps1) wat die lêer **`Microburst/Misc/permutations.txt`** sal gebruik om permutasies (baie eenvoudig) te genereer om te probeer **oop stoor rekeninge te vind**. +```bash +Import-Module .\MicroBurst\MicroBurst.psm1 +Invoke-EnumerateAzureBlobs -Base corp +[...] +https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list +[...] + +# Access https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list +# Check: ssh_info.json +# Access then https://corpcommon.blob.core.windows.net/secrets/ssh_info.json +``` +Jy kan ook 'n metode van [**MicroBust**](https://github.com/NetSPI/MicroBurst) vir so 'n doel gebruik. Hierdie funksie sal die basiese domeinnaam (en 'n paar permutasies) in verskeie **azure domeine** (insluitend stoor domeine) soek: +```bash +Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose +Invoke-EnumerateAzureSubDomains -Base corp -Verbose +``` +### SAS URL's + +'n _**gedeelde toegang handtekening**_ (SAS) URL is 'n URL wat **toegang bied** tot 'n sekere deel van 'n Stoor rekening (kan 'n volle houer wees, 'n lêer...) met spesifieke toestemmings (lees, skryf...) oor die hulpbronne. As jy een vind wat gelek het, kan jy in staat wees om sensitiewe inligting te bekom, hulle lyk soos volg (dit is om toegang tot 'n houer te verkry, as dit net toegang tot 'n lêer gegee het, sal die pad van die URL ook daardie lêer bevat): + +`https://.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D` + +Gebruik [**Storage Explorer**](https://azure.microsoft.com/en-us/features/storage-explorer/) om toegang tot die data te verkry + + +{{#include ../../../banners/hacktricks-training.md}}