The MFA Prompt Looked Normal
The user had MFA enabled.
The password alone was not enough.
Microsoft Defender showed no obvious malware. No suspicious attachment was opened. No endpoint alert immediately explained what happened.
The MFA prompt looked normal.
The Microsoft Authenticator notification appeared on the user's phone just like it always did.
But the prompt was not caused by the user signing in.
It was caused by the attacker.
This Agent Foskett briefing looks at MFA fatigue attacks, sometimes called push bombing, where attackers repeatedly trigger MFA prompts until a tired, busy or confused user eventually taps approve.
The user did not think they were letting an attacker in.
They thought they were clearing a normal Microsoft prompt.
Briefing summary
MFA fatigue attacks abuse legitimate authentication prompts. The MFA notification may be real, the approval may be valid, and the resulting session may look successful — but the user may have approved an attacker they never meant to authorise.
The attack nobody questions
Why MFA did not stop it
First hunt: repeated MFA failures and denials
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
SigninLogs | where TimeGenerated > ago(7d) | where AuthenticationRequirement has "multiFactorAuthentication" | project TimeGenerated, UserPrincipalName, IPAddress, AppDisplayName, ResultType, ResultDescription, Location | order by TimeGenerated desc
Common signs of MFA fatigue
Second hunt: success after repeated failures
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
SigninLogs | where TimeGenerated > ago(14d) | summarize FailedAttempts=countif(ResultType != 0), SuccessfulAttempts=countif(ResultType == 0), FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated) by UserPrincipalName, IPAddress | where FailedAttempts > 5 and SuccessfulAttempts > 0 | order by FailedAttempts desc
Third hunt: what happened after the approval?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
CloudAppEvents | where Timestamp > ago(14d) | where Application has_any ("Exchange", "Office 365", "Microsoft 365", "SharePoint") | where ActionType has_any ("MailItemsAccessed", "FileDownloaded", "New-InboxRule", "Set-InboxRule") | project Timestamp, AccountDisplayName, ActionType, Application, IPAddress, RawEventData | order by Timestamp desc
Where defenders get caught
How GEMXIT approaches this type of investigation
Final thought
In reality, they were approving the attacker's login.
Modern identity attacks are no longer only about breaking passwords or bypassing controls. Sometimes the attacker simply waits for a tired user to approve something that looks routine.
The real question becomes:
“Did the user approve their own sign-in — or someone else's?”
It is: “Why was MFA approved?”
Continue the investigation with The User Passed MFA But It Wasn't Really Them, The Session Token Never Expired, The Login Came Through A Trusted Device, The User Clicked Accept And Gave Away The Entire Mailbox, Microsoft Defender KQL Threat Hunting Guide, Agent Foskett Academy, Microsoft Security and the GEMXIT Security Review.
Develop IT. Protect IT.GEMXIT PTY LTD | GEMXIT UK LTD