Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/crtvrffnrt/apimspray
OSINT (Разведка открытых источников)РазведкаАтаки на ПаролиСбор информацииБезопасность облачных средRed Teaming
GitHubcrtvrffnrt/apimspray

apimspray

Azure apim mini proxy

Репозиторий
616131 месяц назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Apimspray

apimspray

Python Azure Лицензия Статус

apimspray — это специализированный инструмент для перебора паролей Entra ID, предназначенный для авторизованных исследований безопасности и Red Teaming. Он использует шлюзы Azure API Management (APIM) в качестве распределённого, ротируемого прокси-слоя для смены IP-адресов.

Подробнее о проекте читайте в статье.

Предварительные требования

  • Azure CLI (az): Требуется для скрипта-ротатора при развёртывании ресурсов. (Запускайте скрипт из сессии CLI, уже аутентифицированной в az cli, или используйте Azure Cloud Shell)
  • Активная подписка Azure: Для развёртывания ресурсов APIM уровня Consumption (стоимость незначительна, обычно <0,01 $ для коротких оценок).

Установка

  1. Клонируйте репозиторий.
  2. Установите зависимости Python:
    root@kitploit:~
    pip install -r requirements.txt
    
  3. Убедитесь, что вы выполнили вход в Azure CLI:
    root@kitploit:~
    az login
    
    Примечание: скрипт-ротатор использует активную фоновую сессию Azure CLI для развёртывания ресурсов.

Настройка

Быстрый старт (Azure Cloud Shell)

Запускайте apimspray прямо из аутентифицированной среды Azure.

Открыть в Azure Cloud Shell
root@kitploit:~
git clone https://github.com/crtvrffnrt/apimspray.git
cd apimspray
python3 apimspray.py --help

1. Развёртывание шлюзов

Разверните несколько шлюзов APIM в разных расположениях.

root@kitploit:~
python3 apimspraycreate.py --count 5 --outfile urls.txt

Развёртывает 33 экземпляра APIM в регионах Germanywestcentral и westeurope и сохраняет в urls.txt.

root@kitploit:~
 python3 apimspraycreate.py --location germanywestcentral,westeurope --count 33 --outfile urls.txt

Справочник по CLI apimspraycreate:

root@kitploit:~
usage: apimspraycreate.py [-h] --outfile OUTFILE [--count COUNT] [--location LOCATION] [--prefix PREFIX] [--realm-prefix REALM_PREFIX] [--delete-old]

apimspraycreate - Развёртыватель APIM Azure

options:
  -h, --help            показать это справочное сообщение и выйти
  --outfile OUTFILE     Выходной файл для URL
  --count COUNT         Количество экземпляров
  --location LOCATION   Расположения APIM через запятую для развёртывания. Если указаны, используются только эти регионы, первое расположение — для группы ресурсов.
  --prefix PREFIX       Префикс URL API
  --realm-prefix REALM_PREFIX
                        Префикс Realm API
  --delete-old          Удалить старые группы ресурсов

Важно: Для всех методов у вас должна быть активная сессия az в фоне (az login).

2. Подготовка списков

Убедитесь, что у вас готовы целевые списки:

  • users.txt: Список UserPrincipalNames (например, [email protected]).
  • passwords.txt: Список паролей для перебора.

3. Разведка / Генерация UPN (опционально)

Если у вас нет списка пользователей, используйте вспомогательный скрипт generate_upns.py. Этот инструмент:

  1. Запрашивает целевой арендатор Azure на предмет всех подключённых и подтверждённых доменов.
  2. Загружает с GitHub список статистически вероятных имён учётных записей служб.
  3. Генерирует перестановочный список UPN (UserPrincipalNames) и сохраняет его в users.txt.

Использование:

root@kitploit:~
# Генерация users.txt для конкретного домена или идентификатора арендатора
python3 generate_upns.py --target example.com
# ИЛИ с использованием Tenantid
python3 generate_upns.py --target 00000000-0000-0000-0000-000000000000

Справочник по CLI generate_upns:

root@kitploit:~
usage: generate_upns.py [-h] --target TARGET

Генерация UPN из подключённых арендаторов Azure и учётных записей служб.

options:
  -h, --help       показать это справочное сообщение и выйти
  --target TARGET  Целевой домен (например, example.com) или UUID арендатора

Использование

root@kitploit:~
usage: apimspray.py [-h] [--urls URLS] [--users USERS] [--passwords PASSWORDS] [--output OUTPUT] [--tenant TENANT] [--domain DOMAIN] --mode {spray,validate} [--pace {stealth,low,mid,medium,high}]
                    [--continue-on-success]

apimspray - Инструмент оценки Entra ID

options:
  -h, --help            показать это справочное сообщение и выйти
  --urls URLS           Путь к файлу с URL APIM (из apimspraycreate.py или apimsprayrotator.sh)
  --users USERS         Путь к файлу с пользователями
  --passwords PASSWORDS
                        Путь к файлу с паролями
  --output OUTPUT       Выходная директория
  --tenant TENANT       ID арендатора или домен
  --domain DOMAIN       Добавить домен к пользователям, если он отсутствует
  --mode {spray,validate}
                        Режим работы. 'spray' проверяет все пароли против всех пользователей (1:N). 'validate' выполняет попарную проверку учётных данных (1:1).
  --pace {stealth,low,mid,medium,high}
                        Профиль темпа для запросов и управления блокировками:
                         - high:    15 рабочих, задержка 0.1 с, 10 проходов/часть, 5 минут ожидания блокировки, 20 безопасный порог, 0% джиттера
                         - medium:   5 рабочих, задержка 1.0 с, 5 проходов/часть, 10 минут ожидания блокировки, 10 безопасный порог, 10% джиттера
                         - low:      2 рабочих, задержка 5.0 с, 2 прохода/часть, 15 минут ожидания блокировки, 5 безопасный порог, 20% джиттера
                         - stealth:  1 рабочий, задержка 30.0 с, 1 проход/часть, 20 минут ожидания блокировки, 1 безопасный порог, 40% джиттера
  --continue-on-success
                        Продолжить оценку даже после обнаружения валидных учётных данных.

Режимы

  • validate: Проверяет список пар user:password. Требует списки одинаковой длины.

    root@kitploit:~
    python3 apimspray.py --urls urls.txt --mode validate --users u.txt --passwords p.txt
    
  • spray: Пытается применить один пароль ко всем пользователям, затем ожидает (если настроено), затем переходит к следующему паролю.

    root@kitploit:~
    python3 apimspray.py --urls urls.txt --mode spray --users users.txt --passwords common_passwords.txt --pace medium
    

Профили темпа

Параметр --pace управляет агрессивностью перебора. Значения жёстко заданы для обеспечения стабильности и безопасности.

  • Количество: Сколько паролей пробуется на одного пользователя перед паузой для сброса таймеров блокировки.
  • Ожидание блокировки: Время сна между пачками паролей.
  • Безопасный порог: Если это количество учётных записей будет заблокировано (AADSTS50053), инструмент немедленно прерывается.
  • Джиттер: Случайное отклонение задержки для избежания статического анализа времени.

Вывод

Результаты сохраняются в директорию results/<timestamp>/:

  • valid_*.txt: Успешные аутентификации (требуется MFA или получен токен).
  • blocked_*.txt: Заблокированные или условно заблокированные учётные записи.
  • failed_*.txt: Неверные учётные данные или пользователь не найден.

Благодарности и ссылки

  • o365spray: Вдохновение для логики потока ROPC.
  • TeamFiltration: Вдохновение для структуры инструмента.
  • FireProx: Родоначальник техник ротации облачных шлюзов.
Скачать инструмент
ПрофильРабочихЗадержкаКоличество (часть)Ожидание блокировкиБезопасный порогДжиттер
high150.1 с105 мин20 заблокировано0%
medium51.0 с510 мин10 заблокировано10%
low25.0 с215 мин5 заблокировано20%
stealth130.0 с120 мин1 заблокировано40%