TrustSink крадёт пароли через поддельный MFA-провайдер в Microsoft Entra

Исследователи Varonis Threat Labs описали технику TrustSink, которая позволяет перехватывать пароли во время штатного входа в Microsoft Entra. Для этого злоумышленнику нужен уже скомпрометированный аккаунт с высокими привилегиями: он регистрирует вредоносный внешний провайдер MFA и добавляет в знакомую пользователю цепочку авторизации поддельную страницу ввода пароля.
В тестовой среде вход завершался без ошибок, хотя сервер исследователей получал пароли, время их ввода и IP-адреса пользователей. Как сообщает Varonis, смена скомпрометированного пароля сама по себе не устраняет угрозу: вредоносный провайдер остаётся в сценарии входа и может перехватить новый пароль при следующей авторизации.
TrustSink относится к техникам после взлома, а не к способам получить первоначальный доступ. Для регистрации External Authentication Method нужно изменить политику методов аутентификации, создать приложение, его service principal и выдать согласие на доступ. Это доступно владельцам ролей Global Administrator или Authentication Policy Administrator.
Как работает TrustSink
Пользователь начинает вход привычным способом: вводит адрес электронной почты и настоящий пароль на домене Microsoft. После срабатывания MFA Entra перенаправляет браузер на зарегистрированный внешний провайдер для второго этапа проверки. Вместо запроса второго фактора тот показывает копию страницы Microsoft с ещё одним полем для пароля.

Поддельная страница повторяет шрифты, разметку и синюю кнопку оригинальной формы. Второй запрос выглядит правдоподобно: пользователь только что ввёл пароль в официальном окне и ожидает продолжения проверки. Введённые данные сохраняются на сервере атакующего, а провайдер возвращает Entra подписанный токен об успешном прохождении MFA.
Entra проверяет подпись токена и завершает вход в приложение. Исследователи использовали в токене утверждения acr: «possessionorinherence» и amr: [«hwk»], имитирующие проверку аппаратного ключа. Пользователь видит успешную авторизацию и не получает сообщения об ошибке.

Для демонстрации специалисты собрали минимальный OpenID Connect-сервер на Python и FastAPI. Он публиковал документ конфигурации, открытый ключ для проверки подписи, страницу-двойник и обработчик, записывающий пароль. В лаборатории сервер был доступен через публичный HTTPS-адрес, поскольку к нему обращаются и Entra, и браузер жертвы.
Исследование развивает работу Дирка-яна Моллемы, представленную на x33fcon 2025. Он показал, что зарегистрированный внешний провайдер способен обойти MFA, вернув подписанный JWT без реальной проверки. В TrustSink та же граница доверия используется для перехвата пароля в открытом виде.
Varonis рекомендует сначала отключить подозрительный внешний метод в Authentication Methods Policy и убрать его назначения группам, а затем сбрасывать пароли пользователей. Также следует удалить регистрацию приложения, service principal, ключи подписи, выданные разрешения и URI перенаправления.
- Отслеживать новые externalAuthenticationMethodConfiguration вне запланированных внедрений.
- Проверять приложения с внешним callback-адресом Microsoft для аутентификации.
- Искать незнакомых издателей в журналах входа с признаком
hwk. - Ограничивать постоянные роли Global Administrator и Authentication Policy Administrator.
- Переводить пользователей на FIDO2 или Windows Hello for Business.



