Files
hacktricks-cloud/src/pentesting-cloud/azure-security

Azure Pentesting

{{#include ../../banners/hacktricks-training.md}}

Basiese Inligting

{{#ref}} az-basic-information/ {{#endref}}

Azure Pentester/Rooi Span Metodologie

Om 'n AZURE omgewing te oudit, is dit baie belangrik om te weet: watter dienste word gebruik, wat is blootgestel, wie het toegang tot wat, en hoe is interne Azure dienste en eksterne dienste gekoppel.

Vanuit 'n Rooi Span perspektief is die eerste stap om 'n Azure omgewing te kompromitteer om te slaag om 'n paar akkrediteer vir Azure AD te verkry. Hier is 'n paar idees oor hoe om dit te doen:

  • Lekke in github (of soortgelyk) - OSINT
  • Sosiale Ingenieurswese
  • Wagwoord hergebruik (wagwoordlekke)
  • Kw vulnerabilities in Azure-gehuisvesde toepassings
  • Server Side Request Forgery met toegang tot metadata-eindpunt
  • Plaaslike Lêer Lees
  • /home/USERNAME/.azure
  • C:\Users\USERNAME\.azure
  • Die lêer accessTokens.json in az cli voor 2.30 - Jan2022 - gestoor toegangstokens in duidelike teks
  • Die lêer azureProfile.json bevat inligting oor die ingelogde gebruiker.
  • az logout verwyder die token.
  • Ou weergawe van Az PowerShell het toegangstokens in duidelike teks in TokenCache.dat gestoor. Dit stoor ook ServicePrincipalSecret in duidelike teks in AzureRmContext.json. Die cmdlet Save-AzContext kan gebruik word om tokens te stoor.
    Gebruik Disconnect-AzAccount om hulle te verwyder.
  • 3de partye gekompromitteer
  • Interne Werknemer
  • Algemene Phishing (akkrediteer of Oauth App)
  • Toestelkode Verifikasie Phishing
  • Azure Wagwoord Spuit

Selfs as jy nie enige gebruiker binne die Azure huurkontrak wat jy aanval, gecompromitteer het nie, kan jy 'n paar inligting daaruit versamel:

{{#ref}} az-unauthenticated-enum-and-initial-entry/ {{#endref}}

Note

Nadat jy daarin geslaag het om akkrediteer te verkry, moet jy weet aan wie behoort daardie akkrediteer, en waartoe hulle toegang het, so jy moet 'n paar basiese enumerasie uitvoer:

Basiese Enumerasie

Note

Onthou dat die luidste deel van die enumerasie die inlog is, nie die enumerasie self nie.

SSRF

As jy 'n SSRF in 'n masjien binne Azure gevind het, kyk hierdie bladsy vir truuks:

{{#ref}} https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html {{#endref}}

Bypass Inlog Voorwaardes

In gevalle waar jy 'n paar geldige akkrediteer het maar jy kan nie inlog nie, is dit 'n paar algemene beskermings wat in plek kan wees:

  • 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)
  • Blaaier -- Miskien is slegs 'n blaaier van sekere OS (Windows, Linux, Mac, Android, iOS) toegelaat. Vind uit watter OS die slagoffer/maatskappy gebruik.
  • Jy kan ook probeer om Service Principal akkrediteer te kompromitteer, aangesien hulle gewoonlik minder beperk is en hul inlog minder nagegaan word.

Nadat jy dit omseil het, mag jy in staat wees om terug te keer na jou aanvanklike opstelling en jy sal steeds toegang hê.

Subdomein Oorname

Whoami

Caution

Leer hoe om az cli, AzureAD en Az PowerShell in die Az - Entra ID afdeling te installeer.

Een van die eerste dinge wat jy moet weet is wie jy is (in watter omgewing jy is):

{{#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="AzureAD" }}

#Get the current session state
Get-AzureADCurrentSessionInfo
#Get details of the current tenant
Get-AzureADTenantDetail

{{#endtab }}

{{#tab name="Az PowerShell" }}

# 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
# Enumerate all resources visible to the current user
Get-AzResource
# Enumerate all Azure RBAC role assignments
Get-AzRoleAssignment # For all users
Get-AzRoleAssignment -SignInName test@corp.onmicrosoft.com # For current user

{{#endtab }} {{#endtabs }}

Caution

Een van die belangrikste opdragte om Azure te evalueer is Get-AzResource van Az PowerShell, aangesien dit jou toelaat om die hulpbronne te ken wat jou huidige gebruiker sigbaarheid oor het.

Jy kan dieselfde inligting in die webkonsol kry deur na https://portal.azure.com/#view/HubsExtension/BrowseAll te gaan of te soek na "Alle hulpbronne"

Entra ID Evalueering

Standaard behoort enige gebruiker voldoende regte te hê om dinge soos gebruikers, groepe, rolle, diensprincipals... te evalueer (kyk standaard AzureAD regte).
Jy kan hier 'n gids vind:

{{#ref}} az-services/az-azuread.md {{#endref}}

Note

Nou dat jy 'n bietjie inligting oor jou akrediteer het (en as jy 'n rooi span is, hoop ek jy is nie opgespoor nie). Dit is tyd om uit te vind watter dienste in die omgewing gebruik word.
In die volgende afdeling kan jy 'n paar maniere nagaan om 'n paar algemene dienste te evalueer.

App Service SCM

Kudu-konsol om in te log op die App Service 'houer'.

Webshell

Gebruik portal.azure.com en kies die shell, of gebruik shell.azure.com, vir 'n bash of powershell. Die 'skyf' van hierdie shell word as 'n beeldlêer in 'n stoorrekening gestoor.

Azure DevOps

Azure DevOps is apart van Azure. Dit het repositories, pipelines (yaml of release), borde, wiki, en meer. Veranderlike Groepe word gebruik om veranderlike waardes en geheime te stoor.

{{#include ../../banners/hacktricks-training.md}}