Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes

This commit is contained in:
Translator
2025-01-26 10:45:02 +00:00
parent e4fa58fa49
commit 4cb1c3654f
3 changed files with 77 additions and 11 deletions

View File

@@ -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 **`<HOME>/.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\<username>\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\<username>\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
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
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/<subscription-id>/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/<subscription-id>/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/<Scope>/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 "<RoleDefinitionId>").Actions`** uitvoer.
Of bel die API direk met **`az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?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/