
Набор инструментов на Go для авторизованных оценок безопасности Azure: перечисляет подписки и ресурсы, проверяет конфигурации на наличие ошибок и атакует публичное хранилище Blob анонимно.
azpt)🚧 Публичная бета-версия.
azptнаходится в активной разработке — команды, флаги и форматы вывода могут меняться между релизами. Сообщения об ошибках и отзывы приветствуются через GitHub issues.
azpt — это набор инструментов на Go для авторизованных оценок безопасности Azure. Он работает
с двух точек зрения:
⚠️ Только авторизованное использование. Запускайте это только против тенантов, подписок и учётных записей хранилища, на тестирование которых у вас есть явное письменное разрешение. Анонимные команды
blobобращаются к сторонней инфраструктуре через интернет — ограничьте их рамками вашего проекта.
Все примеры ниже нацелены на вымышленную Acme Corp, чей статический маркетинговый сайт
размещён в учётной записи хранилища Azure с именем acmewebsite
(https://acmewebsite.blob.core.windows.net).
Полная документация находится в docs/:
docs/guides/) — по каждой функции: как работает
техника, какие именно разрешения Azure RBAC / Microsoft Graph требуются,
объяснение ключевых флагов, примеры и заметки по OPSEC / обнаружению — организованы по
фазам проекта.docs/guides/scenarios/)
— сквозные сценарии атак, объединяющие команды из разных фаз (токен →
Global Admin, захват Golden SAML, кража PRT, consent phishing → M365,
боковое перемещение через управляемое удостоверение, офлайн-охота по каталогу, device-code
phishing), каждый с OPSEC и очисткой.docs/reference/) — автоматически сгенерированная
страница для каждой команды со всеми флагами (имя, сокращение, тип, значение по умолчанию,
описание). Перегенерировать с помощью azpt gen-docs docs/reference; та же информация
выводится командой azpt <command> --help.Скачайте архив для вашей платформы из последнего релиза, проверьте его и распакуйте:```bash
tar -xzf azpt_.tar.gz sha256sum -c --ignore-missing SHA256SUMS
Бинарные файлы статические (`CGO_ENABLED=0`) и не требуют зависимостей во время выполнения.
Сборки публикуются для linux и darwin на amd64 и arm64.
Бинарные файлы для Windows не публикуются. Помощники, работающие только в Windows (`prt extract`,
`adconnect sync-creds`, DPAPI), по-прежнему собираются из исходного кода с помощью `go build -o
azpt.exe .` на хосте Windows.
### Из исходного кода
Требуется Go 1.26+.```bash
git clone https://github.com/hac01/azure-pentesting-suite.git
cd azure-pentesting-suite
go build -o azpt .
Это создаёт самодостаточный бинарный файл azpt в корне репозитория. Также можно запускать
без сборки через go run . <command> из каталога репозитория.
Для анонимных команд blob вход в Azure не требуется:```bash
./azpt blob hunt --account acmewebsite
С учетными данными Azure (`az login`) оценивайте изнутри — как плоскость ресурсов (ARM), так и каталог (Entra ID / Graph):```bash
./azpt enum whoami # who am I authenticated as?
./azpt enum subscriptions # what subscriptions can this principal see?
./azpt audit storage # misconfigured storage accounts
./azpt enum users # dump the Entra ID directory (Graph)
Типичная цепочка: анонимно восстановить учётные данные с помощью blob hunt, войти как этот пользователь (az login), проверить, что он может делать, с помощью enum access, а затем разграбить все доступные Key Vault:```bash
./azpt enum access # token scopes, directory roles, groups, RBAC roles
./azpt enum resources # find Key Vaults (type: vaults)
./azpt vault list --vault ext-contractors # secrets, keys, certs in that vault
./azpt vault dump --vault ext-contractors # read every secret value (the loot)
---
## Аутентификация
Анонимные команды `blob` **не** требуют аутентификации. Всё остальное использует
цепочку учётных данных Azure по умолчанию, которая пытается по порядку:
переменные среды, рабочую нагрузку identity, управляемую identity и Azure CLI (`az login`).```bash
az login
./azpt enum subscriptions
Принудительно используйте явную аутентификацию через service-principal (полезно для ограниченной по области действия учётной записи оценки) с помощью флагов или переменных среды. Ещё нет такой учётной записи? az ad sp create-for-rbac --name azpt-assessment --role Reader --scopes /subscriptions/<subscription-id> создаёт её — см. Начало
работы для
полного руководства, включая разрешения Graph, которые один только RBAC вам не предоставит:```bash
./azpt --tenant --client-id --client-secret
enum subscriptions
export AZURE_TENANT_ID=... AZURE_CLIENT_ID=... AZURE_CLIENT_SECRET=... ./azpt enum subscriptions
**Аутентификация на основе сертификатов** (PFX или PEM):```bash
./azpt --tenant <tenant-id> --client-id <app-id> \
--certificate ./cert.pfx --cert-password 'P@ss' \
enum subscriptions
Ограничьте аутентифицированные запуски конкретными подписками с помощью --subscription
(можно повторять); по умолчанию используются все подписки, доступные субъекту:```bash
./azpt --subscription 00000000-1111-2222-3333-444444444444 audit storage
---
## Справочник команд
🧪 отмечает команду, всё ещё находящуюся в **бета-версии**: реализована и пригодна к использованию, но менее проверена в бою, чем остальная часть набора — ожидайте шероховатостей и, пожалуйста, сообщайте о проблемах, с которыми столкнётесь.