01Trusted services relay hospitality phishing
Legitimate notification and redirect infrastructure moves hospitality users toward attacker-controlled photo-themed landing pages.
Useful logs: Email, Network, Threat Intelligence
Threat report
A 2026 hospitality campaign uses trusted-service phishing, fake image shortcuts, obfuscated PowerShell, user-space Node JS, Defender exclusions, dual registry persistence, and rotating C2.
Reported facts and defensive takeaways are labeled separately.
Public reporting
Microsoft identified an active multi-stage campaign targeting hospitality organizations in Europe and Asia from April 2026. The campaign delivers photo-themed archives containing fake image shortcuts, repeatedly changes PowerShell obfuscation, deploys a legitimate Node JS runtime to execute a JavaScript implant, weakens Defender inspection for staged executables, and establishes two registry persistence paths.
The visible artifacts rotate while the behavioral skeleton stays comparatively stable. Trusted web services, legitimate Node JS, PowerShell, common startup keys, and non-standard ports are individually explainable; their sequence is not. Durable detection therefore depends on runtime/path baselines, protection-change correlation, registry persistence, and process-aware network telemetry.
Public reporting
01Legitimate notification and redirect infrastructure moves hospitality users toward attacker-controlled photo-themed landing pages.
Useful logs: Email, Network, Threat Intelligence
02The downloaded archive contains a shortcut disguised as a PNG and relies on the user opening it.
Useful logs: File, Process, Endpoint
03Across seven obfuscation phases, syntax changes while arithmetic decoding, web retrieval, and script staging remain stable.
Useful logs: Process, File, Network
04The second wave adds compiler/resource-converter activity that creates small DLLs before the later runtime stage; Microsoft did not observe those DLLs loaded in available telemetry.
Useful logs: Process, File
05A legitimate Node JS runtime is placed under the user profile and executes randomized JavaScript payloads.
Useful logs: Process, File, Network
06PowerShell adds process exclusions for temporary executables before installer-like or unpacker activity runs.
Useful logs: Process, File, Endpoint
07One startup path preserves the Node JS component while a second points to a relocated ProgramData payload; RunOnce can be refreshed after execution.
Useful logs: Registry, Process, File
08Compromised systems communicate with fixed or rotating infrastructure over multiple non-standard ports; selected hosts also show browser automation and forced shutdown.
Useful logs: Network, Process, Endpoint
Defensive takeaways
The fake image shortcut is the user-execution bridge from lure to script execution.
Useful logs: File, Process
The implementation changed repeatedly, but the decode-and-download behavior stayed consistent.
Useful logs: Process, Network, File
A legitimate runtime becomes the implant interpreter and is especially anomalous on ordinary business endpoints.
Useful logs: Process, File
The short sequence connects protection weakening with follow-on payload execution.
Useful logs: Process, Endpoint
The dual persistence model is more durable than rotating domains and obfuscation syntax.
Useful logs: Registry, File, Process
The refresh loop can complicate remediation and provides a strong hunting pivot.
Useful logs: Registry
Process-aware network context can expose active implant control even when destinations rotate.
Useful logs: Network, Process
Email and URL telemetry can expose trusted-service delivery and the multi-hop redirect chain.
Process lineage captures shortcut-to-PowerShell, user-space Node JS, protection changes, payload execution, and late-stage automation.
File telemetry exposes browser origins, fake shortcut naming, temporary payloads, ProgramData relocation, and hash reuse.
Registry telemetry provides one of the campaign's most durable and remediation-relevant signals.
Network telemetry scopes active implant control when joined with process context.
Defensive takeaways
Alert when a device without recent user-space Node JS history executes JavaScript from a profile path and creates nearby Run/RunOnce persistence.
Correlate process-exclusion changes with executable launch from user temporary paths in a short window.
Defensive takeaways
Identify developer/build and approved application populations first, then prioritize first-seen Node JS under user profiles on ordinary endpoints.
Correlating Defender exclusions with temporary executable launch is more durable than matching one random filename.
Run for Node JS plus RunOnce for ProgramData, especially if RunOnce is recreated, is a strong persistence pattern.
Public reporting
1 valuesem1618[.]calendly[.]com1 valuesphoto-26654[.]cfd1 values178[.]16[.]54[.]271 values95[.]217[.]97[.]1211 valuessec-safe-dc[.]info1 valuessafedocphoto[.]info1 values04ec44f2618460f5c77c5e56014a512cc03a123c9c5b6b6b1273e2a1681ac2e11 valuesIMG-<digits>.png.lnk1 valuesPHOTO-<digits>.png.lnk1 values56001/56002/560031 valuestonapi[.]io1 valueszloapobikahy23[.]bondReview record
Microsoft observed activity from April 2026, described Wave 1 through May and Wave 2 from late May into June, and published the broader campaign analysis on June 25. SOC Prime published related hotel-sector analysis on June 12.
Microsoft provides cross-organization telemetry, two-wave behavioral analysis, hunting queries, detections, and indicators. SOC Prime independently reported a closely matching hotel-sector ZIP/LNK/PowerShell/Node JS TonRAT chain. Microsoft did not attribute the campaign to a known threat actor.
Microsoft observed the campaign from April 2026 across hospitality organizations in Europe and Asia. Wave 1 used IMG-style fake image shortcuts and a PowerShell-to-Node JS path. Wave 2 changed the shortcut prefix to PHOTO, added an intermediate .NET compilation stage, and expanded domain infrastructure.
The runtime and persistence design remained more stable than the lure details. A legitimate Node JS runtime under the user profile executed randomized JavaScript, temporary payloads received Defender exclusions, and startup persistence was split across Run and RunOnce.
SOC Prime's earlier hotel-sector analysis independently described a closely matching ZIP/LNK/PowerShell/Node JS TonRAT chain and added a source-specific TON API/WebSocket C2 mechanism. That detail is useful for hunting but is not treated as mandatory for every Microsoft-observed host.
Do not turn legitimate service names or Node JS into a blocklist. The useful question is whether an ordinary business endpoint suddenly moves through shortcut execution, script staging, user-space runtime execution, protection changes, dual persistence, and unexplained network activity.
Microsoft Security
SOC Prime
Microsoft Learn
Microsoft Learn
Supporting context
T1566.002 · Spearphishing LinkMicrosoft observed phishing links delivered through trusted-service redirect chains.
T1204.002 · Malicious FileFake PNG shortcut files require the targeted user to execute disguised content.
T1059.001 · PowerShellPowerShell performs the evolving decode-and-download stage.
T1059.007 · JavaScriptNode JS interprets the JavaScript implant.
T1547.001 · Registry Run Keys / Startup FolderRun and RunOnce values provide dual startup persistence.
T1571 · Non-Standard PortLater-stage command-and-control uses multiple non-standard ports.