Cloud adoption on Microsoft Azure is accelerating, and so is the attack surface that comes with it. Misconfigured storage accounts, over-privileged service principals, exposed APIs, and weak identity controls have become the favorite entry points for threat actors targeting Azure environments. To stay ahead of adversaries, security teams need to conduct structured, methodical penetration testing against their Azure infrastructure.
This guide walks through the most effective Azure pentesting tools and frameworks actively used by red teamers and cloud security professionals, complete with commands, techniques, and real-world use cases. Whether you are building an internal red team capability or evaluating your organization's cloud posture, this resource is your starting point.
If your team lacks the bandwidth or expertise to conduct a thorough Azure penetration test, the specialists at Redfox Cybersecurity are ready to help. Their cloud penetration testing services are purpose-built for modern Azure environments.
Azure environments introduce a unique set of risks that traditional on-premises security assessments do not cover. Shared responsibility models, federated identity systems, and the sheer volume of native Azure services create complex attack surfaces.
Common vulnerabilities found in Azure during penetration tests include:
Professional penetration testing surfaces these issues before attackers do. If you want a certified team to assess your Azure environment end-to-end, Redfox Cybersecurity's penetration testing services provide that assurance.
Before exploiting any vulnerability, a penetration tester must understand the target environment. Reconnaissance in Azure focuses on identifying exposed assets, tenant configurations, and publicly available metadata.
AADInternals is a PowerShell-based toolkit for Azure Active Directory and Microsoft 365 reconnaissance and attacks. It allows testers to enumerate tenant information, extract configuration details, and simulate identity attacks.
Install AADInternals:
Install-Module AADInternals -Force
Import-Module AADInternals
[cta]
Enumerate tenant information from a domain:
Get-AADIntTenantID -Domain targetdomain.com
[cta]
Get all domains associated with the tenant:
Invoke-AADIntReconAsOutsider -DomainName targetdomain.com | Format-Table
[cta]
This gives you login endpoints, federation status, and tenant ID without any credentials, making it ideal for unauthenticated recon.
MicroBurst is a PowerShell toolkit developed by NetSPI that automates Azure service enumeration. It covers storage, apps, virtual machines, and more.
Install MicroBurst:
git clone https://github.com/NetSPI/MicroBurst.git
Import-Module .\MicroBurst\MicroBurst.psm1
[cta]
Enumerate Azure storage accounts by brute-forcing common names:
Invoke-EnumerateAzureBlobs -Base "companyname"
Enumerate all subdomains associated with an Azure tenant:
Invoke-EnumerateAzureSubDomains -Base "targetcompany"
[cta]
MicroBurst is especially useful during external recon phases to identify exposed resources before any credentials are obtained.
Once reconnaissance is complete, the next phase focuses on gaining an initial foothold in the Azure environment.
ROADtools is a framework for interacting with Azure AD and performing identity-based attacks. It helps testers extract data from Azure AD after obtaining credentials.
Install ROADtools:
pip install roadtools
[cta]
Authenticate to Azure AD:
roadrecon auth -u user@targetdomain.com -p Password123
[cta]
Gather all Azure AD objects including users, groups, and apps:
roadrecon gather
[cta]
Launch the web interface to explore the collected data:
roadrecon gui
[cta]
ROADtools provides a visual interface that makes it easy to map relationships between users, service principals, and application permissions, which is critical for privilege escalation planning.
Spray365 is a password spraying tool designed for Azure Active Directory. It staggers requests to avoid lockouts and supports proxy rotation for stealth.
Install Spray365:
git clone https://github.com/MarkoH17/Spray365
pip3 install -r requirements.txt
[cta]
Generate an execution plan:
python3 spray365.py generate -d targetdomain.com -u users.txt -p passwords.txt -o plan.json
[cta]
Execute the spray:
python3 spray365.py spray -ep plan.json
[cta]
Password spraying remains one of the most effective ways to gain initial access, particularly in organizations that have not enforced MFA universally.
If your organization needs help identifying authentication weaknesses before an attacker does, Redfox Cybersecurity offers dedicated cloud identity and access testing as part of their Azure pentesting engagements.
After gaining access, the focus shifts to expanding privileges and moving laterally across the Azure environment.
PowerZure is a PowerShell framework for interacting with Azure resources post-compromise. It allows testers to enumerate permissions, extract credentials, and escalate privileges.
Import PowerZure:
git clone https://github.com/hausec/PowerZure
Import-Module .\PowerZure\PowerZure.psm1
[cta]
List all resources the current identity has access to:
Show-AzureCurrentUser
Get-AzureTargets
[cta]
Extract credentials from Azure Key Vaults:
Get-AzureKeyVaultContent -VaultName "TargetVault"
[cta]
Dump all secrets from accessible key vaults:
Get-AzureKeyVaultContent -All
[cta]
Check for automation accounts that can execute runbooks:
Get-AzureRunAsAccounts
[cta]
Key Vaults frequently store database connection strings, API keys, and certificates. Accessing them during a pentest demonstrates the real-world blast radius of a compromised identity.
AzureHound is the Azure data collector for BloodHound, which maps attack paths in Active Directory. AzureHound extends this to Azure AD and Azure Resource Manager.
Install AzureHound:
git clone https://github.com/BloodHoundAD/AzureHound
go build .
[cta]
Authenticate and collect Azure AD data:
./azurehound -u "user@domain.com" -p "Password123" list --tenant "tenantid" -o output.json
[cta]
Import the output into BloodHound and run shortest path queries to Domain Admin or Global Admin.
AzureHound reveals attack paths that are not obvious from individual permission reviews. A seemingly low-privileged account might have an indirect path to Global Administrator through app role assignments or group memberships.
Lateral movement in Azure involves leveraging permissions and misconfigurations to pivot across resources and subscriptions.
Stormspotter is a Microsoft-developed red team tool that creates attack graphs for Azure environments. It visualizes resource relationships to identify pivot opportunities.
Setup Stormspotter using Docker:
git clone https://github.com/Azure/Stormspotter
cd Stormspotter
docker-compose up
[cta]
Collect data using the Azure CLI backend:
python3 stormcollect.py
[cta]
Once data is loaded into the Neo4j interface, testers can query relationships between resource groups, managed identities, and role assignments to find lateral movement paths.
ScoutSuite is a multi-cloud security auditing tool that supports Azure. It checks configuration across dozens of Azure services and outputs an HTML report highlighting security risks.
Install ScoutSuite:
pip install scoutsuite
[cta]
Run a scan against an Azure subscription:
scout azure --cli
[cta]
For service principal-based authentication:
scout azure --service-principal --tenant TENANT_ID --subscription-id SUB_ID --client-id CLIENT_ID --client-secret CLIENT_SECRET
[cta]
ScoutSuite surfaces misconfigurations across Azure Storage, SQL, Virtual Machines, Networking, and IAM, making it a go-to tool for compliance-focused assessments.
Understanding the potential impact of a successful attack is a core objective of any penetration test.
When testers find publicly accessible or compromised storage accounts, they enumerate and access blob data directly.
Using the Azure CLI to list and download blobs:
az storage blob list --account-name <StorageAccountName> --container-name <ContainerName> --output table
[cta]
Download a specific blob:
az storage blob download --account-name <StorageAccountName> --container-name <ContainerName> --name sensitive-file.csv --file ./local-copy.csv
[cta]
List all containers in a storage account:
az storage container list --account-name <StorageAccountName> --output table
[cta]
Exposed storage accounts are one of the most common and damaging findings in Azure environments. Data exfiltration from a misconfigured blob can lead to regulatory penalties, reputational damage, and breach notification obligations.
At Redfox Cybersecurity, their Azure penetration testing engagements include full data exfiltration simulations to measure the true impact of identified vulnerabilities.
Pacu is the AWS-focused exploitation framework, but it also contains modules useful for understanding multi-cloud attack patterns. For Azure-specific exploitation, the tools above are more targeted. However, Pacu's methodology for cloud service abuse translates directly to Azure equivalents.
For Azure-native exploitation, testers often combine the Azure CLI with custom scripts:
Enumerate all role assignments in a subscription:
az role assignment list --all --output table
[cta]
Check if the current identity can create new role assignments (a privilege escalation indicator):
az role assignment create --assignee <UserObjectID> --role "Owner" --scope /subscriptions/<SubID>
[cta]
List all service principals in the tenant:
az ad sp list --output table
[cta]
Check for Managed Identities attached to virtual machines:
az vm identity show --resource-group <RG> --name <VMName>
[cta]
Managed identities with excessive permissions are frequently exploited to pivot from a compromised VM to broader Azure resource access.
A structured Azure penetration test follows a repeatable methodology:
Security teams conducting or commissioning Azure penetration tests frequently uncover:
Organizations that address these findings proactively after a penetration test significantly reduce their exposure to real-world attacks. Engaging specialists who understand the Azure threat landscape is the most efficient way to get there. Redfox Cybersecurity's team brings hands-on expertise in cloud-native attack techniques to every engagement.
Azure penetration testing is a specialized discipline that demands fluency in both cloud architecture and offensive security techniques. The tools covered in this guide, including AADInternals, MicroBurst, ROADtools, PowerZure, AzureHound, and ScoutSuite, represent the current standard toolkit for red teamers assessing Azure environments.
Effective testing requires more than running tools. It demands understanding how Azure services interact, where trust boundaries exist, and how attackers chain together low-severity findings into high-impact attack paths.
If your organization is ready to take Azure security seriously, the most valuable next step is a professional penetration test conducted by specialists who think like attackers. Redfox Cybersecurity offers tailored Azure penetration testing engagements designed to surface real risk, not just configuration noise. Their team delivers the technical depth and clear remediation guidance your security program needs to move forward with confidence.
Book your Azure penetration test with Redfox Cybersecurity today.