The SVR's Cheapest Route Runs Through Conference WiFi
Blocking one Entra authentication flow removes the payoff of a campaign running since May, and a 90-day sign-in hunt is the only way to learn whether tokens already left.
Two services, one doctrine
Microsoft attributes the global WiFi gateway hijacking campaign to Storm-2945, a subgroup of Midnight Blizzard, the SVR cluster also tracked as APT29 and Cozy Bear. Active since May. This belongs in the threat model, not the incident ticket. Two separate Russian intelligence services arrived at the same access model without coordinating. The FrostArmada operation, which hijacks MikroTik and TP-Link routers to serve near-identical Microsoft-themed phishing, is APT28, which answers to the GRU. Foreign intelligence and military intelligence both landed on compromised network edge devices as the cheapest route into a Microsoft tenant. That is doctrine, and doctrine outlives the gateways cleaned up in any one remediation cycle.
The gateway is the least interesting link in the chain. Owning it yields the network path, not the endpoint. What follows is ordinary DNS manipulation, steering users to attacker-controlled Microsoft-branded pages that harvest Entra device codes and OAuth authorization codes. Delivery is ClickFix: the page tells the user to copy a string and run it, so there is no exploit and no signature to catch. The implants are CornFlake RAT and the CocoShell PowerShell infostealer, both reporting to a previously unseen panel called FruitStone. IOC feed coverage of that panel was zero as of the source reporting. Worth remembering the next time a hunt comes back clean.
Why a password reset does not close this
The device code flow exists so a TV, console or CLI tool can authenticate while the user types a short code on a second device. A stolen code therefore produces tokens without the second factor ever being challenged, and the resulting refresh token survives a password reset. Containment on a confirmed hit is three steps, not one: revoke refresh tokens, force device re-registration, then review mailbox rules and OAuth application consents for that identity. Anything less leaves the SVR holding valid access while the ticket reads remediated.
Gateway DNS manipulation only works on an endpoint that trusts the gateway, and a stolen device code only works in a tenant that still accepts one.
The hunt, and the honest caveat
Scope the retro-hunt to May 1 onward, because that is where Microsoft dates the campaign. Query Entra sign-in logs for deviceCode and OAuth authorization flows, then correlate against hospitality, travel and conference-venue ASNs, plus any geography off the identity's pattern. Two detections cover the delivery step across the rest of the fleet: writes to the RunMRU registry key containing encoded or obfuscated commands, and explorer.exe spawning powershell.exe, cmd.exe or mshta.exe. PowerShell script block logging fleet-wide catches CocoShell-class stagers.
One claim needs a caveat before it reaches a board. Microsoft says Storm-2945 used AI somewhere in the operation and published no detail on how. That is the whole of the public record on the point. Treat it as unsubstantiated. Every control above works regardless, and an unexplained AI attribution on a board slide is a credibility cost with no return.
The travel-risk half is cheap and usually skipped: always-on VPN with DNS-over-HTTPS pinned to corporate resolvers, plaintext port 53 egress blocked, and cellular tethering mandated over untrusted WiFi for privileged and executive accounts. Hotels and conference centers were the highest-yield venues for catching business travelers, nothing more. Microsoft's own correction is that compromised gateways turned up across all sorts of organizations. An office guest network now earns the same distrust as a hotel lobby.
What to do
Deploy a Conditional Access policy blocking the Entra device code authentication flow tenant-wide this week, with one narrowly scoped exception group for device-onboarding staff.
Retro-hunt 90 days of Entra sign-in logs for device code and OAuth authorization flows from travel, hospitality and conference-venue ASNs, then revoke refresh tokens and force device re-registration on every hit.
Ship the two ClickFix detections into production this sprint - RunMRU registry writes containing encoded commands, and explorer.exe spawning script interpreters - with PowerShell script block logging enabled fleet-wide.