{"id":1455,"date":"2026-06-26T10:43:06","date_gmt":"2026-06-26T10:43:06","guid":{"rendered":"https:\/\/thedigitalfortress.us\/?p=1455"},"modified":"2026-06-26T10:43:06","modified_gmt":"2026-06-26T10:43:06","slug":"microsoft-warns-of-photo-zip-phishing-campaign-targeting-hotels-with-node-js-implant","status":"publish","type":"post","link":"https:\/\/thedigitalfortress.us\/?p=1455","title":{"rendered":"Microsoft Warns of Photo ZIP Phishing Campaign Targeting Hotels with Node.js Implant"},"content":{"rendered":"<div>\n<p><span class=\"p-author\"><i class=\"icon-font icon-user\">\ue804<\/i><span class=\"author\">Swati Khandelwal<\/span><i class=\"icon-font icon-calendar\">\ue802<\/i><span class=\"author\">Jun 26, 2026<\/span><\/span><span class=\"p-tags\">Phishing \/ Malware<\/span><\/p>\n<\/div>\n<div id=\"articlebody\">\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhWYWOSDRBtv65eOzqdHSuOxXN7BWyBo1EAltLLUTTKGt68GYJ67zn9ixdKIQjTPCgE3P1o09UzrwXzvbopRZIhjN0LxYAZR06WaXOd116NQutGo1zLaceeob3nkuIHCeP6ZhlVp1yVOfc7dt-YZKFhEJJiPF8H5P03bc1ny0E3mi7jbIhqh7wqodC_zKE\/s1700-e365\/hotel-photo-zip.jpg\" style=\"clear: left; display: block; float: left;  text-align: center;\"><\/a><\/div>\n<p>An active phishing campaign has been targeting hotel and other hospitality organizations across Europe and Asia since April 2026, using photo-themed ZIP files to drop a Node.js implant and dig into front-desk machines, Microsoft says.<\/p>\n<p>The company has\u00a0not attributed\u00a0the activity to a known threat actor, and the operators&#8217; end goal is still unclear.<\/p>\n<p>The lure plays to how hotels work. Phishing emails carry the display name \u00abBooking Manager (via Calendly)\u00bb and reference guest complaints, bedbug infestations, room inquiries, health inspections, and stay reviews.<\/p>\n<p>The lures came in Japanese, Danish, and Dutch, with Japanese the most common. The subject line names no recipient or property, which points to high-volume, list-driven sending rather than tailored spear phishing. The pressure is reputational: complaints, final warnings, threatened inspections.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/ai-cant-stop-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Cybersecurity\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjPEV6-530TOlxG6PjrmdlY623wpBwduZ7t1HV6flcmO5R4q4AmfixDUzW0CrhlvMVNWbhvOIso-UDNTka4W_W9Chrdj_dglwBZwi7DuePM2IMIl-hfUYVIqBXgfpr_2619K8Gptb4LzwJ6gUbi7lWl2M8AFQJsHEaw63Q7tZ6708YGruiHrr0Y2W9YYxLQ\/s728-e100\/ThreatLocker-d.png\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>The delivery is the interesting part. The operators route messages through Calendly&#8217;s email notification system and Google&#8217;s URL redirect service, a trick Microsoft calls <b>authentication laundering<\/b>. Emails sent through the direct Calendly path pass SPF, DKIM, and DMARC, because they really are sent from authorized infrastructure.<\/p>\n<p><a name=\"more\"\/><\/p>\n<p>The checks confirm the sender is allowed to send. They say nothing about what the message is for. A multi-hop chain then walks the victim from a Calendly link through\u00a0share.google\u00a0and a Google redirect to a freshly registered, Cloudflare-fronted\u00a0.cfd\u00a0domain. That domain sits behind a Turnstile challenge that doubles as anti-analysis.<\/p>\n<p>Click through, and the target downloads a file named\u00a0photo-<numbers>.zip. Inside is a shortcut posing as an image:\u00a0IMG-<numbers>.png.lnk\u00a0in the first wave,\u00a0PHOTO-<numbers>.png.lnk\u00a0in the second.<\/numbers><\/numbers><\/numbers><\/p>\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjCvpIw74RMjaGm8NbOn37t48gXsif-Ne68XQ2e1QXR9pHgjR8x-J61k5rgw9sqC3Ay4w1eDG4ocmjYog9MRzyle-2gve5_mrO_NzSvRLAI7dHxnlcUNYX7zhxpaV0IH7pnktbBV9vkl7lN0QPMMwn-IY0p9lGK67C5xpSxmBn_eFBrJfVbu2w44VHwQRs\/s1700-e365\/zip.jpg\" style=\"clear: left; display: block; float: left;  text-align: center;\"><img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjCvpIw74RMjaGm8NbOn37t48gXsif-Ne68XQ2e1QXR9pHgjR8x-J61k5rgw9sqC3Ay4w1eDG4ocmjYog9MRzyle-2gve5_mrO_NzSvRLAI7dHxnlcUNYX7zhxpaV0IH7pnktbBV9vkl7lN0QPMMwn-IY0p9lGK67C5xpSxmBn_eFBrJfVbu2w44VHwQRs\/s1700-e365\/zip.jpg\" alt=\"\" border=\"0\" data-original-height=\"894\" data-original-width=\"864\"\/><\/a><\/div>\n<p>Opening it fires PowerShell. The script uses BigInt arithmetic to decode a hidden download URL, pulls a\u00a0.ps1\u00a0to\u00a0%TEMP%, and drops a legitimate Node.js v24.13.0 runtime from\u00a0nodejs.org\u00a0into user space, which then runs the JavaScript implant. No system-wide Node install is needed.<\/p>\n<p>The implant is tracked as <b>TonRAT<\/b>. It resolves its C2 domains through the TON blockchain API, then opens an encrypted WebSocket channel, per\u00a0<a href=\"https:\/\/socprime.com\/active-threats\/technical-analysis-of-suspicious-emails-targeting-the-hotel-industry\/\">SOC Prime<\/a>. Fetching domains on the fly makes static blocklists less useful.<\/p>\n<p>After the compromise, the implant beaconed to fixed IPs over non-standard ports: 8443, 8445, 8453, 5555, and 56001 to 56003. Some hosts also showed headless browser automation (&#8211;headless &#8211;no-sandbox), an\u00a0ip-api.com\u00a0geolocation check, and a forced shutdown via\u00a0cmd \/c shutdown -s -t 0. <a href=\"https:\/\/www.microsoft.com\/en-us\/security\/blog\/2026\/06\/25\/photo-zip-campaign-targeting-hospitality-industry-delivers-node-js-implant-persistent-access\/\" target=\"_blank\">Microsoft has not reported<\/a> confirmed data theft, ransomware, or named victims.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/vpn-threat-report-m\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Cybersecurity\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhFlTC7RrRZGiFAgASS0noWSL0qsQGFVp8-Hvuw9yp3X3VKRuTcb5SsPX09wJzrdIM6pu1_5lS4EeZp7Sx4iYBpNJkrGnpr08yyaS1HQ5_5TxaCsP6O0OtHNuOkesn6CbNjao1GPulCJk-uljYMSfMZfBYNrngpe669t7jlRn1FqiEnXhsFD1WVkpaYIVgh\/s728-e100\/ai-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>Full remediation has to hit both persistence paths: the RunOnce entry pointing into ProgramData and the Node.js Run key, plus the runtime and .js files under AppData\\Local\\Nodejs. Pulling one leaves the other alive. Reception, reservations, and front office systems are the first places to look.<\/p>\n<p>The campaign is not brand new. SOC Prime and\u00a0<a href=\"https:\/\/blog.itochuci.co.jp\/entry\/2026\/06\/11\/110000\">ITOCHU<\/a>\u00a0documented the same hotel phishing and the LNK-to-PowerShell-to-Node.js chain about two weeks earlier, and Microsoft says its findings line up with that reporting.<\/p>\n<p>Booking-themed phishing aimed at hotel staff has been a recurring pattern, including\u00a0ClickFix campaigns that dropped PureRAT\u00a0to steal Booking.com logins.<\/p>\n<p>What none of the reports can answer yet is what these operators want. The access is durable, the cleanup is easy to get wrong, and the final payload has not been pinned down. That is enough to treat this as more than another booking-themed phish.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\ue804Swati Khandelwal\ue802Jun 26, 2026Phishing \/ Malware An active phishing campaign has been targeting hotel and other hospitality organizations across Europe and Asia since April 2026, using photo-themed ZIP files to&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1456,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[6,2202,2203,147,1554,390,2201,431,148,636],"class_list":["post-1455","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-campaign","tag-hotels","tag-implant","tag-microsoft","tag-node-js","tag-phishing","tag-photo","tag-targeting","tag-warns","tag-zip"],"_links":{"self":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts\/1455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1455"}],"version-history":[{"count":0,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts\/1455\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/media\/1456"}],"wp:attachment":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}