Перейти к содержанию
Tech Threat Lab
TTL

Фишинговая кампания ZipLine задействует PowerShell-бэкдор и Cloudflare Tunnel

Фишинговая кампания ZipLine задействует PowerShell-бэкдор и Cloudflare Tunnel

Исследователи Telekom Security выявили целевую фишинговую кампанию против организаций в нескольких европейских странах, преимущественно в Австрии. Как минимум в одном случае цепочка привела к развёртыванию шифровальщика Qilin, однако шифрование затронуло не все организации, попавшие под эту активность.

Telekom Security с умеренной уверенностью связывает кампанию с кластером ZipLine, о котором Check Point Research сообщала в августе 2025 года. В новой операции есть отличающиеся детали, но её приёмы схожи с ранее описанной активностью. По данным сторонней телеметрии, кампания, вероятно, началась в середине марта 2026 года.

Сведений о целях в России или СНГ в исследовании нет. Тем не менее цепочка с персонализированной перепиской от имени рекрутеров, LNK-файлом с PowerShell, C2 на Heroku и Cloudflare Tunnel не привязана к конкретному региону. Эти признаки можно учитывать при проверке корпоративной почты и рабочих станций.

Фишинг от имени кадровых агентств

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

На этом этапе злоумышленники используют домены, оформленные под рекрутинговые агентства. В одном случае применялся alpentalent[.]at: при переходе на него открывался полнофункциональный сайт, имитирующий легитимное кадровое агентство. По той же схеме работал второй наблюдавшийся домен — steinersearch[.]at.

По оценке Telekom Security, для этих сайтов использовался единый HTML-шаблон с небольшими изменениями. Структура страниц и большая часть текста совпадают, а визуальное оформление немного различается. Помимо доменов из предыдущей активности, исследователи нашли как минимум ещё один домен, связанный с кампанией. CERT[.]at также сообщал о нескольких дополнительных доменах; по мнению исследователей, это указывает на продолжение операции. Среди известных фишинговых доменов указан headmatch[.]at.

Вредоносная ссылка появляется только после ответа адресата, если тот выражает интерес к вакансии. Следующее письмо убеждает жертву скачать ZIP-архив с поддомена herokuapp[.]com. Наблюдавшийся шаблон имени файла:

Dienstangebot___<фамилия><первая буква имени><дата>.zip

Один из доменов для загрузки архива — vertrag-hm-ref3154-7e89a2ad95ad[.]herokuapp[.]com.

Внутри архива находятся два документа Microsoft Word, служащие приманкой, и вредоносный ярлык с двойным расширением .docx.lnk. В изученном случае документы сообщали о якобы открытых вакансиях в немецкой компании Rossmann. В самих Word-файлах вредоносного содержимого нет: их задача — отвлечь пользователя от запуска ярлыка.

Что выполняет LNK-файл

Ярлык запускает короткий обфусцированный скрипт PowerShell. После расшифровки тот выполняет несколько последовательных действий.

Сначала скрипт ищет исходный ZIP-архив в каталогах «Загрузки», «Документы» и «Рабочий стол». Если архива там нет — например, пользователь сохранил файл в другой каталог, — цепочка прекращает выполнение.

Далее загрузчик обходит AMSI: указатель метода AmsiUtils.ScanContent заменяется указателем на безобидный метод PowerShell, созданный специально для этой цели. Затем он считывает исходный ZIP-архив как необработанный файл, не разбирая его как ZIP-контейнер. Загрузчик ищет маркерную строку SwbWu и извлекает PowerShell-код, скрытый после этого маркера. Исследователи отмечают, что этот фрагмент можно увидеть и извлечь шестнадцатеричным редактором.

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

После запуска бэкдор:

  • распаковывает исходный архив в %LOCALAPPDATA%\<имя архива>;
  • открывает документ-приманку ROSSMANN_Kandidatenbrochure.docx, чтобы не вызывать подозрений у пользователя;
  • создаёт задание планировщика, запускаемое ежедневно в 11:00, которое открывает LNK-файл и обеспечивает закрепление;
  • присваивает этому заданию имя вида <victim-id>c582;
  • формирует идентификатор жертвы как CRC32 от значения HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId;
  • формирует идентификатор кампании как CRC32 исходного ZIP-архива;
  • создаёт мьютекс Global\<victim-id>;
  • создаёт доменное имя для последующего использования в качестве C2 бэкдора — также на поддомене herokuapp[.]com.

Для связи с C2 бэкдор использует URL вида:

https://*[.]herokuapp[.]<victim-id>com/c582<xor_hex(victim-id, "[]0")><unix_timestamp_hex><random_hex>

Это декодированное логическое описание из исследования, а не готовый шаблон валидного URL для сетевого правила: оно объединяет маскирование, wildcard и переменный идентификатор жертвы. Для блокировки и ретроспективного поиска следует использовать перечисленные ниже конкретные C2-домены либо проверенный разбор алгоритма генерации домена.

Запросы отправляются с интервалом от четырёх до шести минут. HTTP-ответ расшифровывается операцией XOR, ключом выступает идентификатор жертвы, после чего бэкдор разбирает полученные данные.

В C2-обмене используется User-Agent:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36

Это корректная строка User-Agent для Google Chrome в Windows 10. Chrome версии 140 вышел в сентябре 2025 года.

Бэкдор обрабатывает три типа ответов C2. Команда #KILL удаляет запланированное задание и каталог с вредоносным ПО. Команда #HOST#<new_host> задаёт новый сервер управления. Любой другой ответ интерпретируется и исполняется как PowerShell-код.

Среди известных C2-доменов исследователи перечислили:

  • sched-729-fdfd12d20ba1[.]herokuapp[.]com;
  • assetscrm-04-6532d8371b2a[.]herokuapp[.]com;
  • erpapp-091-e00eb01e7fba[.]herokuapp[.]com;
  • clientportal-43-98f1d0f4b8d9[.]herokuapp[.]com;
  • erpapp-071-00266c67b940[.]herokuapp[.]com.

Туннель через Cloudflare

При выборе SIEM-платформы для централизованной корреляции журналов можно отдельно изучить Security Capsule SIEM и сопоставить её с требованиями своей инфраструктуры.

Получив бэкдор, операторы могут запускать на заражённой системе произвольный PowerShell-код. Это создаёт возможности для кражи данных, доставки дополнительных нагрузок, латерального перемещения и подготовки к развёртыванию шифровальщика. В наблюдавшейся кампании злоумышленники также устанавливали Cloudflare Tunnel, чтобы обеспечить удалённый доступ и замаскировать потенциально подозрительный сетевой трафик.

Cloudflare Tunnel — легитимная технология для публикации локальных сервисов, включая HTTP, SSH и удалённый рабочий стол, через сеть Cloudflare. Она также может предоставлять доступ к частным сетям через туннельное соединение, например при маршрутизации WARP. При компрометации инфраструктуры такой туннель даёт оператору несколько способов взаимодействовать с заражёнными системами, а внешний трафик может выглядеть как обращение к легитимному облачному провайдеру.

Для настройки туннеля достаточно cloudflared — серверного демона, который соединяет локальный сервис с сетью Cloudflare. В данном случае исследователи обнаружили на диске каталог:

\Users\<username>\AppData\Local\Temp\cf

В нём находились:

  • cloudflared.exe;
  • cert.pem, используемый для аутентификации;
  • config.yaml с конфигурацией туннеля;
  • один или несколько файлов учётных данных туннеля <tunnel-id>.json;
  • журнал ошибок, если ошибки возникали.

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

IOC и связанные признаки

К известным фишинговым доменам относятся:

  • alpentalent[.]at;
  • steinersearch[.]at;
  • headmatch[.]at.

Домен загрузки ZIP-архива: vertrag-hm-ref3154-7e89a2ad95ad[.]herokuapp[.]com.

Исследователи также перечислили адреса отправителей:

  • elisabeth[.]muehlbacher[at]steinersearch[.]at;
  • marlies[.]hoermann[at]steinersearch[.]at;
  • caroline[.]hoeller[at]steinersearch[.]at;
  • maria[.]schroeder[at]alpentalent[.]at;
  • daniela[.]weiss[at]alpentalent[.]at;
  • michaela[.]jaeger[at]alpentalent[.]at;
  • petra[.]schoepf[at]alpentalent[.]at;
  • anna[.]gruber[at]headmatch[.]at.

Связанные файлы и SHA-256:

  • 4578bc4b0b5eab3ac6e38d71bc1a086593b118c8bb221161d3fd27c5f5d00ea6 — поддельный документ 2026_NDA_Datenschutzrichtlinie.docx;
  • ee6c8422e4e723fe408ef6bbacfa852ae372e99ddf79e2fe38920017ec5e7674 — документ-приманка ROSSMANN_Kandidatenbrochure.docx;
  • 1067ffcb2b3f50d3769d05389e5d384abccc274c5433ee0fb27f6616dbf7d2c6 — скрипт запуска Cloudflare Tunnel cloudflared-start.ps1;
  • e00a9e9fed12f8a8f5703539c4662750dd5472d35c16dcbbdc5869f3fe5e238b — cloudflared.exe.

Дополнительные признаки: ZIP-архивы с шаблоном Dienstangebot___<фамилия><первая буква имени><дата>.zip, задание планировщика <victim-id>c582, мьютекс Global\<victim-id>, каталог \Users\<username>\AppData\Local\Temp\cf и C2-обмен с указанной строкой User-Agent.

Ретроспективный поиск в Microsoft Defender

Для проверки почты Telekom Security предложила искать сообщения, в которых домен отправителя или получателя совпадает с steinersearch.at, alpentalent.at либо headmatch.at, либо тема содержит строку «- Предложение о работе:». Запрос использует or, поэтому каждое из этих условий само по себе вернёт результат:

``kusto let phishing_domains = dynamic(["steinersearch.at", "alpentalent.at", "headmatch.at"]); EmailEvents | where (SenderFromDomain in (phishing_domains) or RecipientDomain in (phishing_domains)) or Subject contains "- Предложение о работе:" ``

Связанные архивы следует искать по файловым событиям. Условие endswith "-26.zip" применимо как ретроспективный индикатор известного формата 2026 года, но не покрывает варианты с другой датой или изменённым именованием:

``kusto DeviceFileEvents | where FileName startswith "Dienstangebot_" and FileName endswith "-26.zip" ``

Для поиска вредоносных URL в почте предлагается отбирать адреса, одновременно содержащие herokuapp.com и vertrag:

``kusto EmailUrlInfo | where Url contains "herokuapp.com" and Url contains "vertrag" ``

Соединения, инициированные Cloudflare Tunnel, можно отбирать по имени процесса, но сам по себе cloudflared не является признаком компрометации. В этом случае уместно сопоставлять запуск с неожиданным путём из %LOCALAPPDATA%\Temp\cf, известным хэшем, файлами cert.pem, config.yaml и учётными данными туннеля, а также с необычной родительской цепочкой PowerShell/LNK. Например, для первичного отбора можно использовать:

``kusto DeviceNetworkEvents | where InitiatingProcessFileName =~ "cloudflared.exe" | where InitiatingProcessFolderPath contains @"\AppData\Local\Temp\cf" or InitiatingProcessSHA256 == "e00a9e9fed12f8a8f5703539c4662750dd5472d35c16dcbbdc5869f3fe5e238b" ``

Выводы и ATT&CK

В исследовании активность сопоставлена с техниками MITRE ATT&CK: T1573 «Зашифрованный канал», T1071.001 «Веб-протоколы», T1059.001 «PowerShell», T1204.002 «Вредоносный файл», T1053.005 «Запланированная задача», T1027 «Зашифрованные файлы или информация», T1090.002 «Внешний прокси-сервер», T1105 «Передача инструментов проникновения», T1566.002 «Ссылка для целевого фишинга», T1082 «Сбор информации о системе» и T1041 «Экфильтрация данных через канал C2».

Цепочка не опирается на сложный загрузчик, но сочетает убедительную персонализированную переписку, поддельные сайты рекрутинговых агентств, документы-приманки и бэкдор с выполнением произвольного PowerShell-кода. Как минимум в одном наблюдавшемся случае эта активность завершилась развёртыванием Qilin.

Для обнаружения исследователи рекомендуют отслеживать запуск PowerShell из ярлыков, необычные задания планировщика, неожиданные запуски cloudflared и сетевые подключения к известной облачной инфраструктуре, контролируемой злоумышленниками. При расследовании заражённого хоста стоит отдельно проверить и сохранить содержимое %LOCALAPPDATA%\Temp\cf: конфигурация и учётные данные Cloudflare Tunnel могут показать, какой удалённый доступ был настроен в скомпрометированной среде.

Источник: По материалу источника «ZipLine-linked spearphishing campaign uses PowerShell backdoor and Cloudflare Tunnel».