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

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

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

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

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

Категории

Все категории
Loading categories
Spray365 — Spray365 упрощает проведение атак password spraying на учетные записи Microsoft (Office 365 / Azure AD) благодаря настраиваемому двухэтапному подходу. Встроенный план выполнения включает опции, которые пытаются обойти Azure Smart Lockout и небезопасные политики условного доступа. | Kitploit
Инструменты/GitHubGitHub/markoh17/spray365
Атаки на ПаролиОбход IDS/IPSТестирование на ПроникновениеБезопасность облачных средАутентификацияRed TeamingArchived
GitHubmarkoh17/spray365

Spray365

Spray365 упрощает проведение атак password spraying на учетные записи Microsoft (Office 365 / Azure AD) благодаря настраиваемому двухэтапному подходу. Встроенный план выполнения включает опции, которые пытаются обойти Azure Smart Lockout и небезопасные политики условного доступа.

Репозиторий
381571 год назадПроверено Kitploit

Популярное

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

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

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

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

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

Логотип Spray 365


Что такое Spray365?

Spray365 — это инструмент для перебора паролей, который определяет действительные учетные данные для учетных записей Microsoft (Office 365 / Azure AD). Чем Spray365 отличается от множества других доступных инструментов для перебора паролей? Spray365 позволяет выполнять перебор паролей на основе «плана выполнения». Наличие предварительно сгенерированного плана выполнения, описывающего операцию перебора задолго до её начала, дает множество других преимуществ, которые использует Spray365, а также позволяет возобновлять перебор паролей (опция -R) после сетевой ошибки или другого прерывания. Хотя проще всего сгенерировать план выполнения Spray365 непосредственно с помощью Spray365, другие инструменты, создающие совместимую структуру JSON, позволяют легко построить уникальные рабочие процессы перебора паролей.

Spray365 предоставляет несколько полезных опций для перебора учетных данных. Случайные User-Agent можно использовать для обнаружения и обхода небезопасных политик условного доступа, настроенных на ограничение типов разрешенных устройств. Аналогично, аргумент --shuffle_auth_order — отличный способ выполнять перебор учетных данных менее предсказуемым образом. Эта опция была добавлена в попытке обойти интеллектуальные блокировки учетных записей (например, Azure Smart Lockout). Хотя это не идеально, рандомизация порядка попыток ввода учетных данных имеет и другие преимущества, например, затрудняет обнаружение таких операций перебора. Spray365 также поддерживает проксирование трафика через HTTP/HTTPS, что хорошо интегрируется с другими инструментами, такими как Burp Suite, для управления источником операции перебора.

Генерация плана выполнения (Шаг 1)

Генерация плана выполнения

Перебор учетных данных с помощью плана выполнения (Шаг 2)

Перебор по плану выполнения

Просмотр результатов Spray365 (Шаг 3)

Просмотр результатов перебора паролей

Начало работы

Требования

  • Python
    • 3.9 (минимум)
    • 3.10 (рекомендуется)

Установка

Клонируйте репозиторий, установите необходимые пакеты Python и запустите Spray365!

root@kitploit:~
$ git clone https://github.com/MarkoH17/Spray365
$ cd Spray365
~/Spray365$ pip3 install -r requirements.txt -U
~/Spray365$ python3 spray365.py

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

Создание плана выполнения (обычный)

Для перебора учетных данных требуется план выполнения, поэтому нам нужно его создать! Spray365 может сгенерировать собственный план выполнения с помощью команды generate в режиме "normal": (spray365.py generate normal). Смотрите справку (spray365.py generate -h / spray365.py generate normal -h) для получения более подробной информации.

root@kitploit:~
$ python3 spray365.py generate normal -ep <имя_файла_плана_выполнения> -d <доменное_имя> -u <файл_с_именами_пользователей> -pf <файл_с_паролями>

например:

root@kitploit:~
$ python3 spray365.py generate normal -ep ex-plan.s365 -d example.com -u usernames -pf passwords

Создание плана выполнения (аудит)

Spray365 также может проводить аудит конфигураций многофакторной аутентификации (MFA) и политик условного доступа путем перебора действительных учетных данных. Планы выполнения в стиле аудита перебирают все комбинации User-Agent + AAD Client ID + AAD Endpoint ID для заданной пары учетных данных.

Spray365 может сгенерировать план выполнения в стиле аудита с помощью команды generate в режиме "audit": (spray365.py generate audit). Смотрите справку (spray365.py generate -h / spray365.py generate audit -h) для получения более подробной информации. Хотя можно указать списки пользователей и паролей отдельно (-u и -pf), эти опции больше подходят для планов выполнения перебора паролей (не аудита), что, скорее всего, приведет к множеству неудачных попыток входа. Вместо этого рассмотрите -u / --user_file с --passwords_in_userfile, что укажет Spray365 извлекать пароли из "user_file", разделяя каждую строку входного файла двоеточием, где значение до двоеточия считается именем пользователя, а значение после двоеточия — паролем (например, <username>:<password>, jsmith:Password01).

root@kitploit:~
$ python3 spray365.py generate audit -ep <имя_файла_плана_выполнения> -d <доменное_имя> -u <файл_с_именами_пользователей_и_паролями> --passwords_in_userfile

например:

root@kitploit:~
$ python3 spray365.py generate audit -ep ex-plan.s365 -d example.com -u usernames --passwords_in_userfile

Перебор по плану выполнения

После создания плана выполнения Spray365 можно использовать для его обработки. Запуск Spray365 в режиме "spray" (spray365.py spray) обработает указанный план выполнения и выполнит перебор соответствующих учетных данных. Все типы планов выполнения (обычные и аудиторские) могут быть обработаны в этом режиме. Смотрите справку (spray365.py spray -h) для получения более подробной информации.

root@kitploit:~
$ python3 spray365.py spray -ep <имя_файла_плана_выполнения>

например:

root@kitploit:~
$ python3 spray365.py spray -ep ex-plan.s365

Просмотр результатов операции перебора

После перебора учетных данных из плана выполнения Spray365 выводит JSON-файл с результатами. Этот файл можно обработать с помощью других инструментов, таких как JQ, чтобы получить информацию об операции перебора после её завершения. Однако Spray365 также включает команду "review", которую можно использовать для получения информации о:

  • Действительных (и недействительных) учетных записях
  • Действительных (и недействительных) учетных данных
  • Частично действительных учетных данных (аутентификация прошла успешно, но доступ был заблокирован MFA / политиками условного доступа)

Смотрите справку (spray365.py review -h) для получения более подробной информации.

root@kitploit:~
$ python3 spray365.py review <имя_json_файла_с_результатами_перебора>

например:

root@kitploit:~
$ python3 spray365.py review spray365_results_2022-05-20_18-58-31.json

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

Режим генерации (обычный)
root@kitploit:~
Usage: spray365.py generate normal [OPTIONS]

Generate a vanilla (normal) execution plan

Options:
-ep, --execution_plan           File path where execution plan should be saved  [required]
-d, --domain                    Office 365 domain to authenticate against  [required]
--delay                         Delay in seconds to wait between authentication attempts  [default: 30]
-mD, --min_loop_delay           Minimum time to wait between authentication attempts for a given user. This option takes into account the time one spray iteration will take, so a pre-authentication delay may not occur every time  [default: 0]

User options:
  -u, --user_file               File containing usernames to spray (one per line without domain)  [required]

Password options: [mutually_exclusive, required]
  -p, --password                Password to spray
  -pf, --password_file          File containing passwords to spray (one per line)
  --passwords_in_userfile       Extract passwords from user_file (colon separated)

Authentication options:
  -cID, --aad_client            Client ID used during authentication. Leave unspecified for random selection, or provide a comma-separated string
  -eID, --aad_endpoint          Endpoint ID used during authentication. Leave unspecified for random selection, or provide a comma-separated string

User Agent options: [mutually_exclusive]
  -cUA, --custom_user_agent     Set custom user agent for authentication requests
  -rUA, --random_user_agent     Randomize user agent for authentication requests  [default: True]

Shuffle options: [all_or_none]
  -S, --shuffle_auth_order      Shuffle order of authentication attempts so that each iteration (User1:Pass1, User2:Pass1, User3:Pass1) will be sprayed in a random order with a random arrangement of passwords, e.g (User4:Pass16, User13:Pass25, User19:Pass40). Be aware this option introduces the possibility that the time between consecutive authentication attempts for a given user may occur DELAY seconds apart. Consider using the-mD/--min_loop_delay option to enforce a minimum delay between authentication attempts for any given user.
  -SO, --shuffle_optimization_attempts [default: 10]

-h, --help                      Show this message and exit.
Режим генерации (аудит)
root@kitploit:~
Usage: spray365.py generate audit [OPTIONS]

Generate an execution plan to identify flaws in MFA / Conditional Access Policies. This works best with with known credentials.

Options:
-ep, --execution_plan           File path where execution plan should be saved  [required]
-d, --domain                    Office 365 domain to authenticate against  [required]
--delay                         Delay in seconds to wait between authentication attempts  [default: 30]
-mD, --min_loop_delay           Minimum time to wait between authentication attempts for a given user. This option takes into account the time one spray iteration will take, so a pre-authentication delay may not occur every time  [default: 0]

User options:
  -u, --user_file               File containing usernames to spray (one per line without domain)  [required]

Password options: [mutually_exclusive, required]
  -p, --password                Password to spray
  -pf, --password_file          File containing passwords to spray (one per line)
  --passwords_in_userfile       Extract passwords from user_file (colon separated)

Shuffle options: [all_or_none]
  -S, --shuffle_auth_order      Shuffle order of authentication attempts so that each iteration (User1:Pass1, User2:Pass1, User3:Pass1) will be sprayed in a random order with a random arrangement of passwords, e.g (User4:Pass16, User13:Pass25, User19:Pass40). Be aware this option introduces the possibility that the time between consecutive authentication attempts for a given user may occur DELAY seconds apart. Consider using the-mD/--min_loop_delay option to enforce a minimum delay between authentication attempts for any given user.
  -SO, --shuffle_optimization_attempts [default: 10]

-h, --help                      Show this message and exit.
Режим перебора
root@kitploit:~
Usage: spray365.py spray [OPTIONS]

Password spray user accounts using an existing execution plan

Options:
-ep, --execution_plan         File path to execution plan  [required]
-l, --lockout                 Number of account lockouts to observe before aborting spraying session (disable with 0)  [default: 5]
-R, --resume_index            Resume spraying passwords from this position in the execution plan  [x>=1]
-i, --ignore_success          Ignore successful authentication attempts for users and continue to spray credentials. Setting this flag will enable spraying credentials for users even if Spray365 has already identified valid credentials.

Proxy options: [all_or_none]
  -x, --proxy                 HTTP Proxy URL (format: http[s]://proxy.address:port)
  -k, --insecure              Disable HTTPS certificate verification

-h, --help                    Show this message and exit.
Режим просмотра
root@kitploit:~
Usage: spray365.py review [OPTIONS] RESULTS

View data from password spraying results to identify valid accounts and more

Options:
--show_invalid_creds
--show_invalid_users

-h, --help            Show this message and exit.

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

АвторИнструмент / ДругоеСсылка
@__TexasRangermsspray: Проведение атак перебора паролей на Azure AD, а также проверка реализации MFA на конечных точках Azure и Office 365https://github.com/SecurityRiskAdvisors/msspray

Отказ от ответственности

Использование данного программного обеспечения для атак на цели без предварительного обоюдного согласия незаконно. Конечный пользователь несет ответственность за соблюдение всех применимых местных, государственных и федеральных законов, а также любых применимых политик допустимого использования. Использование данного программного обеспечения снимает с автора(ов) любую ответственность за неправильное использование или причиненный ущерб.

Скачать инструмент