• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья OpcJacker

samarie

HDD-drive
Пользователь
Регистрация
06.04.2023
Сообщения
34
Реакции
83
Депозит
0.00

Оригинал -- https://www{.}freebuf{.}com/articles/paper/363188{.}html​


Исследователи Trend Micro обнаружили новый тип вредоносного ПО, названный "OpcJacker" (по названию его конфигурационной конструкции opc "opc" и возможности перехвата криптовалюты "hijack" с префиксом opc-jack), который распространяется с конца 2022 года. OpcJacker представляет собой интересную вредоносную программу, поскольку ее конфигурационный файл использует пользовательский формат файла для определения поведения вредоноса. В частности, формат файла напоминает код виртуальной машины, а наличие шестнадцатеричных числовых идентификаторов в конфигурационном файле позволяет вредоносу запускать нужные функции. Использование такой конструкции может быть направлено на то, чтобы усложнить исследователям понимание и анализ кода вредоносного ПО.

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

b9f7014b4271c44e09b4e.png

Рисунок 1. Цепочка заражения OpcJacker

Исследователи наблюдали, как OpcJacker распространяется через различные кампании, в том числе маскируясь под криптовалютные приложения и другое легитимное программное обеспечение, которое злоумышленники затем распространяют через поддельные веб-сайты. В последней кампании (февраль 2023 года) с участием OpcJacker цепочка заражения началась с рекламы, ориентированной на иранских пользователей. Эти вредоносные объявления были замаскированы под VPN-сервисы, обманом заставляя жертв загрузить документ, содержащий OpcJacker.

Вредоносная программа загружается путем обновления легитимной библиотеки DLL при обновлении установленного приложения, которая также загружает другую вредоносную библиотеку DLL. Затем вредоносная DLL-библиотека компилирует и запускает шеллкод, который является еще одним загрузчиком и исполнителем вредоносного исполняемого файла, который представляет собой блок данных, хранящий файлы OpcJacker в различных форматах, таких как WAV и CHM. Загрузчик получил название "Babadeda" crypter, так как Криптер "Babadeda" используется уже более года. Злоумышленники, стоящие за этими кампаниями, внесли некоторые изменения в сам криптер, а затем добавили совершенно новую полезную нагрузку.

Обычно OpcJacker выпускает (или загружает) и запускает дополнительные модули, которые являются инструментами удаленного доступа, NetSupport RAT, либо скрытые виртуальные сетевые вычислений (hVNC). Мы также обнаружили отчет, содержащий информацию о загрузчике под названием "Phobos Crypter" (на самом деле это та же вредоносная программа, что и OpcJacker), который используется для загрузки Phobos ransomware.

Распространение


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

В последней кампании (февраль 2023 года) с участием OpcJacker исследователи отметили, что OpcJacker распространялся с помощью геотаргетинга вредоносной рекламы на Иран. Эти вредоносные объявления ссылались на вредоносный веб-сайт, который был замаскирован под сайт легитимного программного обеспечения VPN. Содержимое сайта было скопировано с сайта легальной коммерческой службы VPN, однако ссылка была изменена таким образом, чтобы указывать на взломанный сайт со встроенным вредоносным содержимым.

Вредоносный веб-сайт проверяет IP-адрес клиента, чтобы определить, использует ли жертва VPN-сервис. Если IP-адрес не использует VPN, он перенаправляет жертву на второй взломанный сайт, предлагая ей загрузить документ, содержащий OpcJacker. Если жертва использует VPN-сервис, вышеописанная атака не происходит.

d4b2ab6b12eeba1324d9b.png

Рисунок 2. Пример вредоносной рекламы, используемой для обслуживания OpcJacker

Кроме того, исследователи обнаружили ряд ISO-образов и RAR/ZIP-архивов, содержащих модифицированные установщики различного программного обеспечения, которые вызывали загрузку OpcJacker. Эти установщики ранее использовались другими кампаниями, размещаясь на различных взломанных сайтах на базе WordPress или платформах разработки программного обеспечения, таких как GitHub. Одна из возможных причин, по которой злоумышленники предпочитают использовать ISO-файлы, заключается в том, чтобы обойти предупреждение Internet Explorer об использовании Mark-of-the-Web.

Ниже приведены примеры имен файлов, которые нам удалось обнаружить:

CLF_security.iso
Cloudflare_security_setup.iso
GoldenDict-1.5.0-RC2-372-gc3ff15f-Install.zip
MSI_Afterburner.iso
tigervnc64-winvnc-1.12.0.rar
TradingViewDesktop.zip
XDag.x64.rar

Шифровальщик Babadeda

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


c32ef56ba2026692f837b.png

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

Исполняемый файл загружает библиотеку DLL, включающую исправленный импорт (librawf.dll)


dc5a023a7ce135a334a55.png

Рисунок 4. Список импортированных библиотек DLL; выделенные библиотеки - исправленные библиотеки, которые могут быть загружены с дополнительными вредоносными библиотеками DLL

Список адресов импорта исправленной библиотеки DLL (librawf.dll, связанной с легитимным приложением RawDigger (анализатор необработанных изображений)) был дополнительно исправлен для включения двух дополнительных библиотек DLL. На изображении ниже обратите внимание, что адрес FirstThunk (вновь добавленной библиотеки) начинается с 001Dxxx, а не с 0012xxx, как в адресе FirstThunk оригинальной библиотеки.

ыфв

Рисунок 5. Исправленная таблица адресов импорта

Затем загружается и выполняется библиотека, выделенная на рисунке 5 (libpushpp.dll). Ее основная задача - открыть один из файлов данных (hm) и загрузить хранящийся в нем шеллкод первой стадии.

e7e216a2557f570eac26e.png

Рисунок 6. Вредоносная библиотека открывает файл данных

Смещение и размер шеллкода первой стадии жестко закодированы в библиотеке DLL.

b6293cd534f7336da4dd2.png

Рисунок 7. Вредоносная библиотека копирует шеллкод первой стадии со смещения 0x37D50; размер шеллкода составляет 0x75A байт

В новой версии шифровальщика Babadeda в память загружается другая DLL-библиотека (mdb.dll, из поддельного установщика VPN), а затем шеллкод первой стадии перезаписывается в жестко закодированный случайно выбранный блок памяти. Обратите внимание, что это изменение является незначительной деталью и не влияет на общую функциональность шеллкода первой стадии.

42a1ecfc56f4062969426.png

Рисунок 8. Легальная библиотека (mdb.dll) загружается в память, а затем в пространство памяти библиотеки копируется шеллкод первой стадии (0x7B5 байт).

В конце шеллкода первой стадии находится конфигурационная таблица, содержащая смещения зашифрованных блоков и их соответствующие размеры. Затем шеллкод первой стадии расшифровывает и объединяет все блоки для формирования шеллкода второй стадии (загрузчика) и основной вредоносной программы (OpcJacker может загружать другие вредоносные модули).

2c57151fa005f03f2cd06.png

Рисунок 9. Таблица конфигурации для шеллкода первой стадии

Таблица конфигурации начинается как минимум с восьми одинаковых символов (красные "*" на рисунке 9, но в других образцах могут использоваться другие символы), далее следует общая длина файла данных (зеленый шрифт; длина hm = 0x1775e0 = 1537504 байт), ключ шифрования (желтый шрифт; 0x18), количество блоков шеллкода фазы 2 (коричневый шрифт; 0x07). Наконец, количество блоков основной вредоносной программы (белый шрифт; 0x08). Список 0x07 (красная рамка) и 0x08 (синяя рамка) соответствует 15 адресам и размерам каждого блока.

В начале файла (hm) мы можем видеть заголовок файла (WAV), поскольку он пытается имитировать формат файла WAVE. Обратите внимание, что файл может быть другого формата и что формат CHM может быть подделан путем имитации.

2346d20c25bcf4e61407d.png

Рисунок 10. Файлы данных, начинающиеся с заголовка WAV

Основной компонент (OpcJacker)
Основной компонент вредоносной программы (OpcJacker) представляет собой интересный вредонос, который сначала расшифровывает и загружает свой конфигурационный файл. Конфигурационный файл отформатирован подобно байткоду, написанному на пользовательском машинном языке, где каждая инструкция разбирается для получения отдельного опкода, а затем выполняются определенные обработчики.

Анализируя пользовательский байткод, мы заметили следующую закономерность:

ASCII-строки кодируются как 01 xx xx xx xx xx <байт строки>; где xx xx xx xx xx - длина строки.

3227e122fcb32be66dc98.png

Строки ASCII, закодированные в конфигурационном файле


Опять же, широкие строки начинаются с байта 02, а двоичные массивы - с байта 03.

c3e2471ced03906707d0f.png

Рисунок 12. Строки UNICODE, закодированные в конфигурационном файле


d8391d75a6ffc21996a22.png

Рисунок 13. Кодированный двоичный массив в конфигурационном файле

Формат конфигурационного файла представляет собой последовательность инструкций, где инструкции начинаются с трех 4-байтовых чисел с малым окончанием (DWORD). Первое число - это счетчик виртуальной программы, второе может быть счетчиком виртуальной программы родительской инструкции, а третье - ID обработчика (код, который будет выполнен в виртуальной машине), за которым следует байт данных или дополнительный ID обработчика.

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

Расшифрованный и декодированный файл конфигурации начинается с инициализации определенных системных переменных, где "test" и "rik", вероятно, являются идентификаторами активности. файл конфигурации, расшифрованный SHA256 c5b499e886d8e86d0d85d0f73bc760516e7476442d3def2feeade417926f04a5, содержит различные ключевые слова "test" и "ilk" в качестве идентификаторов активности. между тем, конфигурационный файл, выпущенный для последней активности в феврале 2023 года (SHA256 565EA7469F9769DD05C925A3F3EF9A2F9756FF1F35FD154107786BFC63703B52) содержит ключевые слова "test_ installs" и "yorik".


12f4610c8a1f04c9d48e5.png

Рисунок 14. Команды инициализации

Затем инициализирует функцию замены буфера обмена (cut).

efdc15ca710837ad3e65b.png

Рисунок 15. Инициализация функции замены буфера обмена (clipper)

Затем переменная "exe" инициализируется байтом исполняемого файла (см. 4d 5a 90 = метка MZ). Этот исполняемый файл является инструментом удаленного доступа.

aa0257593ae500438a688.png

Рисунок 16. Встроенный модуль (формат PE EXE)

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

123d736f7846044cb97dd.png

Рисунок 17. Метод настройки persistence

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

79172246210e0ab90562c.png

Рисунок 18. Функция cutter

Наконец, функция virtual_launch_exe запускает ранее внедренные исполняемые файлы, которые являются RAT(Remove access troyan), либо NetSupport RAT, либо NetSupport RAT downloaders, либо hVNC.

56abb2a024f98cfd2a0fe.png

Рисунок 19. Функции для запуска встроенных исполняемых файлов
Настройка идентификатора обработчика в виртуальной машине

Как видно из третьего столбца (или расшифрованной переменной "command") на предыдущих скриншотах, виртуальная машина реализует ряд внутренних обработчиков. Большинство из них связано с различными операциями с данными. В таблице 1 мы перечислили несколько наиболее заметных обработчиков с конкретной высокоуровневой функциональностью. Функции, реализованные стилером, включают: копирование и вставку (замена содержимого буфера обмена), запись нажатий, выполнение и листинг файлов, убийство процессов, кражу учетных данных Chrome, обнаружение неработающих и обнаружение виртуальных машин. Однако в наших тестовых сценариях мы наблюдали, что стилер в основном просто устанавливает persistence и предоставляет дополнительные модули (инструменты удаленного доступа).

319259bec47c93ebeb3c4.png


f0cd7cbedc8cdbf533dbc.png

Таблица 1. Идентификаторы команд виртуальной машины


1b635662f1ee03a3a01a8.png

Рисунок 20. Команды, связанные с кейлоггером, реализованным в бинарном файле стеганографа; идентификаторы команд также видны на скриншоте (0x835; 0x837; 0x836; 0x839)



Встроенные модули


1) NetSupport RAT

Некоторые встроенные модули включают клиент NetSupport RAT client32.exe (SHA256 18DF68D1581C11130C139FA52ABB74DFD098A9AF698A250645D6A4A65EFCBF2D или SHA256 49A568F8AC11173E3A0D76CFF6BC1D4B9BDF2C35C6D8570177422F142DCFDBE3) file. Однако этого одного файла недостаточно, поскольку инструмент NetSupport требует дополнительных библиотек DLL и файла конфигурации. Обратите внимание, что эти недостающие файлы были закинуты в каталог установки модифицированной программой установки.

Наиболее важный для исследователей файл называется client32.ini, который содержит такие важные настройки, как адрес шлюза, ключ шлюза (GSK) и порт.

fe5da564c8f457fd5514a.png

Рисунок 21. Файл конфигурации для NetSupport RAT
Модуль загрузчика NetSupport RAT

Некоторые встроенные модули содержат загрузчик NetSupport RAT (SHA256 C68096EB0A655924CA840EA1C71F9372AC055F299B52335AD10DDFA835F3633D). Этот загрузчик расшифровывает полезную нагрузку URL-адреса, затем загружает и выполняет ее.

0803e681c6f26fa88c4c1.png

Рисунок 22. Расшифрованный файл конфигурации загрузчика с дополнительными URL-адресами, показанными открытым текстом

Расшифрованная конфигурация содержит два URL, один из которых ведет на архив, содержащий NetSupport RAT, как и в предыдущем модуле, а второй содержит несколько пакетных скриптов, которые отображают информацию, как показано на рисунке 23. Позже один из этих пакетных скриптов загружает дополнительные стеганографы.

2248c6d00831817c6af66.png

Рисунок 23. Фишинговое сообщение, предлагающее жертве подождать установки программы

2) hVNC

Некоторые встроенные модули содержат модифицированный модуль hVNC F772B652176A6E40012969E05D1C75E3C51A8DB44712454975678F04DEDAAA. Этот модуль, помимо стандартного функционала удаленного рабочего стола, содержит поиск следующих криптовалют в Google Chrome, Microsoft Edge и Firefox Примеры процедур на наличие расширений браузера (кошельков):

c48157cbc6f1601022af3.png


4ad5c6603c9487f041b95.png


dd0ddf2bab7af2b6eac8d.png


bcb098ffb8d1694fe863b.png



В образце, который мы проанализировали, командно-контрольная (C&C) связь начинается со следующего:

bf1fa1611519a83aaec60.png

Рисунок 24. Сетевая коммуникации HVNC


Следующий фрагмент показывает, что некоторые значения жестко закодированы в исполняемом файле, другие генерируются MachineGuid или генерируются случайным образом. Обратите внимание на строку "7.7", показанную на рисунке 25, которая может быть модифицированной версией hVNC.

a0a364ed618fd3531a77b.png

Рисунок 25. Код для генерации магического пакета hVNC

Резюме
Использование OpcJacker его операторами, по-видимому, мотивировано финансовой выгодой, поскольку основная цель вредоносной программы - кража криптовалютных средств с кошельков. Однако универсальность OpcJacker также позволяет ему выступать в качестве стилера или загрузчика вредоносного ПО, что означает, что он может использоваться не по первоначальному назначению.

Идентификаторы активности, которые мы обнаружили в наших образцах, такие как "test" и "test_installs", указывают на то, что OpcJacker, возможно, все еще находится на стадии разработки и тестирования. Учитывая уникальный дизайн в сочетании с различными функциями, напоминающими виртуальные машины, эта вредоносная программа может стать популярной среди злоумышленников.
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх