T1111

Multi-Factor Authentication Interception

Adversaries may target multi-factor authentication (MFA) mechanisms to intercept authentication factors including smart card PINs, hardware token codes (RSA SecurID), SMS-based one-time passwords, and app-based push notifications. Interception methods include keylogging to capture smart card PINs or TOTP codes, SMS hijacking via SIM swapping or compromised messaging service providers, MFA prompt bombing (fatigue attacks sending repeated push notifications until the user approves), and adversary-in-the-middle (AiTM) phishing frameworks that relay credentials and capture session tokens post-MFA. Nation-state groups including Kimsuky (proprietary OTP interception tool), APT42 (cloned websites capturing MFA tokens), and Chimera (registering adversary phone numbers on compromised accounts) have employed these techniques. Criminal group LAPSUS$ operationalized MFA fatigue at scale against major technology firms, achieving access by sending repeated Authenticator push notifications until users approved out of confusion or frustration.

Microsoft Sentinel / Defender
kusto
// Detection: MFA Fatigue / Prompt Bombing — multiple failed MFA prompts followed by success
let MfaFatigueWindow = 30min;
let MfaPromptThreshold = 5;
let FailedMfaEvents = AADSignInLogs
| where TimeGenerated > ago(24h)
| where ResultType != "0"
| where AuthenticationRequirement == "multiFactorAuthentication"
| where AuthenticationDetails has_any ("MFA", "PhoneAppNotification", "PhoneAppOTP", "OneWaySMS", "TwoWayVoiceMobile")
| project FailTime=TimeGenerated, UserPrincipalName, FailIP=IPAddress, FailLocation=Location;
let SuccessfulMfaEvents = AADSignInLogs
| where TimeGenerated > ago(24h)
| where ResultType == "0"
| where AuthenticationRequirement == "multiFactorAuthentication"
| project SuccessTime=TimeGenerated, UserPrincipalName, SuccessIP=IPAddress, AppDisplayName, SuccessLocation=Location, UserAgent;
FailedMfaEvents
| join kind=inner SuccessfulMfaEvents on UserPrincipalName
| where SuccessTime between (FailTime .. (FailTime + MfaFatigueWindow))
| summarize
    FailCount = dcount(FailTime),
    FirstFailTime = min(FailTime),
    SuccessTime = max(SuccessTime),
    FailSourceIPs = make_set(FailIP),
    SuccessSourceIPs = make_set(SuccessIP),
    TargetApps = make_set(AppDisplayName),
    FailLocations = make_set(FailLocation)
    by UserPrincipalName
| where FailCount >= MfaPromptThreshold
| extend TimeDeltaMinutes = datetime_diff('minute', SuccessTime, FirstFailTime)
| extend AlertType = "MFA Fatigue Attack"
| extend IPMismatch = set_difference(SuccessSourceIPs, FailSourceIPs) != dynamic([])
| project AlertType, UserPrincipalName, FailCount, TimeDeltaMinutes, FirstFailTime, SuccessTime,
         FailSourceIPs, SuccessSourceIPs, IPMismatch, TargetApps, FailLocations
| sort by FailCount desc
high severity medium confidence

Data Sources

Authentication: Authentication Logon Session: Logon Session Creation Azure AD Sign-In Logs Microsoft Sentinel AADSignInLogs

Required Tables

AADSignInLogs

False Positives

  • Users with poor mobile connectivity who retry MFA push notifications multiple times due to notification delivery failures — particularly common in low-signal areas or when VPN is in use on the authenticator device
  • Users who habitually dismiss MFA notifications accidentally before accepting them, especially with Microsoft Authenticator number matching where dismissal is a single tap away from approval
  • Automated testing frameworks or CI/CD pipelines in non-production tenants that trigger interactive authentication flows repeatedly during integration tests
  • Users traveling across Conditional Access geographic zones triggering multiple re-authentication challenges in rapid succession during transit
  • Help desk password reset workflows where multiple MFA verification rounds occur during account recovery procedures

Unlock Pro Content

Get the full detection package for T1111 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections