Azure Pentesting
Reading time: 10 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Basic Information
Jifunze misingi ya Azure na Entra ID katika ukurasa ufuatao:
Azure Pentester/Red Team Methodology
Ili kukagua mazingira ya AZURE ni muhimu sana kujua: ni huduma zipi zinatumika, nini kinachoweza kuonyeshwa, nani ana ufikiaji wa nini, na jinsi huduma za ndani za Azure na huduma za nje zinavyounganishwa.
Kutoka kwa mtazamo wa Red Team, hatua ya kwanza ya kuathiri mazingira ya Azure ni kufanikiwa kupata mwanzo.
External enum & Initial Access
Hatua ya kwanza ni bila shaka kuorodhesha taarifa kuhusu mpangilio unao shambulia na kujaribu kupata mwanzo.
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 za watumiaji halali...
Angalia ukurasa ufuatao kujifunza jinsi ya kufanya external enumeration:
Az - Unauthenticated Enum & Initial Entry
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
- Nunua credentials za mfanyakazi
- Common Phishing (credentials au Oauth App)
- Device Code Authentication Phishing
- 3rd parties breached
- Uthibitisho wa udhaifu katika Maombi ya Azure-Hosted
- Server Side Request Forgery yenye ufikiaji wa metadata endpoint
- Subdomain takeovers kama ilivyo katika https://godiego.co/posts/STO-Azure/
- Mikosefu mingine ya huduma za azure
- Ikiwa kompyuta ya mende ya developer imeathiriwa (WinPEAS na LinPEAS zinaweza kupata taarifa hii):
- Ndani ya
<HOME>/.Azure
azureProfile.json
ina taarifa kuhusu watumiaji walioingia kutoka zamaniclouds.config contains
taarifa kuhusu usajiliservice_principal_entries.json
ina credentials za maombi (tenant id, clients na siri). Tu katika Linux & macOSmsal_token_cache.json
ina tokens za ufikiaji na tokens za kurefresh. Tu katika Linux & macOSservice_principal_entries.bin
na msal_token_cache.bin zinatumika katika Windows na zimefungwa kwa DPAPImsal_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 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 access tokens zaidi katika faili za
.tbres
ndani yaC:\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)
Pata mikosefu mingine ya Huduma za Azure ambayo inaweza kupelekea mwanzo katika ukurasa ufuatao:
Az - Unauthenticated Enum & Initial Entry
note
Kumbuka kwamba kawaida sehemu ya kelele katika orodha ni kuingia, si orodha yenyewe.
Azure & Entra ID tooling
Zana zifuatazo zitakuwa muhimu sana kuorodhesha wapangilio wa Entra ID na mazingira ya Azure polepole (ili kuepuka kugundulika) au kiotomatiki (ili kuokoa muda):
Bypass Access Policies
.png)
Katika kesi 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 ambapo mtumiaji anaishi au ofisi za kampuni na pata IP kutoka jiji hilo hilo (au nchi angalau)
- Browser -- Huenda ni kivinjari tu kutoka OS fulani (Windows, Linux, Mac, Android, iOS) kinachoruhusiwa. Jua ni OS ipi ambayo mwathirika/kampuni inatumia.
- Unaweza pia kujaribu kuathiri credentials za Service Principal kwani kawaida huwa na mipaka kidogo na kuingia kwake hakuchunguzwi sana
Baada ya kupita, unaweza kurudi kwenye mipangilio yako ya awali na bado utakuwa na ufikiaji.
Angalia:
Az - Conditional Access Policies & MFA Bypass
Whoami
caution
Jifunze jinsi ya kufunga az cli, AzureAD na Az PowerShell katika sehemu ya Az - Entra ID.
Moja ya mambo ya kwanza unahitaji kujua ni wewe ni nani (katika mazingira gani uko):
az account list
az account tenant list # Current tenant info
az account subscription list # Current subscription info
az ad signed-in-user show # Current signed-in user
az ad signed-in-user list-owned-objects # Get owned objects by current user
az account management-group list #Not allowed by default
Entra ID Enumeration & Privesc
Kwa kawaida, mtumiaji yeyote anapaswa kuwa na idhini za kutosha kuorodhesha mambo kama watumiaji, vikundi, majukumu, wahusika wa huduma... (angalia default AzureAD permissions).
Unaweza kupata hapa mwongozo:
Az - Entra ID (AzureAD) & Azure IAM
Angalia Zana za Post-Exploitation ili kupata zana za kupandisha hadhi katika Entra ID kama AzureHound:
Automated Post Exploitation Tools
Azure Enumeration
Mara tu unavyojua wewe ni nani, unaweza kuanza kuorodhesha huduma za Azure unazofikia.
Unapaswa kuanza kugundua idhini ulizonazo juu ya rasilimali. Kwa hili:
- Pata rasilimali unayo ufikia:
tip
Hii haitahitaji idhini maalum yoyote.
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 au kutafuta "Rasilimali zote" au kutekeleza:
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"
- Pata ruhusa ulizonazo juu ya rasilimali unazoweza kuona:
tip
Hii haitahitaji ruhusa maalum yoyote.
Kwa kuzungumza na API https://management.azure.com/{resource_id}/providers/Microsoft.Authorization/permissions?api-version=2022-04-01
unaweza kupata ruhusa ulizonazo juu ya rasilimali iliyoainishwa katika resource_id
.
Hivyo, ukikagua kila moja ya rasilimali ulizonazo, unaweza kupata ruhusa ulizonazo juu yao.
warning
Unaweza kujiandaa kwa hii kwa kutumia chombo Find_My_Az_Management_Permissions.
Orodhesha ruhusa kwa **`Microsoft.Authorization/roleAssignments/read`**
tip
Kumbuka kwamba unahitaji ruhusa Microsoft.Authorization/roleAssignments/read
ili kutekeleza hatua hii.
- Kwa ruhusa za kutosha, jukumu
Get-AzRoleAssignment
linaweza kutumika ili kuorodhesha majukumu yote katika usajili au ruhusa juu ya rasilimali maalum kwa kuonyesha kama ifuatavyo:
Get-AzRoleAssignment -Scope /subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4
Inawezekana pia kupata taarifa hii ukiendesha:
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
kama katika:
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
- Chaguo jingine ni kupata majukumu yaliyoambatanishwa nawe katika azure. Hii pia inahitaji ruhusa
Microsoft.Authorization/roleAssignments/read
:
az role assignment list --assignee "<email>" --all --output table
Au kukimbia yafuatayo (Ikiwa matokeo ni tupu inaweza kuwa kwa sababu huna ruhusa ya kuyapata):
az rest --method GET --uri 'https://management.azure.com/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId eq '<user-id>'
- Pata ruhusa za kina za majukumu yaliyoambatanishwa na wewe:
Kisha, ili kupata ruhusa za kina unaweza kukimbia (Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions
.
Au piga simu kwa API moja kwa moja na
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2022-04-01" | jq ".properties"
Katika sehemu ifuatayo unaweza kupata habari kuhusu huduma za kawaida za Azure na jinsi ya kuzipata:
Kuinua Mamlaka, Baada ya Utekelezaji & Kudumu
Mara tu unavyojua jinsi mazingira ya Azure yalivyojengwa na ni huduma zipi zinatumika, unaweza kuanza kutafuta njia za kuinua mamlaka, kuhamasisha kwa upande, kufanya mashambulizi mengine baada ya utekelezaji na kudumisha uwepo.
Katika sehemu ifuatayo unaweza kupata habari kuhusu jinsi ya kuinua mamlaka katika huduma za kawaida za Azure:
Katika sehemu ifuatayo unaweza kupata habari kuhusu jinsi ya kufanya mashambulizi baada ya utekelezaji katika huduma za kawaida za Azure:
Katika sehemu ifuatayo unaweza kupata habari kuhusu jinsi ya kudumisha uwepo katika huduma za kawaida za Azure:
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.