Azure Pentesting
{{#include ../../banners/hacktricks-training.md}}
Basic Information
Jifunze misingi ya Azure na Entra ID katika ukurasa ufuatao:
{{#ref}} az-basic-information/ {{#endref}}
Azure Pentester/Red Team Methodology
Ili kukagua mazingira ya AZURE ni muhimu sana kujua: ni huduma zipi zinatumika, nini kinacho onyeshwa, 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 kuhesabu taarifa kuhusu mpangilio unayoshambulia 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:
{{#ref}} az-unauthenticated-enum-and-initial-entry/ {{#endref}}
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 kutoka kwa 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 imeathiriwa (WinPEAS na LinPEAS zinaweza kupata taarifa hii):
- Ndani ya
<HOME>/.Azure azureProfile.jsonina taarifa kuhusu watumiaji walioingia kutoka zamaniclouds.config containstaarifa kuhusu usajiliservice_principal_entries.jsonina credentials za maombi (tenant id, clients na siri). Tu katika Linux & macOSmsal_token_cache.jsonina tokens za ufikiaji na tokens za upya. Tu katika Linux & macOSservice_principal_entries.binna msal_token_cache.bin zinatumika katika Windows na zimefungwa kwa DPAPImsal_http_cache.binni cache ya ombi la HTTP- Load it:
with open("msal_http_cache.bin", 'rb') as f: pickle.load(f) AzureRmContext.jsonina taarifa kuhusu kuingia kwa awali kwa kutumia Az PowerShell (lakini hakuna credentials)- Ndani ya
C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*kuna faili kadhaa za.binzenye access tokens, ID tokens na taarifa za akaunti zilizofungwa kwa DPAPI ya watumiaji. - Inawezekana kupata access tokens zaidi katika faili za
.tbresndani 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:
{{#ref}} az-unauthenticated-enum-and-initial-entry/ {{#endref}}
Note
Kumbuka kwamba kawaida sehemu ya kelele katika hesabu ni kuingia, si hesabu 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):
{{#ref}} az-enumeration-tools.md {{#endref}}
Bypass Access Policies

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 moja (au nchi angalau)
- Browser -- Huenda ni kivinjari tu kutoka OS fulani (Windows, Linux, Mac, Android, iOS) kinachoruhusiwa. Jua ni OS ipi mwathirika/kampuni inatumia.
- Unaweza pia kujaribu kuathiri credentials za Service Principal kwani kawaida hazina mipaka mingi na kuingia kwake hakuchunguzwi sana
Baada ya kupita, unaweza kuwa na uwezo wa kurudi kwenye mipangilio yako ya awali na bado utakuwa na ufikiaji.
Angalia:
{{#ref}} az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md {{#endref}}
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):
{{#tabs }} {{#tab name="az cli" }}
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
{{#endtab }}
{{#tab name="Az" }}
# Get the information about the current context (Account, Tenant, Subscription etc.)
Get-AzContext
# List all available contexts
Get-AzContext -ListAvailable
# Enumerate subscriptions accessible by the current user
Get-AzSubscription
#Get Resource group
Get-AzResourceGroup
{{#endtab }}
{{#tab name="Mg" }}
#Get the current session
Get-MgContext
{{#endtab }}
{{#tab name="AzureAD" }}
#Get the current session state
Get-AzureADCurrentSessionInfo
#Get details of the current tenant
Get-AzureADTenantDetail
{{#endtab }} {{#endtabs }}
Entra ID Enumeration & Privesc
Kwa kawaida, mtumiaji yeyote anapaswa kuwa na idhini ya kutosha kuhesabu mambo kama watumiaji, vikundi, majukumu, wahusika wa huduma... (angalia default AzureAD permissions).
Unaweza kupata hapa mwongozo:
{{#ref}} az-services/az-azuread.md {{#endref}}
Angalia Post-Exploitation tools ili kupata zana za kupandisha madaraka katika Entra ID kama AzureHound:
{{#ref}} az-enumeration-tools.md#automated-post-exploitation-tools {{#endref}}
Azure Enumeration
Mara tu unavyojua wewe ni nani, unaweza kuanza kuhesabu huduma za Azure unazoweza kufikia.
Unapaswa kuanza kugundua idhini ulizonazo juu ya rasilimali. Kwa hili:
- Pata rasilimali unazoweza kufikia:
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 "All resources" au kutekeleza: az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"
- Pata idhini ulizonazo juu ya rasilimali unazoweza kufikia na pata majukumu yaliyotolewa kwako:
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 hesabu 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"
- 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 kuhesabu:
{{#ref}} az-services/ {{#endref}}
Privilege Escalation, Post-Exploitation & Persistence
Mara tu unavyojua jinsi mazingira ya Azure yalivyojengwa na huduma zipi zinatumika, unaweza kuanza kutafuta njia za kupandisha madaraka, kuhamasisha kwa upande, kutekeleza mashambulizi mengine ya baada ya unyakuzi na kudumisha kudumu.
Katika sehemu ifuatayo unaweza kupata taarifa kuhusu jinsi ya kupandisha madaraka katika huduma za kawaida za Azure:
{{#ref}} az-privilege-escalation/ {{#endref}}
Katika ifuatayo unaweza kupata taarifa kuhusu jinsi ya kutekeleza mashambulizi ya baada ya unyakuzi katika huduma za kawaida za Azure:
{{#ref}} az-post-exploitation/ {{#endref}}
Katika ifuatayo unaweza kupata taarifa kuhusu jinsi ya kudumisha kudumu katika huduma za kawaida za Azure:
{{#ref}} az-persistence/ {{#endref}}
{{#include ../../banners/hacktricks-training.md}}