С апреля 2026 года специалисты Microsoft Threat Intelligence фиксируют активную многоэтапную кампанию, направленную на организации гостиничной индустрии в Европе и Азии. Целью атакующих стали сотрудники, работающие с бронированиями, регистрацией гостей и обслуживанием номеров. Microsoft пока не связывает эту активность с какой-либо известной APT-группировкой.
Описание
Инциденты развиваются по многоступенчатой схеме, в которой злоумышленники сочетают фишинг через легитимные облачные сервисы, PowerShell-загрузчики с обфускацией и внедрение Node.js-импланта (среды выполнения JavaScript на стороне сервера). В ходе кампании используются ZIP-архивы с названиями, содержащими слово photo и случайные цифры. Архивы загружаются через браузер после перехода по фишинговой ссылке. Внутри архива находится файл-ярлык, маскирующийся под изображение (например, IMG-805916584.png.lnk). При запуске такого ярлыка начинается цепочка заражения.
Фишинговые письма доставляются с использованием инфраструктуры Calendly - сервиса для планирования встреч. Атакующие используют подстановку отправителя "Booking Manager (via Calendly)", что должно вызывать доверие у персонала отелей. Тематика писем включает жалобы гостей, сообщения о клопах, запросы на проверку номера и "последние предупреждения" от контролирующих органов. Письма составлены на японском, датском и голландском языках. Техника, названная Microsoft "аутентификационным отмыванием", позволяет обойти проверки SPF, DKIM и DMARC: письмо проходит все проверки, так как отправлено через доверенную инфраструктуру Calendly, хотя содержимое контролируется злоумышленниками.
В письме содержится ссылка на Calendly, которая перенаправляет жертву через несколько промежуточных узлов. Сначала срабатывает сервис безопасности ссылок Calendly, затем используется открытый редирект Google (share[.]google), и в итоге пользователь попадает на фишинговую страницу, размещённую на домене в зоне .cfd (например, photo-26254[.]cfd). Домен защищён Cloudflare Turnstile - капчей, которая одновременно отсеивает автоматизированный анализ и ограничивает доступ по геолокации. После прохождения капчи браузер загружает тот самый ZIP-архив с вредоносным LNK-файлом.
На этапе выполнения ярлык запускает PowerShell с обфусцированным кодом. Как показывает анализ Microsoft, обфускация развивалась от простого XOR-декодирования до арифметических операций с вычитанием и маскировкой через модуль и деление. Всего исследователи зафиксировали семь фаз эволюции PowerShell-кода, но логика остаётся неизменной: декодировать данные, извлечь URL, скачать по Invoke-WebRequest следующий скрипт и выполнить его из папки %TEMP%. Это говорит о том, что атакующие постоянно адаптируются к сигнатурам, но не меняют основную технику.
В волне 2 (с конца мая 2026) между PowerShell и развёртыванием Node.js появился дополнительный этап: PowerShell запускает компиляцию .NET-сборок через csc.exe и cvtres.exe. В результате создаётся DLL-файл размером около 3 Кбайт. По данным телеметрии, этот DLL не загружается через rundll32 или regsvr32 - возможно, этап является подготовительным или условным.
Ключевой компонент кампании - Node.js-имплант. На скомпрометированное устройство загружается node.exe версии v24.13.0-win-x64 из легитимного источника nodejs[.]org. Исполняемый файл помещается в каталог C:\Users\<пользователь>\AppData\Local\Nodejs\. Имплант запускается с аргументом - именем JavaScript-файла и C2-доменом. Например: "node.exe" C:\Users\...\E2HPVoYGA77RECeb.js safedocphoto[.]info. С помощью Node.js злоумышленники устанавливают персистентность через PowerShell-команду, создающую скрытый дочерний процесс с флагами detached и windowsHide. Это позволяет импланту оставаться активным вне зависимости от действий пользователя.
Дополнительно атакующие добавляют исключения в Microsoft Defender через Add-MpPreference -ExclusionProcess для временных исполняемых файлов в AppData\Local\Temp. Затем запускаются случайно именованные EXE-файлы из Temp, за которыми следуют установщики с именами is-*.tmp, работающие в тихом режиме (/VERYSILENT). Наблюдалось копирование полезной нагрузки в C:\ProgramData\<случайная папка>\<payload>.exe. Для сохранения доступа используются два реестровых ключа: HKCU\RunOnce указывает на исполняемый файл в ProgramData, а HKCU\Run - на Node.js-компонент. Причём RunOnce обновляется после каждого выполнения, создавая цикл, усложняющий очистку.
Системы управления и контроля (C2) работают через нестандартные порты: 8443, 8445, 8453, 5555, 56001, 56002, 56003. Зафиксированы IP-адреса: 178.16.54[.]27, 95.217.97[.]121 и другие. Между волнами инфраструктура расширилась за счёт доменов в зонах .cfd, .click, .bond. При этом сохранилась часть общих индикаторов: один и тот же хэш PE-нагрузки, одинаковый Node.js-бинарник, общий домен sec-safe-dc.info и совпадающие C2-порты.
После компрометации наблюдалась активность C2-биконов, автоматизированный запуск браузера с флагами --headless --no-sandbox (безголовый режим без песочницы), а также обращение к ip-api.com для определения геолокации устройства. На нескольких хостах выполнялась принудительная перезагрузка командой shutdown -s -t 0. Microsoft предполагает, что это может быть способом скрыть следы после завершения автоматизированных задач.
Особую опасность представляет устойчивость заражения. В одном из подтверждённых случаев Defender заблокировал основную PE-нагрузку с детектом Wacatac, но Node.js-имплант, закреплённый через HKCU\Run, остался активным. Через два дня имплант возобновил C2-связь и доставил новые EXE-файлы. Это подтверждает, что для полного устранения угрозы необходимо удалить оба реестровых ключа и очистить каталог Nodejs из AppData\Local.
Организациям гостиничной сферы рекомендуется обращать особое внимание на ZIP-архивы с photo-префиксом и LNK-файлы с расширением .png.lnk. Следует мониторить необычные запуски PowerShell с BigInt-арифметикой, появление csc.exe из временных папок, выполнение node.exe из пользовательских каталогов, добавление исключений Defender для Temp и двойные записи в Run/RunOnce. Сетевые соединения на перечисленные нестандартные порты, особенно от node.exe, требуют немедленной проверки. Домены в зоне .cfd, соответствующие шаблону photo-<цифры>.cfd, стоит блокировать на уровне DNS. Полная очистка подразумевает удаление как RunOnce, так и Run-ключа Node.js, иначе имплант восстановится.
Индикаторы компрометации
IPv4
- 172.67.161.215
- 178.16.54.27
- 178.16.55.179
- 193.202.84.32
- 95.217.97.121
Domain
- aluminiostramuntana.com
- bookreservphoto.pro
- dancamp.info
- dashgamein.info
- deeprace.info
- derbyoni.info
- doc-imagehub.info
- docshub-01.info
- docshub-secure.com
- docstore-safe.info
- expedla-getphoto.cloud
- fairyspells.info
- finallyrain.info
- hakeiwjs727wj.com
- haobbao.com
- heliosup.info
- higoksbupwou.com
- imagestore-hub.info
- imagevault-safe.info
- image-vlt.info
- joincroud.info
- kellystreets.info
- kelopins.info
- kentjerk.info
- keypmenu.info
- kinghoruswe.info
- kiptownim.info
- lestresot.info
- lookinlip.info
- ministrew.info
- montagelips.info
- photo-132454.cfd
- photo-21473.xyz
- photo-26254.cfd
- photo-26653.cfd
- photo-26654.cfd
- photo-26656.cfd
- photo-27857.cfd
- photo-7216102.click
- photo-7216302.sbs
- photo-8632454.cfd
- photobookadm.pro
- photobook-reserv.pro
- photo-box.info
- photo-dekor.xyz
- photodoc-secure.info
- photo-hub-io.info
- photosafe-hub.info
- prejointl.info
- racestrech.info
- recallnine.info
- recepyman.info
- recstrace.info
- reservebookphot.pro
- safedocphoto.info
- safedoc-storage.info
- safedoc-vault.info
- safephoto-vault.info
- safe-picvault.info
- safevault-hub.info
- sec-safe-dc.info
- secure-imagehub.info
- snapkeep.info
- tripadvisor-photo-view.com
- vertualstreak.info
- visaimages.info
- visaimage-storage.icu
- visaphoto-secure.info
- visaphoto-vault.info
- visa-safedocs.info
- visa-vault.info
- widjssij728dj.com
- zloapobikahy23.bond
SHA256
- 04ec44f2618460f5c77c5e56014a512cc03a123c9c5b6b6b1273e2a1681ac2e1
- 06a2888c1f07119873ccb051221bd8717281494b33585f4242556e6e5e227969
- 1c693bcdaf1da636eb21c274b21cc2f6c52c62ddd514700783eee83fe13acb0a
- 1f8daffec5945a13a1e9231f4a76655d4c7ef4560d0c64ca3abfe48f38297cbd
- 2e5fd01b7949a45937b853eabcf4b03195614cf84338dcaaa97240d1c5301ddc
- 3f66634f103b80412d1d670b91befab2a74425d2ea76d904c4a7ffae2ae94b44
- 49cc0e0c3ec060fb354cacee244d4f297aaefb6db66e67a21262d6c4d2eae1bd
- 63565f15a99769bbcd527a4d53e5cc259d80e1254463ef9c878c2074685558ae
- 6580de3b74fd635a1d7a887b8f6e5b0c9ac9e90d6e20466ad41489203119cca9
- 83e970feb3f10692c164f6889f7a026f135c2433e5bf8e662a6e63a3b81267b7
- 89934cb1494cf0327f0ab82fe644c74caf687814379cad116bd7adaca74c1028
- 97448688b292bfec6d83b153588076fe59b111c35ac4e42a916238df16a71e2f
- 98825c0c7764f45c891275b2f038ea559e84b340df30b41c2cc77b8d4215c6c8
- 9f10e3b6e5745784f26d18c38ce01fba054b19749c17260978ac11472564aee2
- b7f46b192cd83a1d2487cb048cca645f6e8855b9673d500d50bbdb04eebc6bea
- bd6805782df15e53581096b99bd6bbb81f4d4a5e2d2b30954df63175a4075be9
- c5baa0c16b0074a1e94b48aa0177e9bfc23746aca8a5b42848a6685da85658b5
- d14ba95cdce1ef7dc9ad3ac74949ca5db38b27378ee30f30a23cf26f9e875a11
- da4b72764ae929050353f3da759c839e2a061a8b9a8dd3c3b2e909d4a8a3291c
- f629311734b7c6e6579f8e1d0e1e3f3bf72c9ac6c301b631ba4df7f393c41b14