Authentication & Basic Enumeration
Log in to Azure using az cli
User
export EMAIL=''
export PASSWORD=''
az login -u "$EMAIL" -p "$PASSWORD" [--allow-no-subscriptions]
ARM (Service Principal Authentication)
export ARM_CLIENT_ID=''
export ARM_SECRET=''
export TENANT_ID='fdd066e1-ee37-49bc-b08f-d0e152119b04'
az login --service-principal -u "$ARM_CLIENT_ID" -p "$ARM_SECRET" --tenant "$TENANT_ID" [--allow-no-subscriptions]
Connection Information
Displays details of the currently authenticated user.
az ad signed-in-user show
List all subscriptions accessible by the current user
az account list --output table
Usfeul information
export SUBSCRIPTION_ID=$(az account show --query id --output tsv)
export TENANT_ID=$(az account show --query tenantId --output tsv)
export MY_OID=$(az ad sp show --id <ID> --query id -o tsv)
Enumerate ARM Resources
az rest --method GET \
--url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resources?api-version=2021-04-01" \
| jq -r '.value[] | "\(.name) | \(.type) | \(.id)"'
Check Effective Permissions
Check what actions you can perform at each scope (subscription → resource group → resource):
At subscription level
az rest --method GET \
--url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/providers/Microsoft.Authorization/permissions?api-version=2022-04-01"
At resource group level
az rest --method GET \
--url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/<RG>/providers/Microsoft.Authorization/permissions?api-version=2022-04-01"
At resource level
az rest --method GET \
--url "https://management.azure.com/$RESOURCE_PATH/providers/Microsoft.Authorization/permissions?api-version=2022-04-01"
Check RBAC Role Assignments
All role assignments for current principal
az role assignment list --assignee "$CLIENT_ID" --all --output table
Inspect a custom role definition
az role definition list --name "<role-name>" \
--query "[].permissions[0].{actions:actions, dataActions:dataActions}"