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

This commit is contained in:
Translator
2025-01-26 10:44:50 +00:00
parent ec16fd8f09
commit dc5948e3d0
3 changed files with 90 additions and 24 deletions

View File

@@ -20,7 +20,7 @@ Kutoka kwa mtazamo wa Red Team, **hatua ya kwanza ya kuathiri mazingira ya Azure
Hatua ya kwanza ni bila shaka kuhesabu taarifa kuhusu mpangilio unayoshambulia na kujaribu kupata mwanzo.
Kulingana na jina la kikoa, inawezekana kujua **kama kampuni inatumia Azure**, kupata **tenant ID**, kupata **kikoa halali** katika mpangilio huo (ikiwa zaidi) na kupata **taarifa muhimu** kama SSO imewezeshwa, mipangilio ya barua, barua pepe halali za watumiaji...
Kulingana na jina la kikoa, inawezekana kujua **kama kampuni inatumia Azure**, kupata **tenant ID**, kupata **viwango vingine halali** katika mpangilio huo (ikiwa vipo) na kupata **taarifa muhimu** kama SSO imewezeshwa, mipangilio ya barua, barua pepe halali za watumiaji...
Angalia ukurasa ufuatao kujifunza jinsi ya kufanya **external enumeration**:
@@ -28,8 +28,8 @@ Angalia ukurasa ufuatao kujifunza jinsi ya kufanya **external enumeration**:
az-unauthenticated-enum-and-initial-entry/
{{#endref}}
Kwa taarifa hii njia za kawaida za kujaribu kupata mwanzo ni:
- **OSINT**: Angalia **leaks** katika Github au jukwaa lolote la chanzo wazi ambalo linaweza kuwa na **credentials** au taarifa za kuvutia.
Kwa taarifa hii, njia za kawaida za kujaribu kupata mwanzo ni:
- **OSINT**: Angalia kwa **leaks** katika Github au jukwaa lolote la chanzo wazi ambalo linaweza kuwa na **credentials** au taarifa za kuvutia.
- **Password** reuse, leaks au [password spraying](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
- Nunua credentials kutoka kwa mfanyakazi
- [**Common Phishing**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (credentials au Oauth App)
@@ -38,28 +38,35 @@ Kwa taarifa hii njia za kawaida za kujaribu kupata mwanzo ni:
- Uthibitisho wa udhaifu katika Maombi ya Azure-Hosted
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) yenye ufikiaji wa metadata endpoint
- **Subdomain takeovers** kama ilivyo katika [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/)
- Ikiwa kompyuta ya mende inashambuliwa ([WinPEAS na LinPEAS](https://github.com/peass-ng/PEASS-ng) zinaweza kupata taarifa hii):
- **Mikosefu mingine ya huduma za azure**
- Ikiwa kompyuta ya mende imeathiriwa ([WinPEAS na LinPEAS](https://github.com/peass-ng/PEASS-ng) zinaweza kupata taarifa hii):
- Ndani ya **`<HOME>/.Azure`**
- **`azureProfile.json`** ina taarifa kuhusu watumiaji walioingia kutoka zamani
- **`clouds.config contains`** taarifa kuhusu usajili
- **`service_principal_entries.json`** ina credentials za maombi (tenant id, clients na siri). Tu katika Linux & macOS
- **`msal_token_cache.json`** ina tokens za ufikiaji na tokens za refresher. Tu katika Linux & macOS
- **`msal_token_cache.json`** ina tokens za ufikiaji na tokens za kuboresha. Tu katika Linux & macOS
- **`service_principal_entries.bin`** na msal_token_cache.bin zinatumika katika Windows na zimefungwa kwa DPAPI
- **`msal_http_cache.bin`** ni cache ya ombi la HTTP
- Load it: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)`
- **`AzureRmContext.json`** ina taarifa kuhusu kuingia kwa awali kwa kutumia Az PowerShell (lakini hakuna credentials)
- **`AzureRmContext.json`** ina taarifa kuhusu kuingia kwa awali kutumia Az PowerShell (lakini hakuna credentials)
- Ndani ya **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** kuna faili kadhaa za `.bin` zenye **access tokens**, ID tokens na taarifa za akaunti zilizofungwa kwa DPAPI ya watumiaji.
- Inawezekana kupata zaidi **access tokens** katika faili za `.tbres` ndani ya **`C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\`** ambazo zina base64 iliyofungwa kwa DPAPI yenye access tokens.
- Inawezekana kupata **access tokens** zaidi katika faili za `.tbres` ndani ya **`C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\`** ambazo zina base64 iliyofungwa kwa DPAPI yenye access tokens.
- Katika Linux na macOS unaweza kupata **access tokens, refresh tokens na id tokens** kutoka Az PowerShell (ikiwa imetumika) ukikimbia `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"`
- Katika Windows hii inazalisha tu id tokens.
- Inawezekana kuona kama Az PowerShell ilitumika katika Linux na macOS kwa kuangalia kama `$HOME/.local/share/.IdentityService/` ipo (ingawa faili zilizomo ni tupu na hazina matumizi)
- Inawezekana kuona kama Az PowerShell ilitumika katika Linux na macOS kwa kuangalia kama `$HOME/.local/share/.IdentityService/` ipo (ingawa faili zilizomo ni tupu na hazina maana)
Pata **mikosefu mingine ya Huduma za Azure** ambayo inaweza kupelekea mwanzo katika ukurasa ufuatao:
{{#ref}}
az-unauthenticated-enum-and-initial-entry/
{{#endref}}
> [!NOTE]
> Kumbuka kwamba kawaida sehemu ya **kelele** katika hesabu ni **kuingia**, si hesabu yenyewe.
> Kumbuka kwamba kawaida sehemu ya **kelele** ya kuhesabu ni **kuingia**, si kuhesabu yenyewe.
### Azure & Entra ID tooling
Zana zifuatazo zitakuwa muhimu sana kuhesabu wapangilio wa Entra ID na mazingira ya Azure polepole (ili kuepuka kugunduliwa) au kiotomatiki (ili kuokoa muda):
Zana zifuatazo zitakuwa muhimu sana kuhesabu wapangilio wa Entra ID na mazingira ya Azure polepole (ili kuepuka kugundulika) au kiotomatiki (ili kuokoa muda):
{{#ref}}
az-enumeration-tools.md
@@ -72,11 +79,11 @@ az-enumeration-tools.md
Katika hali ambapo una credentials halali lakini huwezi kuingia, hizi ni baadhi ya ulinzi wa kawaida ambao unaweza kuwepo:
- **IP whitelisting** -- Unahitaji kuathiri IP halali
- **Geo restrictions** -- Pata mahali mtumiaji anaishi au ofisi za kampuni na pata IP kutoka jiji moja (au nchi angalau)
- **Geo restrictions** -- Pata mahali ambapo mtumiaji anaishi au ofisi za kampuni na pata IP kutoka jiji moja (au nchi angalau)
- **Browser** -- Huenda ni kivinjari tu kutoka OS fulani (Windows, Linux, Mac, Android, iOS) kinachoruhusiwa. Jua ni OS ipi mhasiriwa/kampuni inatumia.
- Unaweza pia kujaribu **kuathiri credentials za Service Principal** kwani kawaida hazina mipaka na kuingia kwake hakuchunguzwi sana
- Unaweza pia kujaribu **kuathiri credentials za Service Principal** kwani kawaida hazina mipaka mingi na kuingia kwake hakuchunguzwi sana
Baada ya kuweza kuzikwepa, unaweza kurudi kwenye mipangilio yako ya awali na bado utakuwa na ufikiaji.
Baada ya kuweza kuzunguka, unaweza kurudi kwenye mipangilio yako ya awali na bado utakuwa na ufikiaji.
### Whoami
@@ -128,7 +135,7 @@ Get-AzureADTenantDetail
{{#endtabs }}
### Uainishaji wa Entra ID & Kuinua Mamlaka
### Uainishaji wa Entra ID & Kuinua Privilege
Kwa kawaida, mtumiaji yeyote anapaswa kuwa na **idhini ya kutosha kuainisha** mambo kama watumiaji, vikundi, majukumu, wahusika wa huduma... (angalia [idhini za AzureAD za kawaida](az-basic-information/index.html#default-user-permissions)).\
Unaweza kupata hapa mwongozo:
@@ -144,39 +151,58 @@ az-enumeration-tools.md#automated-post-exploitation-tools
{{#endref}}
### Uainishaji wa Huduma za Azure
### Uainishe Huduma za Azure
Mara tu unavyojua wewe ni nani, unaweza kuanza kuainisha **huduma za Azure unazoweza kufikia**.
Mara tu unavyojua wewe ni nani, unaweza kuanza kuainisha **huduma za Azure unazofikia**.
Unapaswa kuanza kugundua **idhini ulizonazo** juu ya rasilimali. Kwa hili:
1. **Pata rasilimali unazofikia**:
Amri ya Az PowerShell **`Get-AzResource`** inakuwezesha **kujua rasilimali ambazo mtumiaji wako wa sasa anaonekana nazo**.
Zaidi ya hayo, unaweza kupata taarifa hiyo hiyo katika **konsoli ya wavuti** kwa kutembelea [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) au kutafuta "Rasilimali zote" au kutekeleza: `az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"`
Zaidi, kwa idhini ya kutosha, jukumu **`Get-AzRoleAssignment`** linaweza kutumika ku **ainisha majukumu yote** katika usajili au idhini juu ya rasilimali maalum kwa kuonyesha kama katika: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**
2. **Pata idhini ulizonazo juu ya rasilimali unazofikia na pata majukumu yaliyotolewa kwako**:
Katika sehemu ifuatayo unaweza kupata taarifa kuhusu huduma za Azure zinazotumika sana na jinsi ya kuziainisha:
Kumbuka kuwa unahitaji idhini **`Microsoft.Authorization/roleAssignments/read`** ili kutekeleza hatua hii.
Zaidi ya hayo, kwa idhini za kutosha, jukumu **`Get-AzRoleAssignment`** linaweza kutumika ku **ainisha majukumu yote** katika usajili au idhini juu ya rasilimali maalum kwa kuonyesha kama katika: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**.
Pia inawezekana kupata taarifa hii kwa kutekeleza **`az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** kama katika:
- **`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. **Pata idhini za kina za majukumu yaliyokunganishwa nawe**:
Kisha, ili kupata idhini za kina unaweza kutekeleza **`(Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions`**.
Au piga simu kwa API moja kwa moja kwa **`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"`**.
Katika sehemu ifuatayo unaweza kupata **taarifa kuhusu huduma za kawaida za Azure na jinsi ya kuziainisha**:
{{#ref}}
az-services/
{{#endref}}
### Kuinua Mamlaka, Baada ya Utekelezaji & Kudumisha Uthibitisho katika Huduma za Azure
### Kuinua Privilege, Baada ya Utekelezaji & Kudumisha Katika Huduma za Azure
Mara tu unavyojua jinsi mazingira ya Azure yalivyojengwa na huduma zipi zinatumika, unaweza kuanza kutafuta njia za **kuinua mamlaka, kuhamasisha kwa upande, kufanya mashambulizi mengine ya baada ya utekelezaji na kudumisha uthibitisho**.
Mara tu unavyojua jinsi mazingira ya Azure yalivyojengwa na huduma zipi zinatumika, unaweza kuanza kutafuta njia za **kuinua mamlaka, kuhamasisha kwa upande, kutekeleza mashambulizi mengine ya baada ya utekelezaji na kudumisha kudumu**.
Katika sehemu ifuatayo unaweza kupata taarifa kuhusu jinsi ya kuinua mamlaka katika huduma za Azure zinazotumika sana:
Katika sehemu ifuatayo unaweza kupata taarifa kuhusu jinsi ya kuinua mamlaka katika huduma za kawaida za Azure:
{{#ref}}
az-privilege-escalation/
{{#endref}}
Katika sehemu ifuatayo unaweza kupata taarifa kuhusu jinsi ya kufanya mashambulizi ya baada ya utekelezaji katika huduma za Azure zinazotumika sana:
Katika ifuatayo unaweza kupata taarifa kuhusu jinsi ya kutekeleza mashambulizi ya baada ya utekelezaji katika huduma za kawaida za Azure:
{{#ref}}
az-post-exploitation/
{{#endref}}
Katika sehemu ifuatayo unaweza kupata taarifa kuhusu jinsi ya kudumisha uthibitisho katika huduma za Azure zinazotumika sana:
Katika ifuatayo unaweza kupata taarifa kuhusu jinsi ya kudumisha kudumu katika huduma za kawaida za Azure:
{{#ref}}
az-persistence/

View File

@@ -1 +0,0 @@
# Az - Kuinua Haki

View File

@@ -0,0 +1,41 @@
# Az - Storage Unauth
{{#include ../../../banners/hacktricks-training.md}}
## Storage Unauth
Kwa maelezo zaidi kuhusu uhifadhi angalia:
{{#ref}}
../az-services/az-storage.md
{{#endref}}
### Open Storage
Unaweza kugundua uhifadhi wazi kwa kutumia chombo kama [**InvokeEnumerateAzureBlobs.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Invoke-EnumerateAzureBlobs.ps1) ambacho kitatumia faili **`Microburst/Misc/permutations.txt`** kuunda permutations (rahisi sana) kujaribu **kupata akaunti za uhifadhi wazi**.
```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: <Name>ssh_info.json</Name>
# Access then https://corpcommon.blob.core.windows.net/secrets/ssh_info.json
```
Unaweza pia kutumia njia kutoka [**MicroBust**](https://github.com/NetSPI/MicroBurst) kwa lengo hilo. Kazi hii itatafuta jina la kikoa cha msingi (na permutations chache) katika **azure domains** kadhaa (ikiwemo kikoa cha hifadhi):
```bash
Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
Invoke-EnumerateAzureSubDomains -Base corp -Verbose
```
### SAS URLs
A _**shared access signature**_ (SAS) URL ni URL ambayo **inatoa ufikiaji** kwa sehemu fulani ya akaunti ya Hifadhi (inaweza kuwa kontena kamili, faili...) kwa ruhusa maalum (kusoma, kuandika...) juu ya rasilimali hizo. Ikiwa utapata moja iliyovuja unaweza kuwa na uwezo wa kufikia taarifa nyeti, zinaonekana kama hii (hii ni kufikia kontena, ikiwa ilikuwa inatoa ufikiaji kwa faili tu, njia ya URL itakuwa na faili hiyo pia):
`https://<storage_account_name>.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`
Tumia [**Storage Explorer**](https://azure.microsoft.com/en-us/features/storage-explorer/) kufikia data
{{#include ../../../banners/hacktricks-training.md}}