
Перечисление учётных записей пользователей и зарегистрированных методов аутентификации через портал самостоятельного сброса пароля Microsoft (SSPR)
Исследует конечную точку самостоятельного сброса пароля (SSPR) Microsoft для перечисления зарегистрированных методов проверки и выявления тех, которые не обеспечивают надёжный второй фактор. Обеспечивает перечисление пользователей и приблизительную оценку состояния MFA по учётным записям Entra.
[!NOTE] По состоянию на август 2026 года Microsoft удалила устаревшую CAPTCHA из процесса SSPR и заменила её серверным троттлингом и поведенческим обнаружением злоупотреблений (см. MC1400824). Позиция Microsoft заключается в том, что серверных механизмов контроля достаточно для обнаружения и блокировки автоматизированных злоупотреблений.
# Install pipx if needed
apt install pipx && pipx ensurepath
# From a local clone
git clone https://github.com/mlcsec/ResetSpy.git
cd ResetSpy
pipx install .
python3 -m venv .venv
pip install -r requirements.txt
# Single acc
resetspy [email protected]
# Email file (one per line)
resetspy emails.txt
# Proxy
resetspy emails.txt --proxy http://127.0.0.1:8080
# Export to CSV with increased delay
resetspy emails.txt --csv results.csv --delay 4
# Full HTTP debug — request/response headers and bodies printed to stderr
resetspy [email protected] -v
| Флаг | По умолчанию | Описание |
|---|---|---|
--delay SECONDS | 2.0 | Базовая задержка между запросами; джиттер добавляется автоматически |
--retries N | 1 | Максимум повторных попыток на учётную запись при временных ошибках |
--proxy URL | Прокси; автоматически отключает проверку SSL | |
--csv FILE | Экспорт всех результатов в CSV | |
-v / --verbose | Вывод полных заголовков и тел запросов/ответов в stderr |
Случайный джиттер добавляется поверх --delay между каждым запросом.
Экспоненциальная задержка (до --retries попыток) применяется при
ответах 429 и сетевых ошибках. Задержка по умолчанию — 2 секунды; увеличьте до
4-6 секунд для больших пакетов. User-Agent меняется из пула из 16
распространённых агентов (Windows, macOS, iOS, Android) при каждом запросе.
Объединённый процесс регистрации сведений безопасности Microsoft, включённый по умолчанию с 2020 года, регистрирует методы аутентификации как для SSPR, так и для MFA в едином потоке. На практике это означает, что на большинстве современных тенантов Entra ID методы, видимые через SSPR, — это те же методы, которые защищают вход. Учётная запись без зарегистрированного надёжного метода SSPR с большой вероятностью является учётной записью без зарегистрированного надёжного метода MFA.
Ссылки:
SSPR и MFA — это отдельные реестры. Объединённая регистрация заставляет их пересекаться в большинстве случаев, но это не одно и то же. Метод может существовать для MFA, не будучи видимым здесь, если он был зарегистрирован до включения объединённой регистрации или если администратор исключил его из политики SSPR.
Ключи безопасности FIDO2 и аутентификация на основе сертификатов не поддерживаются SSPR. Microsoft никогда не добавляла эти методы в процесс SSPR. Пользователь, единственным зарегистрированным фактором которого является ключ FIDO2 или смарт-карта, будет отображаться здесь как не имеющий методов — ложноотрицательный результат. На практике это редко для обычных пользователей, но чаще встречается в высокозащищённых или беcпарольных средах.
Ссылки:
Несоответствия политик по методам. Администраторы могут разрешить метод для входа через MFA, но исключить его из политики SSPR, или наоборот. Например, организация может разрешить push-уведомление аутентификатора для входа, но не для сброса пароля. Инструмент видит только то, что готов предложить SSPR.
SSPR полностью отключён (SSPR_0011). Если SSPR не лицензирован или не
включён для пользователя, конечная точка возвращает ViewSsprNotEnabledInUserPolicy
и информация о методах недоступна. Учётная запись существует и, вероятно, имеет настроенный MFA,
но этот инструмент не может определить какой.
Гостевые и федеративные учётные записи. Внешние пользователи и гости B2B аутентифицируются
через свой домашний тенант. Конечная точка SSPR ресурсного тенанта не имеет
видимости регистрации MFA домашнего тенанта и возвращает
ViewFeatureNotAvailable. Их состояние MFA невидимо из этой конечной точки.
Ограничения методов на уровне тенанта. Если администратор отключил класс методов в политике SSPR, он не будет предложен ни одному пользователю независимо от индивидуальной регистрации, что делает невозможным отличить «метод не зарегистрирован» от «метод отключён».
Учётные записи администраторов всегда имеют включённый SSPR. Настройки политики SSPR Microsoft применяются только к обычным конечным пользователям. Учётные записи администраторов всегда включены для самостоятельного сброса пароля независимо от политики SSPR тенанта, и Microsoft требует, чтобы у них было зарегистрировано два метода аутентификации. Это обеспечивается на уровне платформы и не может быть отключено администраторами тенанта.
Ссылка: Документация по политикам SSPR
[!IMPORTANT] Это имеет полезное следствие для разведки. Если SSPR отключён для обычных пользователей в тенанте (возвращая
ViewSsprNotEnabledInUserPolicy), любая учётная запись, которая успешно достигает экрана выбора метода, вероятно, является членом привилегированной роли. Учётные записи, которые чисто перечисляются через SSPR, когда общая политика тенанта отключена, выделяются как вероятные учётные записи администраторов, и их зарегистрированные методы видны, даже когда методы обычных пользователей не видны. Это позволяет идентифицировать высокоценные цели и привилегированные учётные записи, которые можно выделить для дальнейших целевых атак.