
Инструмент для перебора имен пользователей и распыления паролей, нацеленный на Microsoft O365.
o365spray — это инструмент для перебора имен пользователей и распыления паролей, нацеленный на Microsoft Office 365 (O365). Этот инструмент повторно реализует набор методов перебора и распыления, исследованных и описанных теми, кто упомянут в разделе Благодарности.
Только для образовательных, авторизованных и/или исследовательских целей.
ПРЕДУПРЕЖДЕНИЕ: Модули перебора Autologon, oAuth2 и RST работают, отправляя одну попытку аутентификации на каждого пользователя. Если модули запускаются вместе с распылением паролей за один запуск, o365spray автоматически сбросит таймер блокировки перед выполнением распыления паролей. Если перебор запускается отдельно, пользователь должен знать, сколько и когда были выполнены попытки аутентификации, и вручную сбросить таймер блокировки перед выполнением распыления паролей.
Проверить, использует ли домен O365:
o365spray --validate --domain test.com
Выполнить перебор имен пользователей для заданного домена:
o365spray --enum -U usernames.txt --domain test.com
Выполнить распыление паролей для заданного домена:
o365spray --spray -U usernames.txt -P passwords.txt --count 2 --lockout 5 --domain test.com
usage: o365spray [flags]
o365spray | Microsoft O365 User Enumerator and Password Sprayer -- v3.0.4
options:
-h, --help show this help message and exit
Target:
-d DOMAIN, --domain DOMAIN
Target domain for validation, user enumeration, and/or
password spraying.
Actions:
--validate Run domain validation only.
--enum Run username enumeration.
--spray Run password spraying.
Credentials:
-u USERNAME, --username USERNAME
Username(s) delimited using commas.
-p PASSWORD, --password PASSWORD
Password(s) delimited using commas.
-U USERFILE, --userfile USERFILE
File containing list of usernames.
-P PASSFILE, --passfile PASSFILE
File containing list of passwords.
--paired PAIRED File containing list of credentials in username:password
format.
Password Spraying Configuration:
-c COUNT, --count COUNT
Number of password attempts to run per user before resetting
the lockout account timer.
Default: 1
-l LOCKOUT, --lockout LOCKOUT
Lockout policy's reset time (in minutes).
Default: 15 minutes
Module Configuration:
--validate-module VALIDATE_MODULE
Specify which valiadtion module to run.
Default: getuserrealm
--enum-module ENUM_MODULE
Specify which enumeration module to run.
Default: office
--spray-module SPRAY_MODULE
Specify which password spraying module to run.
Default: oauth2
--adfs-url ADFS_URL AuthURL of the target domain's ADFS login page for password
spraying.
Scan Configuration:
--sleep [-1, 0-120] Throttle HTTP requests every `N` seconds. This can be randomized
by passing the value `-1` (between 1 sec and 2 mins).
Default: 0
--jitter [0-100] Jitter extends --sleep period by percentage given (0-100).
Default: 0
--rate RATE Number of concurrent connections (attempts) during
enumeration and spraying.
Default: 10
--poolsize POOLSIZE Maximum size of the ThreadPoolExecutor.
Default: 10000
--safe SAFE Terminate password spraying run if `N` locked accounts
are observed.
Default: 10
HTTP Configuration:
--useragents USERAGENTS
File containing list of user agents for randomization.
--timeout TIMEOUT HTTP request timeout in seconds. Default: 25
--proxy PROXY HTTP/S proxy to pass traffic through
(e.g. http://127.0.0.1:8080).
--proxy-url PROXY_URL
FireProx API URL.
Output Configuration:
--output OUTPUT Output directory for results and test case files.
Default: current directory
Debug:
-v, --version Print the tool version.
--debug Enable debug output.
Модуль onedrive полагается на то, что целевые пользователи ранее входили в OneDrive. Если действительный пользователь ещё не пользовался OneDrive, его учётная запись будет считаться «недействительной».
Модуль oAuth2 можно использовать для федеративного распыления, но следует отметить, что он будет работать ТОЛЬКО если целевой клиент включил синхронизацию паролей — в противном случае аутентификация всегда будет неудачной. Механизм по умолчанию — переключение на модуль 'adfs' при обнаружении федерации.
Microsoft усложнила распыление паролей, поэтому использование таких инструментов, как FireProx, помогает обойти ограничение частоты запросов на основе IP-адресов.
Чтобы использовать FireProx с o365spray, создайте прокси-URL для заданного модуля o365spray на основе таблиц базовых URL ниже. Прокси-URL затем можно передать через --proxy-url.
ПРИМЕЧАНИЕ: Убедитесь, что используете правильный флаг
--enum-moduleили--spray-moduleс базовым URL, использованным для создания FireProx URL.
Значение 'tenant' в URL OneDrive — это имя домена, указанное через флаг
--domain.
Теперь поддерживается рандомизация User-Agent. Её можно включить, передав файл с User-Agent флагу --useragents. o365spray включает пример файла с более чем 4 800 агентами в resc/user-agents.txt.
Агенты в примере были собраны из следующих источников:
Фреймворк o365spray был портирован в новый инструмент: Omnispray. Этот инструмент создан для модульности оригинального фреймворка перебора и распыления, чтобы обеспечить возможность нацеливания на любые системы, а не только на O365. Omnispray включает шаблонные модули для перебора и распыления, которые можно модифицировать и использовать для любых целей.
Если вы обнаружите ошибки/баги, пожалуйста, создайте Issue с подробностями (или Pull Request с предлагаемым исправлением). Смотрите раздел ниже для информации об использовании предыдущих версий.
Если возникают проблемы, попробуйте переключиться на предыдущие версии до переписывания кода:
# v1.3.7
git checkout e235abdcebad61dbd2cde80974aca21ddb188704
# v2.0.4
git checkout a585432f269a8f527d61f064822bb08880c887ef
| Модуль | Базовый URL |
|---|
| autodiscover | https://outlook.office365.com/ |
| autologon | https://autologon.microsoftazuread-sso.com/ |
| oauth2 | https://login.microsoftonline.com/ |
| office | https://login.microsoftonline.com/ |
| rst | https://login.microsoftonline.com/ |
| onedrive | https://<tenant>-my.sharepoint.com/ |
| Модуль | Базовый URL |
|---|
| activesync | https://outlook.office365.com/ |
| adfs | Пока не реализовано |
| autodiscover | https://autodiscover-s.outlook.com/ |
| autologon | https://autologon.microsoftazuread-sso.com/ |
| oauth2 | https://login.microsoftonline.com/ |
| reporting | https://reports.office365.com/ |
| rst | https://login.microsoftonline.com/ |
| Автор | Инструмент/Исследование | Ссылка |
|---|
| gremwell | o365enum: перебор пользователей через office.com без аутентификации | o365enum |
| grimhacker | office365userenum: исследование и обнаружение перебора пользователей через ActiveSync. | office365userenum / пост в блоге |
| Raikia | UhOh365: перебор пользователей через Autodiscover без аутентификации. | UhOh365 |
| dafthack | MSOLSpray: распыление паролей через MSOL | MSOLSpray |
| byt3bl33d3r | MSOLSpray: реализация на Python | Gist |
| nyxgeek | onedrive_user_enum: перебор пользователей OneDrive | onedrive_user_enum / пост в блоге |
| Mr-Un1k0d3r | adfs-spray: распыление паролей через ADFS | adfs-spray |
| Nestori Syynimaa | AADInternals: модули oAuth2 и autologon | AADInternals |
| Daniel Chronlund / xFreed0m | Invoke-AzureAdPasswordSprayAttack / ADFSpray: распыление паролей через API отчетов Office 365 | Invoke-AzureAdPasswordSprayAttack / ADFSpray |
| Optiv (несколько авторов) | Go365: модуль перебора пользователей и распыления паролей RST | Go365 |
| byt3bl33d3r | SprayingToolkit: ссылки на код | SprayingToolkit |
| sensepost | ruler: ссылки на код | Ruler |