Введение
В апреле 2026 года мы выявили новые детали об активности хакерской группы HeartlessSoul: нам удалось обнаружить актуальные адреса C2-серверов для взаимодействия с основной вредоносной нагрузкой — RAT-троянцем на JavaScript, детально изучить его ранее не описанные функции, а также получить загружаемые им дополнительные модули. Мы непрерывно наблюдаем за деятельностью HeartlessSoul с февраля 2026 года. Это хакерская группировка, активная как минимум с сентября 2025 года. Среди ее целей — российские государственные структуры и коммерческие компании в сфере промышленности и авиационных систем, а также отдельные пользователи. Основным вектором заражения стали фишинговые письма, содержащие архивы с LNK-, XLL- или MSI-файлами. Кроме того, злоумышленники используют вредоносные рекламные кампании (malvertising), которые имитируют сайты, предлагающие программное обеспечение для авиационных систем, откуда жертвы скачивали зараженные установщики. Группа также распространяет вредоносный код при помощи легитимной платформы SourceForge.
Начальное заражение включает выполнение PowerShell‑команд или скриптов, задача которых — скачать с C2‑серверов загрузчик JavaScript. Он, в свою очередь, загружает и выполняет в памяти основной JS‑RAT и его модули, среди которых мы обнаружили инструменты для сбора и эксфильтрации данных, кейлоггеры, средства захвата экрана, обхода UAC и прочие полезные нагрузки.
В ходе анализа мы также выявили пересечения в инфраструктуре атакующих с APT-группой GOFFEE.
Технические детали
Первоначальный вектор заражения
Мы наблюдаем два основных способа заражения: фишинговые письма и вредоносные рекламные кампании.
Фишинг
Атакующие отправляют электронное письмо с вредоносным вложением (архив, содержащий XLL-, MSI- или LNK-файл). Пользователь открывает содержимое архива, в результате чего инициируется загрузка и выполнение JS-скрипта.
Некоторые из обнаруженных LNK-файлов эксплуатировали уязвимость ZDI-CAN-25373. Она позволяет скрыть вредоносные команды за легитимным путем ярлыка, если добавить после него пробелы или переносы строк. Проводник отображает только первую часть пути, поэтому пользователь не видит вредоносную команду полностью.
Все обнаруженные LNK-файлы содержали в себе обфусцированную PowerShell-команду:
Эта команда загружает с C2 и выполняет в памяти следующий PowerShell-код:
Этот скрипт устанавливает Node.js в скомпрометированную систему, а также скачивает с C2 JavaScript-загрузчик index.js и выполняет его.
Вредоносные рекламные кампании
Второй способ заражения — это размещение вредоносного ПО на поддельных онлайн-ресурсах. Для целевых жертв злоумышленники создавали домены, имитирующие ресурсы авиационной тематики, и использовали их для распространения зловредов под видом установщиков легитимного ПО. После загрузки они автоматически инициировали процесс заражения.
Вредоносный установщик BattleFlight-Installer.exe (MD5: 92bec935129ba62cef868a684604e323) был размещен на поддельном ресурсе:
|
1 |
hxxps://battleflight[.]pro/ |
При запуске он создавал на диске два файла: helper.vbs и run-script.ps1, после чего выполнял первый. VBS-скрипт, в свою очередь, запускал PowerShell-скрипт, главная задача которого — загрузка файла index.js.
Также мы обнаружили поддельный установщик, размещенный злоумышленниками на популярной платформе SourceForge. Он мимикрировал под GearUP — сервис по улучшению соединения в онлайн-играх.
Желающие скачать GearUP пользователи находили поддельный проект на SourceForge и загружали вредоносный архив (MD5: b0a16ffa175f8273d71e2abd5d180593) со следующего адреса:
|
1 |
hxxps://deac-fra[.]dl.sourceforge[.]net/project/gearup/GearUP-2.54.1-win.zip |
Внутри архива находится MSI-установщик GearUP-2.54.1-win.msi (MD5: 5573e0837078b432016637298d1ce926). Он выполняет скрипт install.ps1, содержащийся внутри пакета:
Как и в случае с фишинговыми письмами, этот скрипт устанавливал Node.js на устройство жертвы, а также загружал и запускал JS-загрузчик index.js (MD5: ba1fadbe3b8bc2868700980124e57e92).
JavaScript-загрузчик
Обфусцированный скрипт index.js, который устанавливается в системе жертвы в результате первоначального заражения, загружает и выполняет основную вредоносную нагрузку (RAT).
В index.js реализовано получение альтернативного адреса C2 с использованием Solana Name Service. Если в системе задана переменная среды SNS_DOMAIN, скрипт пытается получить адрес C2 из записей SNS. В случае неудачи скрипт использует заданный в коде домен C2.
Для закрепления в системе загрузчик добавляет себя в папку автозапуска. Для этого он создает новый файл index.vbs в текущей директории ($installPath). Этот файл нужен для запуска index.js, его содержимое представлено ниже:
Затем JS-загрузчик выполняет закодированную PowerShell-команду, которая создает ярлык %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\CommonApp.lnk, предназначенный для запуска index.vbs.
Кроме того, загрузчик создает в планировщике запланированную задачу с именем ZeroDriveBackupTaskSystem141.1.7272.0, которая запускает index.vbs.
Чтобы получить основной вредоносный модуль — RAT, JS-загрузчик выполняет GET-запрос к С2-домену со следующими параметрами:
|
1 2 3 4 5 |
'query': { 'cid': '[campaign_id]', 'mod': 'main', 'huidMd5': '[victim_huidMd5]', } |
Значение параметра victim_huidMd5 представляет собой MD5-хэш, который вычисляется по следующему алгоритму:
- получение серийного номера диска C:\:
1powershell.exe -NoProfile -WindowStyle Hidden -Command (Get-WmiObject -Class Win32_LogicalDisk -Filter "DeviceID='C:'").VolumeSerialNumber - получение имени пользователя:
process.env.USERNAME - получение имени хоста:
os.hostname() - объединение значений в одну строку
[DiskHuid][username][hostname] - вычисление MD5-хэша от полученной строки:
1crypto.createHash('md5').update(string).digest("hex")
JavaScript RAT
Финальная вредоносная нагрузка также представляет собой обфусцированный скрипт JavaScript, который может загружать с С2-сервера дополнительные модули.
Большинство функций троянца реализованы с помощью PowerShell. Ниже перечислены функции зловреда, в том числе ранее не описанные:
screenshot— сделать скриншот. Реализуется с помощью выполнения закодированного PowerShell-кода
clip— получить текущий буфер обмена. Реализуется с помощью выполнения PowerShell-кода, загруженного с URL-адреса hxxps://theoryviraleliminate[.]com/s/c
keylogger— запустить кейлоггер. Реализуется с помощью выполнения PowerShell-кода, загруженного с URL-адреса hxxps://theoryviraleliminate[.]com/s/kget-meta— собрать следующую информацию о жертве в формате JSON и отправить на прописанный в коде адрес С2:- имя пользователя и устройства,
- версия и номер сборки ОС,
- параметры процессора и памяти,
- имя домена,
- права и группы текущего пользователя, наличие прав администратора, настройки UAC
get-location— определить местоположение устройства. Реализуется с помощью выполнения закодированного PowerShell-кода
Powershell— выполнить указанную оператором PowerShell-командуPowershell-preconfigured— выполнить указанную предустановленную команду:
| Предустановленная команда | Описание команды | URL для загрузки PowerShell-кода |
InitializationCommand |
Создает VBS-скрипты в директории $env:APPDATA\PixesSystems:
Создает запланированную задачу PixesSystemsUpdateTask14.1.7272.0 на запуск этих скриптов |
hxxps://theoryviraleliminate[.]com/s/af4d98a99681 |
FileUploadingCommand |
Собирает данные с локального хоста | hxxps://theoryviraleliminate[.]com/s/cf6180e3501d |
TelegramCommand |
Собирает данные пользователя из мессенджера Telegram | hxxps://theoryviraleliminate[.]com/s/r8q1mz4k7n2x |
BrowserCommand |
Собирает данные из браузеров, включая cookie-файлы и мастер-ключ | hxxps://theoryviraleliminate[.]com/s/b3e8c6w0p5d2 |
Run-ssh-module— получить SSH-модуль путем отправки следующего GET-запроса на С2-сервер и выполнить его:12345'query': {'cid': '[campaign_id]','mod': 'ssh','returnType': 'zip'}Restart-with-uac-bypass— выполнить PowerShell-код, загруженный с URL-адреса hxxps://theoryviraleliminate[.]com/s/u, и перезапустить основной модуль (RAT). Реализуется через вызов ошибки (exit code 66)Restart— перезапустить основной модуль (RAT)Force-delete— удалить все вредоносные компоненты и запланированные задачи. Реализуется с помощью выполнения PowerShell-кода, загруженного с URL-адреса hxxps://theoryviraleliminate[.]com/s/d
Shutdown— остановить работу троянцаRun-binary— загрузить с указанного оператором URL-адреса файл и запустить его заданным способом в зависимости от типаList-files— перечислить файлы в указанной директории (по умолчанию, C:\)Download-file— загрузить файл по указанному пути на С2 атакующих в формате base64List-drives— получить информацию о дисках в системе:
1Get-WmiObject -Class Win32_LogicalDisk -Filter "DeviceID=\'' + [VolumeDisk]+ ':\'" | Select-Object Size,FreeSpace,VolumeName,DriveType | ConvertTo-JsonWrite-file— загрузить в систему файл с указанного оператором URL-адресаdump-outlook— выполнить дамп данных пользователя из Outlook. Реализуется с помощью выполнения PowerShell-кода, загруженного с URL-адреса hxxps://theoryviraleliminate[.]com/scripts/outlook-com-dumper
Сбор данных
Одна из главных возможностей троянца — сбор и эксфильтрация файлов с системы жертвы. Часть этого процесса реализована в команде FileUploadingCommand, которая загружает с С2 PowerShell-код для сбора файлов.
Скрипт нацелен на файлы со следующими расширениями:
|
1 |
Include=("*.doc","*.docx","*.xls","*.xlsx","*.ppt","*.pptx","*.odt","*.ods","*.odp","*.pdf","*.txt","*.zip","*.rar","*.7z","*.rtf","*.kml","*.kmz","*.gpx","*.shp","*.dbf","*.tif","*.tiff","*.img","*.geojson","*.mxd","*.qgs","*.qgz","*.dem","*.csv","*.set","*.ldk","*.cab","*.conf") |
Помимо традиционных форматов файлов (документы, архивы, изображения) атакующие также выкачивают геоинформационные форматы. Такие GIS‑файлы (географические информационные системы) позволяют получить сведения об инфраструктуре — дорогах, инженерных сетях, рельефе местности, а также о стратегических объектах, и представляют конфиденциальные данные в инженерных, государственных и промышленных организациях.
- .kml, .kmz, .gpx — данные GPS и карт
- .shp, .dbf — шейп-файлы ГИС (используются в картографических системах)
- .geojson — географические данные в формате JSON
- .mxd — документы карт ArcGIS
- .qgs, .qgz — файлы проектов QGIS
- .dem — цифровые модели рельефа
- .tif, .tiff, .img — часто используются для геопространственных растровых изображений
Кроме этого, троянец имеет возможность собирать данные из браузеров (BrowserCommand). Он собирает файлы из следующих директорий в браузерах Google Chrome, Microsoft Edge, Яндекс Браузер и Opera:
- *\Network\cookies
- *\Local State
- *\Local Storage\leveldb
Также зловред использует инструмент ArtifactsCollector.exe для получения мастер-ключа браузера, который сохраняется в файле master_key.txt. Этот инструмент загружается в систему жертвы с C2-адреса hxxps://theoryviraleliminate[.]com/s/4df7e80dfc69. Нам не удалось получить ArtifactsCollector.exe, однако известно, что инструмент написан на .NET и имеет встроенное имя GetCookiesKey.exe.
В дополнение к этому RAT способен собирать учетные данные из мессенджера Telegram (TelegramCommand). Троянец копирует содержимое $env:APPDATA\Telegram Desktop\tdata во временную директорию и архивирует перед эксфильтрацией.
Все собранные файлы отправляются с помощью POST-запроса на hxxps://theoryviraleliminate[.]com/files/ с указанием в заголовке идентификатора жертвы (victim_huidmd5).
Инфраструктура атакующих
Домены, использованные в качестве С2, были в основном зарегистрированы Tucows Domains Inc. Злоумышленники использовали виртуальные частные серверы хостинг-провайдеров различных стран.
Для распространения вредоносных установщиков атакующие регистрировали поддельные домены, мимикрирующие под легитимные веб-ресурсы, например:
|
1 2 3 |
battleflight[.]pro alphafly-drones[.]com/downloads/alphaflyinstallv1-2.msi stardebug[.]app/static/files/StarDebug_1.0.1.msi |
Интересно, что домен battleflight[.]pro разрешается в IP-адрес, на котором также были расположены поддельные домены, связанные с APT-группой GOFFEE. Кроме того, эта группа распространяла импланты под аналогичными приманками в виде авиационного ПО.
|
1 2 3 4 |
104.194.158[.]63 battleflight[.]org re-link[.]space mystarlink[.]org |
Инфраструктура HeartlessSoul:
Заключение
Анализ активности группировки HeartlessSoul показывает целенаправленный интерес злоумышленников к предприятиям российской промышленности с целью получения конфиденциальных данных, в частности геоинформационных. Группа использует традиционные методы проникновения: фишинг, вредоносную рекламу и распространение с помощью популярных легитимных платформ.
В ходе анализа инфраструктуры атакующих мы выявили связь HeartlessSoul с группой GOFFEE. Обе группы активно используют PowerShell-нагрузки для доставки и выполнения вредоносных модулей. GOFFEE также нацелена на государственный сектор, что может говорить о вероятности совместных или координированных кампаний.
Группа HeartlessSoul активна с сентября 2025 года и на момент написания статьи продолжает вредоносные кампании, поэтому крайне важно обеспечить надежную защиту своей корпоративной инфраструктуры.
Детектирование решениями «Лаборатории Касперского»
Защитные решения «Лаборатории Касперского», такие как Kaspersky Endpoint Detection and Response Expert, успешно обнаруживают вредоносную активность в рамках описанных атак.
В частности, эту активность можно детектировать по аномалиям, связанным с запуском LNK-файлов (ярлыков), содержащих вредоносную нагрузку.
В первую очередь стоит обращать внимание на следующие признаки:
- нетипичные пути к исполняемым объектам (например, запуск из временных директорий или пользовательских папок),
- наличие скрытых или обфусцированных аргументов командной строки (особенно с использованием PowerShell, cmd или mshta),
- несоответствие между иконкой или именем ярлыка и его фактическим действием,
- цепочки процессов, где LNK-файл инициирует запуск скриптовых интерпретаторов или загрузчиков.
Решение KEDR Expert детектирует эту активность с помощью правил interpreter_started_by_lnk_from_arch_windows и start_interpretator_from_lnk.
Также действия злоумышленников можно детектировать по запуску командного интерпретатора с нетипичными и потенциально вредоносными параметрами, указывающими на попытку скрыть выполнение. К таким признакам относятся использование флагов скрытого или бесшумного режима, наличие обфусцированных или закодированных аргументов, а также запуск интерпретатора из нестандартных родительских процессов.
Решение KEDR Expert детектирует эту активность с помощью правила noninteractive_and_hidden_parameters_in_powershell_commandline.
Кроме того, описанную активность можно детектировать по факту создания или появления файлов с подозрительными или нетипичными расширениями в каталоге автозагрузки. Особое внимание следует уделять следующим случаям:
- файл создается процессами, которые обычно не работают с автозагрузкой,
- имя файла имитирует легитимные системные компоненты,
- наблюдается несоответствие между расширением, иконкой и фактическим содержимым.
Решение KEDR Expert детектирует эту активность с помощью правила file_creating_with_suspicious_extension_in_startup_folder.
Другим способом выявления вредоносной активности является мониторинг сетевого трафика. Решение Kaspersky Anti Targeted Attack (KATA) с модулем NDR обнаруживает сетевое взаимодействие вредоносных образцов, используемых в рамках описанной кампании. Например, коммуникация рассмотренного JS-загрузчика с C2-сервером детектируется правилом Backdoor.Agent.HTTP.C&C в момент попытки получения RAT-модуля.
Индикаторы компрометации
Дополнительная информация об этой угрозе, включая аналитические данные об индикаторах компрометации, доступна подписчикам сервиса Kaspersky Threat Intelligence Portal.
Хэши файлов
Архив
19b8d33c3648aad7249dba293b1f87b2
XLL
6b24b3f911ac6aff02c30b09abb24cff
LNK
1fb932fa6e6c0828b6cdd361e8619e39
9d96f06c427bd06f2819b1906069c6e8
63b6eea158d56e6a0dca9bcd07a9d5ec
72c1989164ec709e2ee12b7bf0d100fc
696eaf7e4f527f03d65c0f691552e6e8
1b792c81329dbb0fc9e41aa1ba8071bb
69df8d733ee88aa1ef717127e157de51
ec7f27a07104cca1e4a921a0aec784e9
32a2c2480f1c31294a4137f8497ef153
c1104fb0dccde95145983ae349eacaf9
bbf7181d17801d050bb518914029c025
46838f95aa3365e7edb08dc4a8513014
46cf73d47c6ad417ee37dc98838dfc58
4e94855c77aa278d7ed461f54e20e60c
6e23b8e40f893d3a62feb3cbd6a8e9e1
df1f0d7e437d2f8864275b490356d836
a15e1190b7df42a1996f1c9bca8134e7
MSI
6c051791a1eaf7d6580b5c51d745878f
ac7b70ac9efe6cb31220b549f46bf529
9b456e0fb8f8d570753b241baa3826cf
9f44e6d7055451a049529da88a46e343
bbfe06d6406eec314eaac4c7b9869097
81239c7fad689607817506b079b54d6a
5573e0837078b432016637298d1ce926
2f328833865b7c97b0a1188bf1a26792
3a0bbf1ea830d9017646c968e9361c59
92bec935129ba62cef868a684604e323
5c693069c52a2b970df5944387d68fae
f771bacddb1ea53e4e04f73cdb5f799e
7d8818c730ccce0321973f700d767724
242c7e139cebc7e787d8a1524ebc8d26
57b4eeac620401a8405f01697035d43c
5d50bd2b7f3a9feb5438e3d7f0755413
96190499dad000f19aefea19cb88e203
0fe7d08ed8d33492a2ac722b73626a0a
c202769dd3b654cbb8d628bc95c920b5
58276c2ea8aa23735fc20f6497e750b8
Скрипты PowerShell
7ffeb5f730b3c1aef115fa93164d05c7
7b53f6caa9c9249967768bd3d3d6c397
ba415ea182f929ea972315d5ff0dcc89
ba1a3ddf8b68af435f978c708063330c
a13a0359547be6591cd687095c948dfa
d958f1342ec730e73e369a440078bbac
71ac6becbf456211080cd9681ee6841d
d99090c0d681b73fbf471be67967ae17
814b9902bb84df9f60fa1523bfa74894
1acde22e21776bf4469dcc29e0b064d7
b25df20803fcbb82544b7c845e39c6e4
83e6895d43b79db7e34a68fcf69e34e7
2f7cf44886865e9fbd404e17300aa396
8d1825a335efe1b7616d6fbc7e0f8fae
779d8a855bd1fac8c120316e88f891f1
Скрипты VBS
7b4e881f2e8d5af259c3b50350d7378a
21394bac43e00af4a791728674652a9b
f5ac6fff7fce52f23b81f3abd96a6006
016e7b7217c9c42f413cbcd46f874d63
954be7332fbac5c583265a147c935401
3117d0ebc4cad72d72059f10a4003b33
62d1b27b6d18a588506187853a060992
cca82030f346f37b477b9293bc27b2f3
f1b0a7de41a15ed94c88d945831ed046
b6f4900da57dd280a321cfc4f2dd575b
Скрипты JavaScript
216b9951a483a33f66f5d012064f7162
7190852f6f6d3cc82d5e81065c55973d
26261c9a1c315c8e37a486b4ee1eb1b6
d2052109c392ad5de230b85c74b242ca
512437c210c9eb65baf6af44344c63cf
e5596caf30d375b9fc81b936cdf6499d
ba1fadbe3b8bc2868700980124e57e92
3691b28aac98109101a1c588ff700ae5
Пути к файлам
c:\Users\[username]\AppData\Roaming\pixessystems\
c:\Users\[username]\AppData\Local\nodejs\
c:\Users\[username]\AppData\Local\alphaflyv3\
c:\Users\[username]\AppData\Local\star\
c:\Users\[username]\AppData\Local\GearUP-2.54.1-win\
Домены и IP-адреса
Поддельные веб-сайты
battleflight[.]pro
alphafly-drones[.]com/downloads/alphaflyinstallv1-2.msi
stardebug[.]app/static/files/StarDebug_1.0.1.msi
C2
newfolder[.]click
playerdragonbike[.]com
185.208.158[.]188
theoryviraleliminate[.]com
landownerdozenguard[.]com
monkey.kyun[.]li
93.113.25[.]102
66.78.40[.]47
codeinecrazy[.]xyz
cherrymixtureinstrument[.]com























Геоинформационные данные под угрозой. Как HeartlessSoul атакует авиационную промышленность