Кибершпионы SERPENTINE возвращаются к старой цели с обновлённым арсеналом и консолидированной инфраструктурой

APT

Спустя всего пять недель после выявления и устранения масштабного инцидента, та же самая целевая организация вновь подверглась атаке со стороны оператора угроз, известного под условным названием SERPENTINE. Анализ образцов вредоносного ПО выявил точное совпадение GUID, ключей шифрования и наборов инструментов с предыдущей кампанией, получившей название SERPENTINE#CLOUD. Однако на этот раз злоумышленники использовали совершенно новый канал доставки, который, к счастью, был пресечён на самой ранней стадии. Этот случай демонстрирует высокую степень адаптивности и настойчивости современных APT-групп (Advanced Persistent Threat, сложная постоянная угроза), которые, даже будучи обнаруженными, не отказываются от своих целей, а модифицируют тактику.

Описание

Предыдущее проникновение, подробно описанное в серии расследований, начинавшихся с анализа инструмента PureLogs, оставалось незамеченным около шести месяцев и было выявлено лишь в феврале 2026 года. Тогда вектор атаки установить не удалось. В новом инциденте, произошедшем в конце марта, использовалась социальная инженерия по схеме ClickFix: жертве под видом документа отправлялся файл с двойным расширением, который инициировал загрузку последующих ступеней вредоносной цепочки через временные туннели Cloudflare. Ключевым отличием стало то, что система защиты конечных точек сработала на нулевой стадии (Stage 0), заблокировав выполнение до того, как какая-либо вредоносная полезная нагрузка попала на диск.

Основной арсенал оператора остался прежним и включает пять семейств RAT (Remote Access Trojan, троян удалённого доступа): VenomRAT, AsyncRAT, XWorm/Violet, PureHVNC. Однако в набор добавился новый инструмент - фреймворк Brute Ratel C4 (BRc4), который заменил использовавшийся ранее загрузчик Annorii. Примечательно, что сам BRc4 не имеет собственного канала управления (C2, Command and Control). Его единственная задача - расшифровать и внедрить в процесс notepad.exe вторую ступень PureHVNC, используя технику инъекции через очередь APC (Asynchronous Procedure Call, асинхронный вызов процедур) Early Bird с подменой PPID (Parent Process ID, идентификатор родительского процесса) на explorer.exe. Это сложный метод уклонения от обнаружения, маскирующий вредоносную активность под легитимные системные процессы.

Инфраструктура управления также претерпела изменения. Если в феврале оператор использовал три IP-адреса в трёх разных странах (Венгрия, Нидерланды, США), то теперь все четыре конечные точки C2 для разных троянов резолвятся в домены DuckDNS, расположенные всего на двух IP-адресах. Оба адреса принадлежат одной подсети /24 провайдера AT&T в Чикаго. Такая консолидация инфраструктуры может указывать на стремление упростить управление или на смену хостинг-провайдера. Ретроспективный анализ позволил связать с этим оператором 13 исторических доменов DuckDNS, размещавшихся на 12 IP-адресах в шести странах, причём самая ранняя активность датируется июлем 2025 года.

Детальный разбор цепочки доставки показывает высокую степень автоматизации. Всё начинается с файла "Scan_0620954916911.pdf.wsh", который, будучи исполненным, с помощью "rundll32.exe" и библиотеки "davclnt.dll" обращается через туннель Cloudflare к WebDAV-ресурсу для загрузки следующего скрипта. Последующие этапы, управляемые пакетными файлами, загружают ZIP-архивы, содержащие встроенную среду выполнения Python 3.12 и десять обфусцированных полезных нагрузок. Все они спрятаны в директории "%USERPROFILE%\Contacts". Ключевым элементом обфускации является инструмент Kramer, который преобразует исходный код Python в последовательность шестнадцатеричных значений и символов CJK Unicode, что затрудняет статический анализ. Специалисты расшифровали все десять файлов, перехватив вызов функции "eval()" в Python 3.12.

Внутри этих файлов обнаруживаются два основных шаблона загрузчиков. Первый, используемый в восьми случаях, расшифровывает шелл-код с помощью AES-256-CBC и двух последовательных операций XOR, а затем внедряет его в приостановленный процесс "explorer.exe" через очередь APC. Второй шаблон, применённый в двух оставшихся файлах, использует более простой алгоритм RC4 и выполняет шелл-код непосредственно в процессе Python. Оба шаблона генерируют шелл-код, созданный утилитой Donut v0.9.2, которая предназначена для обхода механизмов безопасности Windows, таких как AMSI (Antimalware Scan Interface) и WLDP (Windows Lockdown Policy), с последующей загрузкой финальных .NET-сборок.

Среди финальных полезных нагрузок особенно выделяется Brute Ratel C4. Этот нативный 64-битный исполняемый файл маскируется под mmc.exe и обладает сложной архитектурой. Он содержит десять различных методов инъекции кода в память, из которых в данном образце активен метод Early Bird APC Queue. Перед внедрением в процесс "notepad.exe" загрузчик с помощью прямых системных вызовов (direct syscalls) применяет политику "SetProcessMitigationPolicy", которая блокирует загрузку в целевой процесс DLL, не подписанных Microsoft. Это эффективно нейтрализует возможность агентам EDR (Endpoint Detection and Response, системы обнаружения и реагирования на конечных точках) внедрять свои библиотеки для мониторинга. После успешной инъекции PureHVNC загрузчик завершает работу, оставляя в системе только легитимный процесс "notepad.exe" с подменённым PPID, внутри которого выполняется скрытый VNC-сервер.

Эволюция инструментов оператора очевидна. Один и тот же шаблон Python-загрузчика не менялся восемь месяцев. Однако обёртка вокруг него постоянно совершенствуется: обфускация Kramer стала применяться ко всем файлам вместо выборочного использования, размер XWorm/Violet уменьшился на 95%, а для доставки PureHVNC теперь используется более сложный инструмент BRc4. При этом такие уникальные идентификаторы, как GUID для установки Violet или соль для шифрования VenomRAT, остались неизменными, что и позволило надёжно связать две кампании. Данный инцидент служит ярким напоминанием, что успешное устранение одной атаки не гарантирует безопасности. Постоянным целям, особенно в корпоративном и государственном секторах, необходимо выстраивать многоуровневую оборону с акцентом на обнаружение аномалий на ранних стадиях, мониторинг исходящего сетевого трафика на подключения к динамическим DNS-сервисам и регулярный аудит процессов на предмет нехарактерных методов инъекции кода или подмены атрибутов.

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

IPv4

  • 12.202.180.105
  • 12.202.180.133

Domains

  • edward-fwd-vacuum-changelog.trycloudflare.com
  • handed-mines-abc-intensity.trycloudflare.com
  • represents-causes-conflicts-silver.trycloudflare.com
  • rover-earlier-baseline-karen.trycloudflare.com

Domain Port Combinations

  • bsmaopm.duckdns.org:6757
  • uejrhnfq.duckdns.org:6745
  • vivogrouplink.duckdns.org:2128
  • y57kdsa.duckdns.org:7878

SHA256

  • 010ce592bcabf0d4e786b20d46bbd25893734a176e1f5322a5f28c4f94d4c6e1
  • 026f71d40fa2e3c530283c1a70925d14eeee18d98f95506dd88cb698ccca6859
  • 218628edc95f7c425fad294048adca65e235ae3024f084c9afaf483f66f71b6c
  • 3bc36b9b7bc5ee73b26dd94d34a31cb707feb9a68d2e4832d276e9274e780a34
  • 4bb4a303b8e4873401be1cea68d50bdaa454471685dc30ad61e9ef746181aa29
  • 58d9f039ec38bbe03a1e1bf58a0102ce9c94d6efe39d2450cb44917d4a5c75af
  • 59079dbdfb0346deae4efc361d78844141bf77d916adec96b23d8061e20e123c
  • 6b45e1a38609b9b7f2f2508b0b38f700a75ee1ea9b6c548d1a086bd91863efc3
  • 8cda591f526a09954c7a60337daa767be7948367ee52accebc30061be1dc581a
  • e06dd348a334de7e2e43ef7a3739d4b4cf792b615595262aa212eec4e3005564
  • e84cbbbc018d7e54c5afed760f04c06731ba57c1d40414c8b94ba1c488b9c9c5
  • f56a53ec6817c918d9a0056277022d694a06727bc9064bee95e4b80c50067f2a
Комментарии: 0