
New releaseSep 3, 2026
Collects Azure tenant data (users, groups, roles, resources) and exports it for BloodHound attack path analysis in cloud penetration testing and red team operations.
The BloodHound data collector for Microsoft Azure
Get AzureHound
Release Binaries
Download the appropriate binary for your platform from one of our Releases.
Rolling Release
The rolling release contains pre-built binaries that are automatically kept up-to-date with the main branch and can be downloaded from
here.
Warning: The rolling release may be unstable.
Compiling
Prerequisites
- Go 1.25 or later
To build this project from source run the following:
go build -ldflags="-s -w -X github.com/bloodhoundad/azurehound/v2/constants.Version=`git describe tags --exact-match 2> /dev/null || git rev-parse HEAD`"
Documentation
Please refer to the BloodHound Community Edition documentation for:
Usage
Quickstart
Print all Azure Tenant data to stdout
❯ azurehound list -u "$USERNAME" -p "$PASSWORD" -t "$TENANT"
Print all Azure Tenant data to file
❯ azurehound list -u "$USERNAME" -p "$PASSWORD" -t "$TENANT" -o "mytenant.json"
Print all Azure Tenant data to file, reusing your existing authentication from the Azure CLI
❯ JWT=$(az account get-access-token --resource https://graph.microsoft.com | jq -r .accessToken)
❯ azurehound list --jwt "$JWT"
Configure and start data collection service for BloodHound Enterprise
❯ azurehound configure
(follow prompts)
❯ azurehound start
CLI
❯ azurehound --help
AzureHound vx.x.x
Created by the BloodHound Enterprise team at SpecterOps - [https://bloodhoundenterprise.io](https://specterops.io/bloodhound-overview/)
The official tool for collecting Azure data for BloodHound Community Edition and BloodHound Enterprise
Usage:
azurehound [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
configure Configure AzureHound
help Help about any command
list Lists Azure Objects
start Start Azure data collection service for BloodHound Enterprise
Flags:
-c, --config string AzureHound configuration file (default: /Users/dlees/.config/azurehound/config.json)
-h, --help help for azurehound
--json Output logs as json
-j, --jwt string Use an acquired JWT to authenticate into Azure
--log-compress Compress rotated logs with gzip (default: true)
--log-file string Output logs to this file
--log-max-age int Maximum age in days for rotated logs (default: 14; 0 disables age pruning)
--log-max-backups int Maximum number of rotated logs to retain (default: 20; 0 disables count pruning)
--log-max-size int Maximum active log size in MiB before rotation (default: 100)
--proxy string Sets the proxy URL for the AzureHound service
-r, --refresh-token string Use an acquired refresh token to authenticate into Azure
-v, --verbosity int AzureHound verbosity level (defaults to 0) [Min: -1, Max: 2]
--version version for azurehound
Use "azurehound [command] --help" for more information about a command.
Log file management
When --log-file is configured, AzureHound rotates the active log when it reaches --log-max-size. Rotated logs are timestamped, stored beside the active log, and compressed with gzip by default.
Archives are retained for at most --log-max-age days and are also limited by --log-max-backups. Setting either retention option to 0 disables that individual limit. The defaults retain no more than 20 archives or 14 days of history. Only one AzureHound process should write to a given log file.