Отчеты о crimeware

Citrus Ransomware: VLESS для трафика, Sn00py для шифрования и LLM в помощь

В последние годы среди киберугроз все чаще встречается гибридный подход, объединяющий проверенные временем техники продвижения в инфраструктуре, современные методы обхода сетевых фильтров и автоматизацию на базе больших языковых моделей. Такой подход практикует и ранее не описанная группа Citrus Ransomware, чей набор инструментов включает VLESS‑туннели для маскировки трафика под обычный HTTPS, а также троянец-шифровальщик семейства Sn00py. Кроме того, злоумышленники интегрируют LLM (Large Language Models, большие языковые модели) в процесс компрометации инфраструктуры.

В этой статье мы рассмотрим тактики и техники, которые группа использовала в недавних инцидентах.

Initial Access: атаки через подрядчиков

Первоначальный доступ к инфраструктурам жертв злоумышленники получают через скомпрометированные подрядные организации. Они используют украденные данные сотрудников таких организаций для подключения к корпоративным сетям VPN или напрямую к доступным из внешней сети терминальным серверам (по протоколу RDP).

Execution: команды, LLM и Impacket

Атакующие выполняют команды в скомпрометированных системах с использованием стандартного командного интерпретатора Windows, а также PowerShell. В процессе развития атаки они создают и запускают PowerShell-сценарии, пакетные файлы и команды, сгенерированные с помощью LLM. Примером последних могут послужить команды для отключения учетной записи одного из администраторов, приведенные ниже.

Обе команды сопровождаются комментариями — злоумышленники так поступают очень редко, поэтому комментарии с высокой долей вероятности указывают на использование языковых моделей. При этом стоит отметить, что модели привлекались не только для формирования команд. Атакующие генерировали полноценные сценарии, которые также содержали комментарии, характерные для LLM.

Выше приведен фрагмент одного из сценариев, который группа Citrus применяла для перечисления активных пользовательских сессий в доменных системах.

Помимо LLM, атакующие используют классический инструмент atexec из состава Impacket, создавая с его помощью отложенные задачи выполнения команд на хостах:

Имя задачи Запускаемый исполняемый файл
sIErKswD C:\Windows\System32\..\System32\cmd.exe
PpMBCCSR C:\Windows\system32\cmd.exe
QwZtLmNp C:\Windows\..\Windows\System32\cmd.exe

Мы не видели конкретные команды, за которые отвечали эти задачи, однако после их выполнения обновлялись групповые политики, поэтому, с высокой долей вероятности, таким образом выполнялась команда gpupdate /force.

В случае компрометации серверов «1С:Предприятие» группа использует внешние обработки (1C-Shell) для выполнения команд.

Persistence: задачи планировщика

Citrus автоматизирует запуск вредоносных инструментов в системе с помощью запланированных задач. Злоумышленники создают их вручную через PowerShell:

В некоторых случаях они запускают свои инструменты без закрепления в тех системах, которые не предполагают регулярную перезагрузку (например, на терминальных серверах).

Privilege Escalation: уязвимости и недостатки конфигураций

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

Для этого они предпринимали попытки эксплуатации уязвимости обхода аутентификации CVE-2026-54121 (Certighost), в результате чего в инфраструктуре Active Directory создавались машинные учетные записи с характерными именами, например:

  • GHOSTAUFTAFGS
  • GHOSTCZYQVAZS
  • GHOSTIVPRLDZA
  • GHOST{набор из 8 случайных букв}

Такие имена генерируются в сценариях с использованием эксплойта, опубликованного на GitHub.

Эксплойт работает следующим образом. К системе с ролью AD CS выполняется запрос сертификата на основе шаблона Machine от имени созданной учетной записи. В полях Attributes, Subject и SubjectAlternativeName указываются параметры вида:

Атрибут cdc отвечает за IP-адрес или имя системы, к которому центр сертификации должен обратиться для подтверждения данных. Злоумышленники указывают адрес контролируемой системы (в данном случае 91.210.109[.]118) и отправляют с нее поддельные данные. При успешной эксплуатации уязвимости центр сертификации выпускает сертификат с заданными параметрами по заданному шаблону.

Имя контроллера домена в поле SubjectAlternativeName при успешном выпуске сертификата позволяет использовать его для прохождения аутентификации от имени учетной записи контроллера домена.

В одном случае злоумышленники также загрузили для закрепления в системе исполняемый файл, от имени которого запускались PowerShell-сценарии с нестандартным значением поля HostName (Имя узла).

Несмотря на то что файл был позднее удален из системы, мы можем предположить его назначение по косвенным признакам. Так, значение MSFConsole может указывать на его принадлежность к компонентам фреймворка Metasploit. Среди PowerShell-сценариев, запущенных через этот файл, был эксплойт для уязвимости CVE-2020-1337, который также доступен в GitHub-репозитории Metasploit.

Помимо классических уязвимостей в решениях Microsoft, атакующих также интересовали серверы «1С:Предприятие» с небезопасной конфигурацией.

При этом помимо собственно недостатков конфигураций мы зачастую встречаем случаи, когда к серверам с серверным компонентом платформы «1С:Предприятие» подключаются сотрудники поддержки и администраторы, которые обладают повышенными привилегиями в инфраструктуре Active Directory. Все это позволяет злоумышленникам легко повысить свои привилегии и перейти к горизонтальному перемещению.

Stealth: удаление следов и маскировка

Для усложнения реагирования злоумышленники удаляют инструменты и файлы с результатами их работы, а также очищают историю выполненных команд.

При этом, пока инструменты используются в инфраструктуре жертвы, атакующие, как правило, маскируют их имена и имена вспомогательных объектов под легитимные.

  • KasperskyGPO_Deploy_64.exe, KasperskyGPO_Deploy_64_FIXED.exe — самораспаковывающиеся архивы, содержат сценарий Deploy-KasperskyGPO.ps1, директорию с вредоносной групповой политикой и один из архивов — KasperskyAgent.exe или agent.exe.
  • KasperskyAgentInstaller.exe, KasperskyAgent.exe, agent.exe – самораспаковывающиеся архивы, содержат исполняемый файл троянца-шифровальщика и вспомогательные файлы.
  • Kaspersky GPO — имя групповой политики, распространяющей троянец-шифровальщик в инфраструктуре жертвы.
  • KasperskyAgentInstallTask, Sysvc — имя задачи планировщика, осуществляющей запуск архивов с троянцем-шифровальщиком.
  • Deploy-KasperskyGPO.ps1 — PowerShell-сценарий, предназначенный для создания вредоносной групповой политики Kaspersky GPO.
  • Kaspersky_GPO_Deployment.log — лог работы сценария Deploy-KasperskyGPO.ps1.

Стоит отметить, что использование имени Kaspersky в названиях вредоносных файлов не помогает злоумышленникам избежать обнаружения. Решения «Лаборатории Касперского» успешно обнаруживают и блокируют вредоносные файлы.

Defense Impairment: слабые политики доступа к средствам защиты играют на руку злоумышленникам

Для того чтобы дольше сохранять свое присутствие в инфраструктуре незаметным, атакующие очищают журналы событий в некоторых системах с помощью стандартной утилиты wevtutil.

Помимо этого, получив достаточные привилегии, они отключают средства антивирусной защиты на хостах, что позволяет им запускать такие утилиты, как mimikatz.

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

Кроме того, в одном случае на стадии воздействия (Impact) атакующие применяли групповую политику, которая вносила изменения в настройки Windows Defender с целью его отключения путем модификации реестра. В результате этого антивирусная защита не реагировала на запуск шифровальщика.

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

Credential Access: поиск учетных данных в файлах, mimikatz и кейлоггер

Для перехвата данных, вводимых с клавиатуры скомпрометированной системы, злоумышленники используют модифицированный кейлоггер peeping-tom, исходный код которого доступен на GitHub. Исполняемый файл кейлоггера и журнал работы размещаются по следующим путям:

  • C:\ProgramData\Oracle\Java\jhost.exe
  • C:\Users\<User name>\AppData\Roaming\Microsoft\CLR\ErrorLog.txt

IP-адрес для отправки похищенных данных в обнаруженном нами образце был 91.210.109[.]118. Запуск кейлоггера закрепляется задачей планировщика, описанной выше в разделе Persistence.

Для получения учетных данных из оперативной памяти злоумышленники используют инструмент mimikatz. Файлы, связанные с утилитой mimikatz, размещаются по путям:

  • C:\ProgramData\x64\mimidrv.sys
  • C:\ProgramData\x64\mimikatz.exe
  • C:\ProgramData\x64\mimilib.dll
  • C:\ProgramData\x64\mimispool.dll

Для поиска учетных данных и различных секретов (ключей SSH, токенов доступа и др.) в файлах, расположенных в доступных сетевых каталогах, группа использует инструмент Snaffler. Чтобы упростить запуск утилиты, злоумышленники доставляют в систему конфигурационный файл:

Помимо данных из сетевых каталогов злоумышленников также интересовали данные, хранящиеся в менеджерах паролей на рабочих станциях администраторов (например, в KeePass).

Discovery: набор джентльмена

Локальная разведка

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

Удаленная разведка

На начальном этапе атакующие использовали сканер fscan для сбора сведений о внутренней инфраструктуре. В частности, их интересовали следующие порты:

  • 135 (RPC)
  • 139 (NetBIOS-SSN)
  • 1433 (Microsoft SQL)
  • 8006 (Proxmox VE)

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

Помимо этих инструментов атакующие с помощью PowerShell выполняли запросы по протоколу LDAP к контроллерам смежных доменов и получали списки доменных систем, пользователей и групп.

В качестве альтернативы PowerShell для получения информации о доменных пользователях и привилегированных группах злоумышленники использовали утилиту net.exe:

Lateral Movement: SSH, RDP и WinRM

Для горизонтального перемещения группировка использует стандартные протоколы удаленного администрирования — SSH, WinRM и RDP. Подключения к системам осуществляются как при помощи ранее развернутых туннелей, так и путем прямого подключения со скомпрометированного хоста.

Command and Control: доставка инструментов в систему

Для доставки своего инструментария на атакуемые хосты группировка задействует штатные утилиты ОС. В частности, в инцидентах встречались следующие.

  1. Утилита certutil:
  2. Фоновая служба BITS Windows (в двух вариантах запуска):
  3. Утилита cURL:
  4. PowerShell:

Создание туннелей с использованием Xray

Выше мы привели команды для вызова certutil и BITS, при помощи которых злоумышленники загружали в системы жертв утилиту Xray. В дальнейшем они использовали ее для создания обратных VLESS-туннелей к серверу управления. Конфигурационный файл, размещаемый рядом с исполняемым файлом утилиты, обычно имел имя config.json. В некоторых случаях атакующие удаляли его сразу после запуска туннеля, чтобы скрыть от защитников конфигурацию Xray.

Исходя из содержимого обнаруженных в ходе анализа конфигурационных файлов, для маскировки под легитимный HTTPS-трафик злоумышленники использовали порт 443 на сервере VLESS. Также конфигурационные файлы содержат блоки, отвечающие за настройку работы протокола REALITY, предназначенного для маскировки трафика злоумышленников под обращения к легитимному ресурсу mirror.yandex.ru:

Также трафик маскировали под обращения к легитимному ресурсу yastatic.net:

Установка AnyDesk

Приведенная выше команда вызова PowerShell утилиту AnyDesk, которую злоумышленники использовали для удаленного управления скомпрометированными хостами.

После загрузки злоумышленники устанавливали ПО с флагом --silent, чтобы не привлекать внимания пользователя, задавали пароль для подключения и через PowerShell находили ID зараженной машины (используется AnyDesk для удаленного подключения на стороне клиента) в конфигурационном файле:

Collection & Exfiltration: данные мессенджеров

Непосредственно перед шифрованием данных атакующие подключились к одному из контроллеров домена и запустили PowerShell-сценарий steal_tgs.ps1, в результате чего был создан каталог tdatas. Согласно данным журнала USN файловой системы NTFS, в процессе работы сценария в этом каталоге с помощью 7-Zip создавались архивы с характерными именами, намекающими на их содержимое.

Имя каталога tdatas и подстрока tdata могут отсылать к каталогу C:\Users\<имя_пользователя>\AppData\Roaming\Telegram Desktop\tdata, используемому мессенджером Telegram для хранения ключей авторизации, данных о сессии, настройках приложения и другой сессионной информации.

Таким образом атакующие удаленно собирали данные мессенджера из доступных систем, архивировали их с помощью 7-Zip и выгружали на внешний веб-сервис через браузер Google Chrome.

Impact: троянец-шифровальщик Sn00py

Для шифрования данных группа Citrus использует программу-вымогатель семейства Sn00py. Она написана на языке Go, предназначена для шифрования пользовательских (но не системных) файлов с помощью алгоритмов RSA-2048 и ChaCha20 в операционных системах семейства Windows. Зашифрованным файлам присваивается расширение .citrus. Расшифровка на данный момент невозможна без приватного ключа злоумышленников.

При запуске шифровальщик открывает консоль на устройстве жертвы и выводит туда команды, которые выполняет. Причем шифровальщик предпринимает попытки изменения данных конфигурации загрузки системы (BCD) с использованием несуществующего исполняемого файла bcedit (вероятно, злоумышленники опечатались):

Вывод активности шифровальщика в консоль содержит строку:

Она, вероятно, свидетельствует о том, что программа-вымогатель распространяется по модели Ransomware-as-a-Service, при которой злоумышленники не разрабатывают вредоносное ПО самостоятельно, а пользуются уже готовым решением по подписке.
В конфигурации шифровальщика в параметре pubkey содержится публичный ключ группы Citrus:

Также в параметре host_blacklist задан перечень имен систем, шифрование которых не производится.

В этот перечень входят контроллеры домена, используемые для распространения политики запуска шифровальщика. Таким образом злоумышленники обеспечивают ее бесперебойное распространение.

В процессе работы троянца создаются файлы CITRUS_README.txt, содержащие требование выкупа:

Как мы уже упоминали, для массового запуска шифровальщика в системах жертвы группа использует вредоносные объекты групповой политики. Они создаются с помощью самораспаковывающихся архивов, которые мы видели в двух версиях. Каждый архив содержит следующее.

  • Самораспаковывающийся архив с троянцем-шифровальщиком и вспомогательными файлами.
  • Каталог с объектом групповой политики. Политика размещает в целевой системе архив с троянцем-шифровальщиком, создает отложенную задачу, запускающую его с параметрами /quiet /norestart, включает службу WinRM, отключает службу Volume Shadow Copy, а также антивирусную защиту Windows Defender. Также она устанавливает на рабочем столе обои с запиской о выкупе.
  • PowerShell-сценарий, размещающий на контроллере домена в директории \\<имя_текущего_домена>\SYSVOL архив с троянцем-шифровальщиком и подключающий к домену вредоносную групповую политику с помощью командлетов Import-GPO и New-GPLinkM.

В одной из версий PowerShell-сценария мы обнаружили комментарии, свидетельствующие о том, что он, вероятно, редактировался с использованием LLM:

Связь с Toy Ghouls

В процессе анализа активности Citrus мы выявили ряд сходств с Toy Ghouls. Несмотря на отсутствие прямых пересечений в инфраструктуре, у группировок наблюдаются общие TTP — шифрование систем своих жертв, использование похожего набора инструментов (1C-Shell для удаленного выполнения команд на серверах «1С:Предприятие», mimikatz, PsExec, ADRecon) и одних и тех же каталогов для их хранения. При этом обе группировки — русскоязычные и атакуют исключительно российские компании. В ряде инцидентов мы наблюдали одновременную компрометацию инфраструктуры злоумышленниками из Toy Ghouls и Citrus.

Заключение

Группа Citrus любопытна тем, что использует нестандартный подход к созданию сетевых туннелей и генерирует вспомогательные инструменты с помощью ИИ. Однако, несмотря на это, злоумышленники во многом полагаются на известные инструменты и техники, что несколько упрощает процесс обнаружения на ранних этапах. Решения «Лаборатории Касперского» детектируют всю описанную в статье активность.

Тем не менее атаки Citrus в очередной раз подчеркивают необходимость тщательного контроля и разграничения доступа при подключении к инфраструктуре сотрудников подрядных организаций — ведь именно через них злоумышленники попадают в сети своих жертв. Мы продолжим следить за активностью группировки и сообщать о новых техниках при их выявлении.

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

Хэши файлов
Утилита Xray
d631627131b90d576d77f4bf530e1abe mst.exe, sabycenter.exe, webex.exe, rpchost.exe
Meterpreter stager
7107fb029e7c63523e3aca5fc8e56b38 2341.exe
Кейлоггер
e251df2d0b7c3682965efb4d2009a2f4 jhost.exe
Шифровальщик Sn00py
17b29b6c9de80402a45e321bbe1168fa build_64.exe
9eee984b187423c46c10a63d080da15d build_64.exe
Сканер fscan
cf903e4a1629aa0582fd0363b5786676 fscan.exe
Пути к файлам
C:\ProgramData\ADRecon-Report-*
C:\ProgramData\SharpHound.exe
C:\ProgramData\Snaffler.exe
C:\ProgramData\WebEx\config.json
C:\ProgramData\WebEx\host_to_ip.ps1
C:\ProgramData\WebEx\ping_oldwin.bat
C:\ProgramData\WebEx\web.txt
C:\ProgramData\WebEx\webex.exe
C:\ProgramData\ad_ru.ps1
C:\ProgramData\computers.txt
C:\ProgramData\config.json
C:\ProgramData\default.toml
C:\ProgramData\fscan.exe
C:\ProgramData\llc\*_BloodHound.zip
C:\ProgramData\mst.exe
C:\ProgramData\oracle\java\jhost.exe
C:\ProgramData\pve.exe
C:\ProgramData\rules
C:\ProgramData\sabycenter.exe
C:\ProgramData\steal_tgs.ps1
C:\ProgramData\tdatas
C:\ProgramData\x64\mimikatz.exe
C:\ProgramData\xray.exe
C:\ProgramData\rpchost.exe
C:\ProgramData\3777.exe
C:\ProgramData\2341.exe
C:\ProgramData\ChromeSetup.exe
C:\ProgramData\Kaspersky\KasperskyAgent.exe
C:\ProgramData\Kaspersky\KasperskyAgentInstaller.exe
C:\ProgramData\1.txt
C:\ProgramData\7z2603-x64.exe
C:\ProgramData\Kaspersky\task.log
C:\ProgramData\enum.ps1
C:\ProgramData\kp.ps1
C:\ProgramData\ping.ps1
C:\ProgramData\result.txt
C:\ProgramData\user_activity_report.txt
C:\Users\*\AppData\Local\Temp\7ZipSfx.000\Deploy-KasperskyGPO.ps1
C:\Users\*\AppData\Local\Temp\Kaspersky_GPO_Deployment.log
C:\Users\*\AppData\Local\Temp\7ZipSfx.000\KasperskyAgent.exe
C:\Users\*\Desktop\KasperskyGPO_Deploy_64.exe
C:\Users\*\Desktop\KasperskyGPO_Deploy_64_FIXED.exe
C:\Windows\SYSVOL\domain\KasperskyAgent.exe
C:\Windows\SYSVOL\domain\build_64.exe
C:\Windows\SYSVOL\domain\icon.ico
C:\Windows\SYSVOL\domain\wallpaper.bmp
C:\Windows\Temp\agent.exe
C:\Windows\build_64.exe
C:\Windows\icon.ico
C:\Windows\wallpaper.bmp
C:\Users\*\AppData\Roaming\Microsoft\CLR\ErrorLog.txt
C:\Users\*\Desktop\webex.zip
Имена отложенных задач
Java rpchost agent
KasperskyAgentInstallTask
Sysvc
IP-адреса
91.210.109[.]118
91.210.108[.]180

Citrus Ransomware: VLESS для трафика, Sn00py для шифрования и LLM в помощь

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Отчеты

Благотворительность как приманка: Armored Likho расширяет арсенал инструментов для кибершпионажа

Эксперты «Лаборатории Касперского» разбирают новую кампанию Armored Likho, маскирующуюся под благотворительность и доставляющую новый Still Toolkit, нацеленный на кражу данных из Telegram и прослушку.

ToddyCat — ваш скрытый почтовый ассистент. Часть 2

Разбираем Umbrij — новый инструмент APT-группы ToddyCat для компрометации корпоративной переписки в сервисе Gmail. Целью атак стал токен авторизации OAuth, при помощи которого злоумышленники получали доступ к сервисам Google.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике