Исследователи LevelBlue Managed Threat Response зафиксировали новую кампанию, направленную против организаций гостиничной отрасли. Атака начинается со спам-письма, содержащего ссылку на Google Share, которая перенаправляет жертву на вредоносный ZIP-архив. Внутри архива находится LNK-файл (ярлык Windows), маскирующийся под изображение за счёт иконки из shell32.dll. При запуске этот ярлык выполняет скрытую команду PowerShell, которая запускает цепочку заражения. Конечная цель - установка NodeJS-бэкдора, использующего технику EtherHiding для получения адреса управляющего сервера (C2) через блокчейн TON.
Описание
Первоначальная доставка вредоносного кода полагается на социальную инженерию. Пользователю предлагается скачать архив с фотографией или бронированием, что типично для тематических рассылок в сфере гостеприимства. Ссылка размещена на легитимном сервисе Google Share, что позволяет обойти стандартные фильтры электронной почты. После перехода по ссылке жертва попадает на подконтрольный злоумышленникам сайт, откуда загружается ZIP-файл.
На первом этапе LNK-файл запускает PowerShell-команду, зашифрованную с помощью двух больших целочисленных значений. Сценарий вычитает одно число из другого, а затем побитовыми операциями восстанавливает домен C2. В некоторых вариантах вредоносной программы побитовые операции заменены на арифметические эквиваленты - деление по модулю и целочисленное деление. Этот приём усложняет статический анализ и обнаружение сигнатурами.
После расшифровки PowerShell загружает легитимный исполняемый файл Node.js с официального сайта nodejs.org, если он ещё не установлен в системе. Архив извлекается в каталог LocalAppData пользователя. Затем с помощью Base64 и AES-128-CBC расшифровывается следующая полезная нагрузка - сильно обфусцированный JavaScript-код. Этот код передаётся на выполнение в свежеустановленный Node.js вместе с расшифрованным адресом C2.
Третья стадия представляет собой NodeJS-бэкдор. Его код дополнительно защищён: внутри функции vmn_c51b70 находится массив из 32 Base64-блобов, которые после декодирования образуют набор строк, описывающих логику работы. Сама функция выступает в роли интерпретатора пользовательской виртуальной машины (VM) - вместо прямого исполнения JavaScript бэкдор интерпретирует байт-код в рантайме. Это существенно затрудняет статический анализ и помогает обходить эвристические правила антивирусов.
Предоставленный анализ сценария показал несколько ключевых функций бэкдора. Функция k() проверяет, не запущен ли уже экземпляр node.exe с тем же путём, чтобы избежать дублирования процессов. Функция D() устанавливает персистентность: через PowerShell создаётся ключ в реестре HKCU\Software\Microsoft\Windows\CurrentVersion\Run, который при каждом входе пользователя запускает Node.js с вредоносным скриптом. Процесс стартует в откреплённом режиме с подавлением вывода и скрытым окном. Функция X() проверяет доступность интернета, пытаясь соединиться с https://google.com.
Наиболее интересный компонент - функция B(), отвечающая за получение адреса C2 через блокчейн TON. Она использует переменную V, формирующую базовый URL tonapi.io. Из байт-кода извлекается идентификатор смарт-контракта TON, после чего через TONAPI отправляется запрос: https://tonapi.io/v2/blockchain/accounts/{ACCOUNT_ID}/methods/get_domain. Ответ содержит адрес C2, который злоумышленники могут изменять, обновляя данные в смарт-контракте, без необходимости модифицировать сам бэкдор. Таким образом, техника EtherHiding скрывает настоящий адрес управления и позволяет оперативно менять его после блокировки.
Анализ истории транзакций этого смарт-контракта выявил несколько ранее использованных C2-доменов: tonajukbhuakpo2[.]shop, zloapobikahy23[.]bond, hsaertyuoang34[.]sbs, amanohuguta[.]cfd. Последнее обновление зафиксировано 2 июня.
После получения C2 бэкдор устанавливает WebSocket-соединение по протоколу wss: //<C2>/w?user_id=<GUID>. Затем происходит обмен ключами на основе эллиптической кривой secp256k1 (ECDH) - генерируется пара ключей, отправляется публичный ключ на сервер, в ответ приходит публичный ключ сервера и соль. Из общего секрета с помощью HKDF выводится ключ и вектор инициализации для AES-256-CBC.
Функциональность бэкдора включает загрузку и выполнение дополнительных полезных нагрузок. Он может скачать файл через fetch(), проверить его на принадлежность к PE-формату (ищет сигнатуру 50 45 00 00 по смещению 0x3C), сохранить в %TEMP% с случайным именем, добавить исключение для него в Защитник Windows (Add-MpPreference -ExclusionProcess) и запустить через execFile. Также возможны выполнение произвольных PowerShell-команд или JavaScript-кода.
Кампания остаётся активной. Поиск в VirusTotal по маске "photo-*.png.lnk" или "IMG-*.png.lnk" показывает ежедневное появление новых образцов. Более 400 LNK-файлов связаны с одним и тем же значением MachineID (win-5r0dsv23ed0), первые из которых загружены ещё в марте 2026 года. Кроме того, ранее злоумышленники распространяли ссылки на вредоносные архивы через комментарии на экономических форумах.
Для защиты от подобных угроз организациям гостиничного сектора рекомендуется усилить фильтрацию входящих писем, блокировать выполнение LNK-файлов из загруженных архивов, контролировать запуск PowerShell и Node.js из пользовательских каталогов, а также использовать поведенческий мониторинг для выявления попыток обращения к блокчейн-сетям из подозрительных процессов. Использование блокчейна для управления бэкдорами становится всё более популярным приёмом среди злоумышленников, поскольку обеспечивает высокую устойчивость к блокировкам и затрудняет анализ.
Индикаторы компрометации
Domain
- aboutbookphoto.pro
- bigfrogs.info
- bokconfphoto.info
- book-imagegallery.info
- book-photopage.info
- bubblekip.info
- checkphoto-bookin.com
- confbookphoto.info
- dancamp.info
- deracefight.info
- dsjkaksfks324das.com
- fancystraits.info
- fellshow.info
- flamecube.info
- haddjskak827sja.com
- hotelphotoadm.info
- hubsecure.info
- jsdakksd283ksl.com
- keysrace.info
- lastnight.info
- lightsnow.info
- marmoteilefinance.com
- photo-132454.cfd
- photo-26653.cfd
- photo-26654.cfd
- photo-26656.cfd
- photo-27657.cfd
- photo-62454.cfd
- photobookadm.pro
- photohotels-visit.cloud
- photo-pagebook.info
- replyjoke.info
- safegallery.info
- strayweirds.info
- tracerecord.info
- vault-docs-x.info
SHA1
- 0225c25e9e7462a80ec157c76e2479487c8508bd
- 0451e7e75af3c2917a38753db2642619b8f4a0fd
- 0993e576ea97208db8cd9ee651f6eb6382a6565a
- 0a0378a8e1b2bcf2a6d71ee8d39572897a48ab46
- 0b6e6d9c0091b1f8580bee455eb2199a4fe8a7e0
- 0cae9af236ae7ebbb072b058bb65ea6ed7592aae
- 0d9796ccb481b09bd92bbe1d7719d0939f645514
- 0ddc606b48c4dd85cad09ffcb2fe560f68e63868
- 11838c2e3134991402e40a1744aa4c1f93447407
- 11b2f77a7abf1593648bbcc5bdeb27c4f890aef3
- 17abeb78bb862d702d4e63d746c58d2d805d71ee
- 18949de1c7550d93e7d58ba545c2ab9703e47d51
- 18a720ebe0bc1ea1aeea9b495b419cc929c427aa
- 194fb8cbab8b030944e9a1ec44f2e4383f394589
- 206810a3effe5e477ffc441731b58f7f6cd2c04b
- 27a7c5f0dcaf9ed18aa41340aa95d4d5778d7708
- 27e1eeb34bd8bd4b54760f15c88dd33f58507e09
- 2aab7ce372244d0ad882c45cc76579f570d5993b
- 2cab6043e2cf54bb1b46357798fba2d8d0d62e77
- 2f9d50d3b166a667fe6b7a05da7039a8029c79b3
- 307c3a41a56e67ff6d3026c3cd6e35b751f1eafb
- 33f6d432464c20bbdf019f62510435e9a45e29bc
- 37b61fb43cf3aee0c0c6b3347abd018fc5eb0a5c
- 391485c342138e8d137d88f927423eb5d7c00ad6
- 399712edc298a35e2cb643353b7fcfe4327e173b
- 3c908051cdef94e60b6f444e8719d291a57a2941
- 3d84d37393e244a76c24dfd9eebd0d20914166e6
- 42b40f25d025f23e42aa44f98466ce08bf022f26
- 435b00e224f2e001018ed52aff2bd35706614297
- 4c98348b9bc57485d0624a5fc7838372566aacd7
- 4d901d5bd6c467f4bedfb0b968eb4c42902cf588
- 4e3baea41d73967aac96b3cb6525b9edb0ccacd8
- 4edec9cff71c5467808c0a919ba05f13489d21ab
- 54740686b96e9702cc376d6b04f89105d7700408
- 582cd134c017435b027a2fea86f4e584d69a214f
- 5a14c0a131c4e5a729a28556b119876651a4047f
- 5a944255ee92ba70654d6ed73a52b5de22942340
- 5c21735b6a823a85730b03a71fe339082c417732
- 5c80d4af9e9251f2303b88c51435dba09b24177a
- 5daab9743a4c80415d7261d2c2b3720140890e2b
- 5edc16ff32ff12ee2bf0abbc85a62b93eddab3b3
- 6145aabf54337e633670aa2e82835fae97612a5d
- 625cdb454461e7e82ba9b73028ddbdcbf0b5a7ab
- 65b2a34be17b3d31221d55f9829f7d876634eaed
- 69b570e6aa1d50e4bbd89c653eb1b97dab77f174
- 6a0bf6e890b24870597befcb447693a598fbd897
- 6f171cc3fe263ff8257c4a8cc38b1cf71fd46343
- 717e816d99377e285f894457d7a662d85f39053f
- 7ae18cb6532f2ebb0b6231509541118b52583dc0
- 7ba0659c3c33ff97a3c8e10a304b26a58f450b4e
- 7e05edb4a326c6b80ca937d602d43590bb73d68c
- 828f62be77939b3c738b6fcf43c2d308b59481f6
- 85cf831025122ab3f411cd21b825eef4d6322b3d
- 8a3889be09bab729a916b97ebbfda19afef828b7
- 8e0e6e3ef3adf32db8ab3826377e0da7e8adb815
- 8f0d6abefd133bd130c6fb897c764f199a08444c
- 932f4b274e6f08c55b64a4e7a0cbbe9dff829649
- 954a7dc750ac502c51dfd7db2068a11961b2f342
- 9b7fcaed4634dd918a26352f12a26f04c52be3a1
- 9dd1ff00c45da21a2eb57f612f7da5dfe57738f0
- a47ce3551596100173879d406d75b5f960d25c02
- a5077656e98906385bea101548b462322cd947fa
- a544e8b67f0989f89b556c61fedd67a84c7b1ae6
- a56e3014116435cb8b928e33b16ac43f18beb733
- aa70a6966cf3c430b768977cabdeb8aa2c2b39a3
- aebce6479d7d5d0d7b59a3da020969ee465f8d36
- b0f937a64f64d30fc341b23971ce7682ca725d9e
- b196b2552a18b8112b72ed7aab4e8ddb1253a81e
- b255bda9419d919501ae89fadab3ba54e5c0e86b
- b33043882bf31fa05a27243240361478e88963c0
- b3cefdff102b9984748ce3a94d67a76567a92e1b
- b6457f1e62be6d8121281a74b0eb75213a849be4
- b6aab844ee021a684ebc236c1815e0d14ef15104
- b75d84cc997bfcc8e0f03b091e067a74030b29ce
- b82652f33d382a96d9ab5f60dc7a6897dd0f5dfd
- b8d6bb8bf3291fdb3424abbf237f191c9db67a7c
- b9205e4cc92be77dfd4c8767f86384a36520e331
- bd80fa9a88e0b201dbd0e1814d5884c6ac011e5b
- be6494df5052cb6beffaef98a9cc063db0b9a1d4
- c45a08b8bfa12241865dc82b417a29dbc2510a54
- c881d5fc0c8debcf17e869f863b50a8016674a70
- c8f0d1447c6d3304b0f4d7e24bdd41b073f5e852
- cb1820283981c6f32db15d4220b8b8d39da5fc9a
- d0fd605b18d8af766fb7beb94f3ef7397db4aa8a
- d6ffd15c58edac8cf0f5f829b6e248e2d933aa80
- d807a3f8dff4f9b8dc828b3e0ef56f85534a91d8
- db68cbf2359df9835a9f85b29ec01e750e814e8b
- ded8575d8badffea8beaa2bbfcb364901b89065d
- df5197155515d5f706ecb9b2b326e11d9ed215ed
- e086583b8bd11a5a146e522f5ac8d8ac68111f44
- e792d6b848af9ed81d98a15b2d2fc5c80eba321a
- e924650b4fb36679243e7e511fe8e1b00ab2fe6b
- e9488c259d1e047a0ad11d4abf1bfc442f49b992
- ee17aabe0180f62278f5bcf2ed887352ced66446
- efd4283b06ae8a9555475f91f59a733b7b73ddfa
- f277f060ffcd3fbf34bb98884c8a9fa3f0f57845
- f5161d3f01fdd1acf77ff0808b3f732d9dd3a254
- fb9e1728a0017321fd74f6f9b860b1d5af05d392
- fe18e053366ab393430d20d7bec523071f97fcc1