Az - Herramientas de enumeración

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Instalar PowerShell en Linux

Tip

En Linux necesitarás instalar PowerShell Core:

sudo apt-get update
sudo apt-get install -y wget apt-transport-https software-properties-common

# Ubuntu 20.04
wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb

# Update repos
sudo apt-get update
sudo add-apt-repository universe

# Install & start powershell
sudo apt-get install -y powershell
pwsh

# Az cli
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

Instalar PowerShell en MacOS

Instrucciones de la documentation:

  1. Instala brew si aún no está instalado:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Instala la última versión estable de PowerShell:
brew install powershell/tap/powershell
  1. Ejecutar PowerShell:
pwsh
  1. Actualización:
brew update
brew upgrade powershell

Herramientas principales de enumeración

az cli

Azure Command-Line Interface (CLI) es una herramienta multiplataforma escrita en Python para gestionar y administrar (la mayoría de) recursos de Azure y Entra ID. Se conecta a Azure y ejecuta comandos administrativos a través de la línea de comandos o mediante scripts.

Sigue este enlace para las installation instructions¡.

Los comandos en Azure CLI están estructurados usando el patrón: az <service> <action> <parameters>

Depuración | MitM az cli

Usando el parámetro --debug es posible ver todas las solicitudes que la herramienta az está enviando:

az account management-group list --output table --debug

Para realizar un MitM a la herramienta y comprobar manualmente todas las solicitudes que está enviando puedes hacer:

export ADAL_PYTHON_SSL_NO_VERIFY=1
export AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1
export HTTPS_PROXY="http://127.0.0.1:8080"
export HTTP_PROXY="http://127.0.0.1:8080"

# If this is not enough
# Download the certificate from Burp and convert it into .pem format
# And export the following env variable
openssl x509 -in ~/Downloads/cacert.der -inform DER -out ~/Downloads/cacert.pem -outform PEM
export REQUESTS_CA_BUNDLE=/Users/user/Downloads/cacert.pem
Solucionando “CA cert does not include key usage extension”

Por qué ocurre el error

Cuando Azure CLI se autentica, realiza peticiones HTTPS (vía MSAL → Requests → OpenSSL). Si estás interceptando TLS con Burp, Burp genera certificados “on the fly” para sitios como login.microsoftonline.com y los firma con la CA de Burp.

En stacks más nuevos (Python 3.13 + OpenSSL 3), la validación de CA es más estricta:

  • Un certificado CA debe incluir Basic Constraints: CA:TRUE y una extensión Key Usage que permita firmar certificados (keyCertSign, y típicamente cRLSign).

La CA por defecto de Burp (PortSwigger CA) es antigua y normalmente carece de la extensión Key Usage, por lo que OpenSSL la rechaza incluso si la “confías”.

Eso produce errores como:

  • CA cert does not include key usage extension
  • CERTIFICATE_VERIFY_FAILED
  • self-signed certificate in certificate chain

Por tanto debes:

  1. Crear una CA moderna (con Key Usage correcta).
  2. Hacer que Burp la use para firmar los certificados interceptados.
  3. Confiar en esa CA en macOS.
  4. Apuntar Azure CLI / Requests a ese bundle de CA.

Paso a paso: configuración funcional

0) Requisitos previos

  • Burp en ejecución localmente (proxy en 127.0.0.1:8080)
  • Azure CLI instalado (Homebrew)
  • Puedes usar sudo (para confiar en la CA en el llavero del sistema)

1) Crear una CA de Burp compatible con los estándares (PEM + KEY)

Crea un archivo de configuración de OpenSSL que establezca explícitamente las extensiones CA:

mkdir -p ~/burp-ca && cd ~/burp-ca

cat > burp-ca.cnf <<'EOF'
[ req ]
default_bits       = 2048
prompt             = no
default_md         = sha256
distinguished_name = dn
x509_extensions    = v3_ca

[ dn ]
C  = US
O  = Burp Custom CA
CN = Burp Custom Root CA

[ v3_ca ]
basicConstraints = critical,CA:TRUE
keyUsage = critical,keyCertSign,cRLSign
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
EOF

Generar el certificado CA + la clave privada:

openssl req -x509 -new -nodes \
-days 3650 \
-keyout burp-ca.key \
-out burp-ca.pem \
-config burp-ca.cnf

Comprobación rápida (DEBES ver Key Usage):

openssl x509 -in burp-ca.pem -noout -text | egrep -A3 "Basic Constraints|Key Usage"

Se espera que incluya algo como:

  • CA:TRUE
  • Key Usage: ... Certificate Sign, CRL Sign

2) Convertir a PKCS#12 (formato de importación de Burp)

Burp necesita certificado + clave privada, lo más fácil es PKCS#12:

openssl pkcs12 -export \
-out burp-ca.p12 \
-inkey burp-ca.key \
-in burp-ca.pem \
-name "Burp Custom Root CA"

Se te pedirá una contraseña de exportación (establece una; Burp te la pedirá).

3) Importa la CA en Burp y reinicia Burp

En Burp:

  • Proxy → Options
  • Busca Import / export CA certificate
  • Haz clic en Import CA certificate
  • Elige PKCS#12
  • Selecciona burp-ca.p12
  • Introduce la contraseña
  • Reinicia Burp por completo (importante)

¿Por qué reiniciar? Burp puede seguir usando la CA antigua hasta que reinicies.

4) Confía en la nueva CA en el llavero del sistema de macOS

Esto permite que las aplicaciones del sistema y muchas pilas TLS confíen en la CA.

sudo security add-trusted-cert \
-d -r trustRoot \
-k /Library/Keychains/System.keychain \
~/burp-ca/burp-ca.pem

(Si prefieres GUI: Keychain Access → System → Certificates → import → set “Always Trust”.)

5) Configurar proxy env vars

export HTTPS_PROXY="http://127.0.0.1:8080"
export HTTP_PROXY="http://127.0.0.1:8080"

6) Configurar Requests/Azure CLI para confiar en tu Burp CA

Azure CLI usa Python Requests internamente; establece ambos:

export REQUESTS_CA_BUNDLE="$HOME/burp-ca/burp-ca.pem"
export SSL_CERT_FILE="$HOME/burp-ca/burp-ca.pem"

Notas:

  • REQUESTS_CA_BUNDLE lo usa Requests.
  • SSL_CERT_FILE ayuda para otros consumidores de TLS y casos límite.
  • Normalmente no necesitas las antiguas ADAL_PYTHON_SSL_NO_VERIFY / AZURE_CLI_DISABLE_CONNECTION_VERIFICATION una vez que la CA es correcta.

7) Verifica que Burp realmente esté firmando con tu nueva CA (verificación crítica)

Esto confirma que tu cadena de intercepción es correcta:

openssl s_client -connect login.microsoftonline.com:443 \
-proxy 127.0.0.1:8080 </dev/null 2>/dev/null \
| openssl x509 -noout -issuer

El emisor esperado contiene el nombre de tu CA, p. ej.:

O=Burp Custom CA, CN=Burp Custom Root CA

Si todavía ves PortSwigger CA, Burp no está usando tu CA importada → vuelve a comprobar la importación y reinicia.

8) Verifica que Python Requests funciona a través de Burp

python3 - <<'EOF'
import requests
requests.get("https://login.microsoftonline.com")
print("OK")
EOF

Esperado: OK

9) Prueba de Azure CLI

az account get-access-token --resource=https://management.azure.com/

Si ya has iniciado sesión, debería devolver JSON con un accessToken.

Az PowerShell

Azure PowerShell es un módulo con cmdlets para gestionar recursos de Azure directamente desde la línea de comandos de PowerShell.

Sigue este enlace para las installation instructions.

Los comandos en Azure PowerShell AZ Module tienen la siguiente estructura: <Action>-Az<Service> <parameters>

Debug | MitM Az PowerShell

Usando el parámetro -Debug es posible ver todas las peticiones que la herramienta está enviando:

Get-AzResourceGroup -Debug

Para realizar un MitM a la herramienta y check all the requests que envía manualmente puedes establecer las variables de entorno HTTPS_PROXY y HTTP_PROXY según la docs.

Microsoft Graph PowerShell

Microsoft Graph PowerShell es un SDK multiplataforma que permite el acceso a todas las Microsoft Graph APIs, incluyendo servicios como SharePoint, Exchange y Outlook, usando un único endpoint. Soporta PowerShell 7+, autenticación moderna vía MSAL, identidades externas y consultas avanzadas. Con un enfoque en el acceso con privilegios mínimos, garantiza operaciones seguras y recibe actualizaciones regulares para alinearse con las últimas funcionalidades de Microsoft Graph API.

Sigue este enlace para las installation instructions.

Los comandos en Microsoft Graph PowerShell tienen la estructura: <Action>-Mg<Service> <parameters>

Depurar Microsoft Graph PowerShell

Usando el parámetro -Debug es posible ver todas las requests que envía la herramienta:

Get-MgUser -Debug

AzureAD Powershell

El módulo Azure Active Directory (AD), ahora obsoleto, forma parte de Azure PowerShell para administrar recursos de Azure AD. Proporciona cmdlets para tareas como gestionar usuarios, grupos y registros de aplicaciones en Entra ID.

Tip

Esto ha sido reemplazado por Microsoft Graph PowerShell

Sigue este enlace para las instrucciones de instalación.

Herramientas automatizadas de Recon y cumplimiento

turbot azure plugins

Turbot con steampipe y powerpipe permite recopilar información de Azure y Entra ID, realizar comprobaciones de cumplimiento y encontrar misconfiguraciones. Los módulos de Azure más recomendados actualmente para ejecutar son:

# Install
brew install turbot/tap/powerpipe
brew install turbot/tap/steampipe
steampipe plugin install azure
steampipe plugin install azuread

# Config creds via env vars or az cli default creds will be used
export AZURE_ENVIRONMENT="AZUREPUBLICCLOUD"
export AZURE_TENANT_ID="<tenant-id>"
export AZURE_SUBSCRIPTION_ID="<subscription-id>"
export AZURE_CLIENT_ID="<client-id>"
export AZURE_CLIENT_SECRET="<secret>"

# Run steampipe-mod-azure-insights
cd /tmp
mkdir dashboards
cd dashboards
powerpipe mod init
powerpipe mod install github.com/turbot/steampipe-mod-azure-insights
steampipe service start
powerpipe server
# Go to http://localhost:9033 in a browser

Prowler

Prowler es una herramienta de seguridad de código abierto para realizar evaluaciones de las mejores prácticas de seguridad, auditorías, respuesta a incidentes, monitorización continua, hardening y forensics readiness en AWS, Azure, Google Cloud y Kubernetes.

Básicamente nos permite ejecutar cientos de comprobaciones contra un entorno Azure para encontrar configuraciones incorrectas de seguridad y recopilar los resultados en json (y otros formatos de texto) o revisarlos en la web.

# Create a application with Reader role and set the tenant ID, client ID and secret in prowler so it access the app

# Launch web with docker-compose
export DOCKER_DEFAULT_PLATFORM=linux/amd64
curl -LO https://raw.githubusercontent.com/prowler-cloud/prowler/refs/heads/master/docker-compose.yml
curl -LO https://raw.githubusercontent.com/prowler-cloud/prowler/refs/heads/master/.env
## If using an old docker-compose version, change the "env_file" params to: env_file: ".env"
docker compose up -d
# Access the web and configure the access to run a scan from it

# Prowler cli
python3 -m pip install prowler --break-system-packages
docker run --rm toniblyx/prowler:v4-latest azure --list-checks
docker run --rm toniblyx/prowler:v4-latest azure --list-services
docker run --rm toniblyx/prowler:v4-latest azure --list-compliance
docker run --rm -e "AZURE_CLIENT_ID=<client-id>" -e "AZURE_TENANT_ID=<tenant-id>" -e "AZURE_CLIENT_SECRET=<secret>" toniblyx/prowler:v4-latest azure --sp-env-auth
## It also support other authentication types, check: prowler azure --help

Monkey365

Permite realizar revisiones automáticas de la configuración de seguridad de suscripciones de Azure y de Microsoft Entra ID.

Los informes HTML se almacenan dentro del directorio ./monkey-reports dentro de la carpeta del repositorio de github.

git clone https://github.com/silverhack/monkey365
Get-ChildItem -Recurse monkey365 | Unblock-File
cd monkey365
Import-Module ./monkey365
mkdir /tmp/monkey365-scan
cd /tmp/monkey365-scan

Get-Help Invoke-Monkey365
Get-Help Invoke-Monkey365 -Detailed

# Scan with user creds (browser will be run)
Invoke-Monkey365 -TenantId <tenant-id> -Instance Azure -Collect All -ExportTo HTML

# Scan with App creds
$SecureClientSecret = ConvertTo-SecureString "<secret>" -AsPlainText -Force
Invoke-Monkey365 -TenantId <tenant-id> -ClientId <client-id> -ClientSecret $SecureClientSecret -Instance Azure -Collect All -ExportTo HTML

ScoutSuite

Scout Suite recopila datos de configuración para inspección manual y destaca áreas de riesgo. Es una herramienta de auditoría de seguridad multi-cloud, que permite la evaluación de la postura de seguridad de entornos cloud.

virtualenv -p python3 venv
source venv/bin/activate
pip install scoutsuite
scout --help

# Use --cli flag to use az cli credentials
# Use --user-account to have scout prompt for user credentials
# Use --user-account-browser to launch a browser to login
# Use --service-principal to have scout prompt for app credentials

python scout.py azure --cli

Azure-MG-Sub-Governance-Reporting

Es un script de powershell que te ayuda a visualizar todos los recursos y permisos dentro de un Management Group y el tenant Entra ID y a encontrar configuraciones de seguridad incorrectas.

Funciona usando el Az PowerShell module, por lo que cualquier autenticación soportada por esta herramienta es compatible con ella.

import-module Az
.\AzGovVizParallel.ps1 -ManagementGroupId <management-group-id> [-SubscriptionIdWhitelist <subscription-id>]

Herramientas automatizadas de Post-Exploitation

ROADRecon

La enumeración de ROADRecon ofrece información sobre la configuración de Entra ID, como usuarios, grupos, roles, políticas de acceso condicional…

cd ROADTools
pipenv shell
# Login with user creds
roadrecon auth -u test@corp.onmicrosoft.com -p "Welcome2022!"
# Login with app creds
roadrecon auth --as-app --client "<client-id>" --password "<secret>" --tenant "<tenant-id>"
roadrecon gather
roadrecon gui

AzureHound

AzureHound es el collector de BloodHound para Microsoft Entra ID y Azure. Es un único binario estático de Go para Windows/Linux/macOS que se comunica directamente con:

  • Microsoft Graph (directorio de Entra ID, M365) y
  • Azure Resource Manager (ARM) plano de control (subscriptions, resource groups, compute, storage, key vault, app services, AKS, etc.)

Características clave

  • Se ejecuta desde cualquier lugar de Internet público contra las API del tenant (no se requiere acceso a la red interna)
  • Genera JSON para la ingestión en BloodHound CE y visualizar caminos de ataque a través de identidades y recursos en la nube
  • User-Agent predeterminado observado: azurehound/v2.x.x

Opciones de autenticación

  • Usuario + contraseña: -u -p
  • Refresh token: –refresh-token
  • JSON Web Token (access token): –jwt
  • Secreto de service principal: -a -s
  • Certificado de service principal: -a –cert <cert.pem> –key <key.pem> [–keypass ]

Ejemplos

# Full tenant collection to file using different auth flows
## User creds
azurehound list -u "<user>@<tenant>" -p "<pass>" -t "<tenant-id|domain>" -o ./output.json

## Use an access token (JWT) from az cli for Graph
JWT=$(az account get-access-token --resource https://graph.microsoft.com -o tsv --query accessToken)
azurehound list --jwt "$JWT" -t "<tenant-id>" -o ./output.json

## Use a refresh token (e.g., from device code flow)
azurehound list --refresh-token "<refresh_token>" -t "<tenant-id>" -o ./output.json

## Service principal secret
azurehound list -a "<client-id>" -s "<secret>" -t "<tenant-id>" -o ./output.json

## Service principal certificate
azurehound list -a "<client-id>" --cert "/path/cert.pem" --key "/path/key.pem" -t "<tenant-id>" -o ./output.json

# Targeted discovery
azurehound list users -t "<tenant-id>" -o users.json
azurehound list groups -t "<tenant-id>" -o groups.json
azurehound list roles -t "<tenant-id>" -o roles.json
azurehound list role-assignments -t "<tenant-id>" -o role-assignments.json

# Azure resources via ARM
azurehound list subscriptions -t "<tenant-id>" -o subs.json
azurehound list resource-groups -t "<tenant-id>" -o rgs.json
azurehound list virtual-machines -t "<tenant-id>" -o vms.json
azurehound list key-vaults -t "<tenant-id>" -o kv.json
azurehound list storage-accounts -t "<tenant-id>" -o sa.json
azurehound list storage-containers -t "<tenant-id>" -o containers.json
azurehound list web-apps -t "<tenant-id>" -o webapps.json
azurehound list function-apps -t "<tenant-id>" -o funcapps.json

Qué se consulta

  • Endpoints de Graph (ejemplos):
  • /v1.0/organization, /v1.0/users, /v1.0/groups, /v1.0/roleManagement/directory/roleDefinitions, directoryRoles, owners/members
  • Endpoints de ARM (ejemplos):
  • management.azure.com/subscriptions/…/providers/Microsoft.Storage/storageAccounts
  • …/Microsoft.KeyVault/vaults, …/Microsoft.Compute/virtualMachines, …/Microsoft.Web/sites, …/Microsoft.ContainerService/managedClusters

Comportamiento de preflight y endpoints

  • Cada azurehound list típicamente realiza estas llamadas de prueba antes de la enumeración:
  1. Identity platform: login.microsoftonline.com
  2. Graph: GET https://graph.microsoft.com/v1.0/organization
  3. ARM: GET https://management.azure.com/subscriptions?api-version=…
  • Las URLs base del entorno cloud difieren para Government/China/Germany. Ver constants/environments.go en el repo.

Objetos con enfoque ARM (menos visibles en los registros de Activity/Resource)

  • La siguiente lista de targets utiliza predominantemente lecturas del plano de control de ARM: automation-accounts, container-registries, function-apps, key-vaults, logic-apps, managed-clusters, management-groups, resource-groups, storage-accounts, storage-containers, virtual-machines, vm-scale-sets, web-apps.
  • Estas operaciones GET/list normalmente no se escriben en Activity Logs; las lecturas del plano de datos (p. ej., *.blob.core.windows.net, *.vault.azure.net) quedan cubiertas por Diagnostic Settings a nivel de recurso.

Notas de OPSEC y logging

  • Microsoft Graph Activity Logs no están habilitados por defecto; habilítelos y expórtelos a un SIEM para obtener visibilidad de las llamadas a Graph. Espere el GET de preflight /v1.0/organization a Graph con UA azurehound/v2.x.x.
  • Los registros de sign-in no interactivo de Entra ID registran la auth de la identity platform (login.microsoftonline.com) usada por AzureHound.
  • Las operaciones de lectura/listado del plano de control ARM no se registran en Activity Logs; muchas operaciones azurehound list contra recursos no aparecerán allí. Solo el logging del plano de datos (vía Diagnostic Settings) capturará lecturas a endpoints de servicio.
  • Defender XDR GraphApiAuditEvents (preview) puede exponer llamadas a Graph e identificadores de token, pero puede carecer de UserAgent y tener retención limitada.

Tip: Al enumerar rutas de privilegio, vuelque users, groups, roles y role assignments, luego impórtelos en BloodHound y use consultas cypher preconstruidas para sacar a la luz Global Administrator/Privileged Role Administrator y escalada transitiva vía nested groups y RBAC assignments.

Lance la interfaz web de BloodHound con curl -L https://ghst.ly/getbhce | docker compose -f - up e importe el archivo output.json. Luego, en la pestaña EXPLORE, en la sección CYPHER verá un icono de carpeta que contiene consultas pre-built.

MicroBurst

MicroBurst incluye funciones y scripts que soportan Azure Services discovery, weak configuration auditing, y post exploitation actions como credential dumping. Está pensado para usarse durante penetration tests donde se utilice Azure.

Import-Module .\MicroBurst.psm1
Import-Module .\Get-AzureDomainInfo.ps1
Get-AzureDomainInfo -folder MicroBurst -Verbose

PowerZure

PowerZure fue creado por la necesidad de un framework que pueda realizar tanto reconnaissance como exploitation de Azure, EntraID y los recursos asociados.

Utiliza el módulo Az PowerShell, por lo que cualquier autenticación soportada por este módulo será soportada por la herramienta.

# Login
Import-Module Az
Connect-AzAccount

# Clone and import PowerZure
git clone https://github.com/hausec/PowerZure
cd PowerZure
ipmo ./Powerzure.psd1
Invoke-Powerzure -h # Check all the options

# Info Gathering (read)
Get-AzureCurrentUser # Get current user
Get-AzureTarget # What can you access to
Get-AzureUser -All # Get all users
Get-AzureSQLDB -All # Get all SQL DBs
Get-AzureAppOwner # Owners of apps in Entra
Show-AzureStorageContent -All # List containers, shared and tables
Show-AzureKeyVaultContent -All # List all contents in key vaults


# Operational (write)
Set-AzureUserPassword -Password <password> -Username <username> # Change password
Set-AzureElevatedPrivileges # Get permissions from Global Administrator in EntraID to User Access Administrator in Azure RBAC.
New-AzureBackdoor -Username <username> -Password <password>
Invoke-AzureRunCommand -Command <command> -VMName <vmname>
[...]

GraphRunner

GraphRunner es un conjunto de herramientas de post-exploitation para interactuar con la Microsoft Graph API. Proporciona varias herramientas para realizar reconnaissance, persistence y pillaging de datos de una cuenta de Microsoft Entra ID (Azure AD).

#A good place to start is to authenticate with the Get-GraphTokens module. This module will launch a device-code login, allowing you to authenticate the session from a browser session. Access and refresh tokens will be written to the global $tokens variable. To use them with other GraphRunner modules use the Tokens flag (Example. Invoke-DumpApps -Tokens $tokens)
Import-Module .\GraphRunner.ps1
Get-GraphTokens

#This module gathers information about the tenant including the primary contact info, directory sync settings, and user settings such as if users have the ability to create apps, create groups, or consent to apps.
Invoke-GraphRecon -Tokens $tokens -PermissionEnum

#A module to dump conditional access policies from a tenant.
Invoke-GraphRecon -Tokens $tokens -PermissionEnum

#A module to dump conditional access policies from a tenant.
Invoke-DumpCAPS -Tokens $tokens -ResolveGuids

#This module helps identify malicious app registrations. It will dump a list of Azure app registrations from the tenant including permission scopes and users that have consented to the apps. Additionally, it will list external apps that are not owned by the current tenant or by Microsoft's main app tenant. This is a good way to find third-party external apps that users may have consented to.
Invoke-DumpApps -Tokens $tokens

#Gather the full list of users from the directory.
Get-AzureADUsers -Tokens $tokens -OutFile users.txt

#Create a list of security groups along with their members.
Get-SecurityGroups -AccessToken $tokens.access_token

#Gets groups that may be able to be modified by the current user
Get-UpdatableGroups -Tokens $tokens

#Finds dynamic groups and displays membership rules
Get-DynamicGroups -Tokens $tokens

#Gets a list of SharePoint site URLs visible to the current user
Get-SharePointSiteURLs -Tokens $tokens

#This module attempts to locate mailboxes in a tenant that have allowed other users to read them. By providing a userlist the module will attempt to access the inbox of each user and display if it was successful. The access token needs to be scoped to Mail.Read.Shared or Mail.ReadWrite.Shared for this to work.
Invoke-GraphOpenInboxFinder -Tokens $tokens -Userlist users.txt

#This module attempts to gather a tenant ID associated with a domain.
Get-TenantID -Domain

#Runs Invoke-GraphRecon, Get-AzureADUsers, Get-SecurityGroups, Invoke-DumpCAPS, Invoke-DumpApps, and then uses the default_detectors.json file to search with Invoke-SearchMailbox, Invoke-SearchSharePointAndOneDrive, and Invoke-SearchTeams.
Invoke-GraphRunner -Tokens $tokens

Stormspotter

Stormspotter crea un “attack graph” de los recursos en una suscripción de Azure. Permite a los red teams y pentesters visualizar la attack surface y las oportunidades de pivot dentro de un tenant, y potencia a tus defenders para orientar y priorizar rápidamente el trabajo de incident response.

Desafortunadamente, parece no estar mantenido.

# Start Backend
cd stormspotter\backend\
pipenv shell
python ssbackend.pyz

# Start Front-end
cd stormspotter\frontend\dist\spa\
quasar.cmd serve -p 9091 --history

# Run Stormcollector
cd stormspotter\stormcollector\
pipenv shell
az login -u test@corp.onmicrosoft.com -p Welcome2022!
python stormspotter\stormcollector\sscollector.pyz cli
# This will generate a .zip file to upload in the frontend (127.0.0.1:9091)

Referencias

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks