Введение

В августе 2024 года наша команда обнаружила новый образец crimeware, который мы назвали SteelFox. В этих атаках задействуется сложная цепочка, включающая использование шелл-кода, а также злоупотребление службами и драйверами Windows. Троянец распространяется через форумы, торрент-трекеры и блоги, маскируясь под такие популярные программы, как Foxit PDF Editor и AutoCAD, и с помощью стилера собирает данные о банковских картах жертв, а также информацию о зараженном устройстве.

Краткое содержание отчета:

SteelFox распространяется через сообщения на форумах и вредоносные торренты.
Связь с командным сервером осуществляется с использованием механизма закрепления сертификатов SSL (SSL pinning) и TLS 1.3, при этом используется домен с динамическим IP-адресом и библиотека Boost.Asio.
SteelFox умеет повышать привилегии за счет использования уязвимости в драйвере.

Продукты «Лаборатории Касперского» определяют эту угрозу как

HEUR:Trojan.Win64.SteelFox.gen, Trojan.Win64.SteelFox.*.

Техническая информация

Предыстория

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

Хронология заражения

Первичное заражение

В результате расследования мы пришли к выводу, что первоначальным вектором атаки SteelFox являются несколько публикаций на форумах и торрент-трекерах. В этих постах дроппер SteelFox описывается как эффективный способ бесплатной активации легитимного программного продукта. Мы обнаружили дроппер, выдающий себя за активатор для Foxit PDF Editor, продуктов JetBrains и AutoCAD. Несмотря на то что эти дропперы действительно выполняют заявленные функции, они также доставляют сложное вредоносное ПО на компьютер пользователя.

Реклама вредоносного дроппера

Дроппер SteelFox

В этом исследовании мы рассмотрим образец, маскирующийся под активатор для Foxit PDF Editor. Начальным этапом кампании SteelFox является исполняемый файл AMD64 под названием

foxitcrack.exe, содержащий большую секцию .rdata. Значительная энтропия файла указывает на то, что он упакован. При запуске программы появляется графический интерфейс, предлагающий указать путь до установочного каталога Foxit PDF Editor.

Графический интерфейс дроппера

Поскольку установочный каталог Foxit находится в папке Program Files, FoxitCrack запрашивает права администратора, которые впоследствии будут использованы во вредоносных целях.

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

Вставленный вредоносный код

Сначала второй этап (доставленный вредоносный код) расшифровывается с помощью алгоритма AES-128. Его параметры также зашифрованы — они расшифровываются лишь после доставки первым этапом. Схема шифрования выглядит следующим образом:

// Sbox decryption
for (int i = 0; i < 256; i++) {
SBox[i] = enc_Sbox[i + 16] ^ enc_SBox[i % 16];
}

for (int i = 0 i < 8; i++) {
key[i] = enc_key[i + 8] ^ enc_key[i % 8];
iv[i] = enc_iv[i + 8] ^ enc_iv[i % 8];
}

Алгоритм AES-128 реализован с использованием векторных инструкций SIMD, поэтому полезная нагрузка должна разбиваться на блоки по 16 байт.

Расшифровка исполняемого файла

В более поздних версиях дроппера авторы реализовали этот же алгоритм, но с использованием расширения набора инструкций AES-NI. Поскольку используются блоки по 16 байт, это означает, что требование к выравниванию размера полезной нагрузки остается в силе.

После этого встроенная полезная нагрузка, являющаяся исполняемым файлом PE64, модифицируется во избежание обнаружения. Временные метки компоновки перезаписываются случайной датой в диапазоне между маем и декабрем 2022 года, а также перезаписывается версия компоновщика. Кроме того, в секцию

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

Вставка мусора, изменение даты компоновки и версии компоновщика

Доставленный PE записывается по одному из трех путей. Точный путь зависит от образца дроппера:

C:Program FilesFoxit SoftwareFoxit PDF EditorpluginsFoxitPDFEditorUpdateService.exe
C:Program Files (x86)Common FilesAdobeAdobeGCClientAGSService.exe
C:Program FilesAutodeskAdODISV1Setuplpsad.exe

Параметры вредоносной службы инициализируются следующим образом:

Подготовка службы

После этого загрузчик второго этапа создает службу, которая добавляет себя в автозагрузку, что позволяет ей закрепиться в системе и оставаться активной даже после перезагрузки.

Загрузчик SteelFox

Эта служба запускается из

svchost.exe как обычная служба Windows. Сначала она определяет полное имя текущего исполняемого файла и сравнивает его с именами бинарных файлов служб, чтобы убедиться, что загрузчик был действительно запущен как служба. Если проверка успешно пройдена, то выводится список всех запущенных служб (с состоянием SERVICE_ACTIVE) с указанием пути к исполняемому файлу и описанием. Это довольно необычный способ проверки на использование отладчика — если бинарный файл не будет запущен как служба, загрузчик выдаст исключение и завершит работу. Этот алгоритм обфусцирован в коде загрузчика, но после деобфускации он выглядит следующим образом:vector<QUERY_SERVICE_INFOW> vec;
get_services_list(vec);
std::wstring serv_name;
GetModuleFileNameW(0, exec_name, 256);

for (auto service : vec) {
SC_HANDLE hService = open_service(service.lpServiceName);
LPCWSTR *bin_name = get_service_bin_path(hService, service.lpServiceName);

if (!wstrcmp(exec_name, bin_name) {
serv_name = service.lpServiceName;
break;
}
}

if (serv_name.empty()) {
throw std::system_error;
}

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

Теперь поток выполнения переходит к функции

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

Перед тем как выполнить полезную нагрузку, вредоносная программа задействует необычный механизм закрепления в системе — небольшой, но крайне важный шаг. Этот этап запускает службу AppInfo, а затем загружается внутрь нее. В результате пользователь не может выполнить никаких действий над этим загрузчиком, поскольку даже для копирования этого образца требуются привилегии NTSYSTEM.

Целевая DLL загружается с помощью вредоносного шелл-кода и шифруется с помощью AES-128 тем же способом, что применялся на начальном этапе. Расшифровка более поздних версий также реализована с помощью инструкций AES-NI.

Вредоносный шелл-код загружается в 3 основных этапа. Сначала он создает массив адресов функций WinAPI, которые будут выполняться внутри шелл-кода.

Сбор адресов функций WinAPI

Затем полезная нагрузка расшифровывается с помощью довольно простого XOR-алгоритма. После расшифровки выполняется шелл-код с заданными параметрами.

Расшифровка шелл-кода

Шелл-код представляет собой простейший загрузчик — он использует импортированные функции WinAPI, чтобы выделить память для загрузки последнего этапа и для доступа к функциям библиотеки. Этот шелл-код не реализует никаких механизмов защиты от отладки, являясь просто базовым PE-загрузчиком последнего этапа.

Последний этап SteelFox

Вначале этот этап (DLL) создает мьютекс со случайно сгенерированным именем, поскольку его сетевая работа в значительной степени опирается на многопоточность и асинхронный сетевой ввод-вывод. После этого он выполняет важную задачу — создает службу с запущенным в ней драйвером

WinRing0.sys. К этой службе добавляется канал с именем \.WinRing0_1_2_0, позволяющий процессу взаимодействовать с драйвером. Это довольно старый драйвер, содержащий уязвимости CVE-2020-14979 и CVE-2021-41285, позволяющие злоумышленнику повысить привилегии до NTSYSTEM, как только будет разрешено прямое непроверяемое взаимодействие с драйвером и злоумышленник сможет управлять данными, передаваемыми драйверу. Этот драйвер также является компонентом майнера XMRig. Коммуникация с драйвером происходит в отдельном потоке.

После инициализации драйвера образец запускает майнер. Тот представляет собой модифицированный исполняемый файл XMRig с мусорным кодом. Он подключается к майнинговому пулу, используя заданные учетные данные.

Компонент XMRig загружается из одного из репозиториев

hxxps://github[.]com/cppdev-123. Судя по всему, он обновляется время от времени — мы предполагаем, что это делается для того, чтобы избежать обнаружения старых версий:

Полезные нагрузки на GitHub

После этого вредоносная программа разрешает IP-адрес в домен

ankjdans[.]xyz, который выступает в роли командного сервера. Хотя домен задан в коде, смена IP-адресов помогает злоумышленнику остаться незамеченным. SteelFox осуществляет разрешение с помощью Google Public DNS и DNS over HTTPS (DoH). Это позволяет атакующему скрыть факт разрешения домена.

После успешного разрешения IP-адреса вредоносная программа подключается к своему командному серверу с помощью TLS 1.3. Эта модель ввода-вывода использует такие библиотеки, как Boost.Asio и wolfSSL, что позволяет злоумышленнику реализовать полноценное взаимодействие по TLS 1.3.

В отличие от версии 1.2, TLS 1.3 генерирует секретный ключ сессии на основе предварительно выбранного закрытого ключа на этапе установления соединения. В этом случае общий секретный ключ генерируется с помощью криптографически защищенного генератора случайных чисел Windows. Более того, в SteelFox полностью реализована функция закрепления сертификата SSL, исключающая возможность перехвата данных, передаваемых по SSL. Примечательно, что закрепление сертификата SSL включено только для связи с командным сервером.

Разрешение домена

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

chrome;
opera;
opera_gx;
brave;
firefox;
yandex;
wave;
avg;
avast;
vivaldi;
dragon;
chedot;
coccoc.

Он извлекает файлы cookie, данные банковских карт, историю поиска и список посещенных мест — последнее извлекается только из браузеров Mozilla Firefox. Для этого используется встроенная копия SQLite3. Поскольку служба запускается под пользователем NTSYSTEM, для получения контекста безопасности для последующего создания дампа SQL вызывается функция API

ImpersonateLoggedOnUser.

Полный список извлеченных данных представлен ниже.

Тип данных
Подробности

Данные браузера
Файлы cookie, банковские карты, местоположение, история поиска

Программное обеспечение
Установленное программное обеспечение, антивирусные решения, запущенные службы, установленные дополнения

Сведения о системе
Дата сборки (если возможно), версия, редакция, дата установки

Сведения о сети
Беспроводные интерфейсы, сети и пароли (извлекаются в виде простого текста)

SIM
Данные SIM-карты (если применимо)

Диски
Названия и типы дисков (внешние, съемные и т. д.), свободное пространство на диске

Окружение
Дамп переменных окружения

Время
Местное время, часовой пояс

Сведения о пользователе
Имя пользователя, информация о параметрах запуска, пароль, языковые настройки, информация об учетных записях удаленного рабочего стола (через WinAPI NetUserEnum)

RDP
Сессии и информация о сессиях (через WinAPI WTSQuerySessionInformationW)

Рабочий стол
Значки установленных и запущенных программ

Процессы
Использование памяти и диапазон страниц

Затем данные объединяются в один большой JSON и отправляются на командный сервер. Схема связи выглядит следующим образом:

Схема взаимодействия

Жертвы

Эта кампания не направлена на отдельных лиц или конкретные организации. Троянец действует с большим размахом, массово заражая всех, кто сталкивается со скомпрометированным ПО, — на момент проведения исследования наши защитные решения обнаружили эту угрозу более 11 000 раз. Целью атаки являются пользователи различных популярных программ, таких как AutoCAD, продукты JetBrains и Foxit. Жертвами этой кампании стали пользователи со всего мира: большинство из них находятся в Бразилии, Китае, России, Мексике, ОАЭ, Египте, Алжире, Вьетнаме, Индии и Шри-Ланке.

TOP 10 стран, атакованных SteelFox, август–сентябрь 2024 года (скачать)

Атрибуция

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

Выводы

SteelFox появился недавно и представляет собой полнофункциональный пакет crimeware. Троянец способен похищать различные пользовательские данные, которые могут заинтересовать организаторов этой кампании. Искусное использование современного языка C++ в сочетании со сторонними библиотеками наделяет эту вредоносную программу очень широкими возможностями. Использование TLS 1.3 и механизма закрепления сертификата SSL обеспечивает безопасную связь и получение конфиденциальных данных.

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

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

Обратите внимание: Индикаторы, приведенные в этом разделе, действительны на момент публикации.

Хеш-суммы файлов
Полезная нагрузка
fb94950342360aa1656805f6dc23a1a0

Загрузчик

5029b1db994cd17f2669e73ce0a0b71a
lpsad.exe

69a74c90d0298d2db34b48fa6c51e77d
AGSService.exe

84b29b171541c8251651cabe1364b7b6
FoxitPDFEditorUpdateService.exe

015595d7f868e249bbc1914be26ae81f
0947cca1b5509f1363da20a0a3640700

040dede78bc1999ea62d1d044ea5e763
0ce3775fbfbe8f96e769822538c9804c

051269b1573f72a2355867a65979b485
0f2f104dcc4a6c7e3c258857745d70fb

08fa6ebc263001658473f6a968d8785b
11caf769c0fb642bbb3daa63e516ca54

d5290ba0cd8529032849ae567faba1ce
e7c4e02e1da5afb56a2df0996784a9d5

d715507131bbf4ca1fe7bc4a5ddfeb19
e9a14ae0f7eb81346eac9d039138a7d8

dc8c18e4b729fdbf746252b2fc1decc5
f3690f597c725553b8ced0179f4f032e

dc9d42902bda8d63e5858b2a062aecc1
f8f6c7d65b28b978e4f2a40158973a0c

Дроппер

9dff2cdb371334619b15372aa3f6085c
jetbrains-activator.exe

c20e1226782abdb120e814ee592bff1a
autocad-patch.exe

c6e7c8c76c7fb05776a0b64699cdf6e7
FoxitPatch.exe

Пути к файлам
C:Program Files (x86)Foxit SoftwareFoxit PDF EditorpluginsFoxitPDFEditorUpdateService.exe
C:Program Files (x86)Common FilesAdobeAdobeGCClientAGSService.exe
C:Program FilesAutodeskAdODISV1Setuplpsad.exe

Пути к файлам PDB
d:hotprojectwinring0sourcedllsyslibamd64WinRing0.pdb

Домены и IP-адреса
hxxps://ankjdans[.]xyz
205.185.115[.]5

Вредоносные URL-адреса
hxxps://github[.]com/DavidNguyen67/CrackJetbrains
hxxps://github[.]com/TrungGa123/Active-all-app-Jetbrains/
hxxps://github[.]com/tranquanghuy-09/activate-intellij-idea-ultimate/
hxxps://github[.]com/TaronSargsyan123/ScaraSimulation
hxxps://raw.githubusercontent[.]com/tranquanghuy-09/activate-intellij-idea-ultimate/main/jetbrains-activator.exe
hxxps://raw.githubusercontent[.]com/TaronSargsyan123/ScaraSimulation/main/jetbrains-activator.exe
hxxps://raw.githubusercontent[.]com/TrungGa123/Active-all-app-Jetbrains/main/jetbrains-activator.exe
hxxps://raw.githubusercontent[.]com/DavidNguyen67/CrackJetbrains/main/jetbrains-activator.exe
hxxps://www.cloudstaymoon[.]com/2024/05/06/tools-1
hxxps://squarecircle[.]ru/Intelij/jetbrains-activator.exe
hxxps://drive.google[.]com/file/d/1bhDBVMywFg2551oMmPO3_5VaeYnj7pe5/view?usp=sharing
hxxps://github[.]com/cppdev-123

Команды Windows, используемые злоумышленником

​  

​Securelist

Read More

Ваша реакция?
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x