
Набор атакующих инструментов, нацеленных на Microsoft Azure, написанных на Python для кроссплатформенной работы. Текущий список инструментов приведён ниже с кратким описанием их функциональности.
./Device_Code/device_code_easy_mode.py
- Генерирует код, который должен ввести целевой пользователь
- Может использоваться для генерации токенов общего назначения или в ходе фишинговой/социальной инженерной кампании.
./Access_Tokens/token_juggle.py
- Принимает обновляющий токен различными способами и получает новый обновляющий токен и токен доступа для указанного ресурса
./Access_Tokens/read_token.py
- Принимает токен доступа, разбирает содержащиеся в нём утверждения, проверяет срок действия, пытается проверить подпись
./Outsider_Recon/outsider_recon.py
- Принимает домен и собирает как можно больше информации о клиенте без необходимости аутентификации
./User_Enum/user_enum.py
- Принимает имя пользователя или список имён пользователей и пытается перечислить действительные учётные записи одним из трёх методов
- Также может использоваться для атаки перебором паролей (password spray)
./Azure_AD/get_tenant.py
- Принимает токен доступа или обновляющий токен, выводит идентификатор и имя клиента
- Создаёт текстовый выходной файл, а также файл aztenant, совместимый с BloodHound
./Azure_AD/get_users.py
- Принимает токен доступа или обновляющий токен, выводит всех пользователей в Azure AD и все доступные свойства пользователей в Microsoft Graph
- Создаёт три файла данных: сжатый JSON-файл, сырой JSON-файл и файл azusers, совместимый с BloodHound
./Azure_AD/get_groups.py
- Принимает токен доступа или обновляющий токен, выводит все группы в Azure AD и все доступные свойства групп в Microsoft Graph
- Создаёт три файла данных: сжатый JSON-файл, сырой JSON-файл и файл azgroups, совместимый с BloodHound
./Azure_AD/get_group_members.py
- Принимает токен доступа или обновляющий токен, выводит все членства в группах в Azure AD и все доступные свойства членов групп в Microsoft Graph
- Создаёт три файла данных: сжатый JSON-файл, сырой JSON-файл и файл azgroups, совместимый с BloodHound
./Azure_AD/get_subscriptions.py
- Принимает ARM-токен или обновляющий токен, выводит все подписки в Azure и все доступные свойства подписок в Azure Resource Manager
- Создаёт три файла данных: сжатый JSON-файл, сырой JSON-файл и файл azgroups, совместимый с BloodHound
./Azure_AD/get_resource_groups.py
- Принимает ARM-токен или обновляющий токен, выводит все группы ресурсов в Azure и все доступные свойства групп ресурсов в Azure Resource Manager
- Создаёт два файла данных: сырой JSON-файл и файл azgroups, совместимый с BloodHound
./Azure_AD/get_vms.py
- Принимает ARM-токен или обновляющий токен, выводит все виртуальные машины в Azure и все доступные свойства ВМ в Azure Resource Manager
- Создаёт два файла данных: сырой JSON-файл и файл azgroups, совместимый с BloodHound
Установка
Offensive Azure можно установить несколькими способами или не устанавливать вовсе.
Вы можете клонировать репозиторий и выполнять нужные скрипты по отдельности. Для каждого модуля прилагается файл requirements.txt, чтобы упростить этот процесс.
Poetry
Проект построен для работы с poetry. Для использования выполните следующие действия:
git clone https://github.com/blacklanternsecurity/offensive-azure.git
cd ./offensive-azure
poetry install
Pip
Пакетная версия репозитория также хранится на PyPI, поэтому вы можете установить его с помощью pip. Рекомендуем использовать pipenv, чтобы поддерживать чистоту вашего окружения.
pipenv shell
pip install offensive_azure
Использование
Вы можете использовать этот набор инструментов так, как вам удобно. Каждый модуль может запускаться независимо, или вы можете установить его как пакет и использовать соответствующим образом. Каждый модуль экспортируется в скрипт с тем же именем, что и файл модуля. Например:
Poetry
poetry install
poetry run outsider_recon your-domain.com
Pip
pipenv shell
pip install offensive_azure
outsider_recon your-domain.com