Мы внимательно следим за cтиллером под именем ViperSoftX. О ViperSoftX впервые сообщили в Твиттере в 2020 году и в том же году Fortinet. Некоторые аспекты ViperSoftX также ранее были описаны Колином Коуи (https://www.th3protocol.com/2022/ViperSoftX-Stealer). Однако с тех пор он претерпел очень интенсивное развитие, которое усилилось в течение 2022 года. Постоянная игра авторов вредоносных программ в прятки, в которой они постоянно совершенствуют свои стратегии и методы, чтобы избежать обнаружения, не собирается прекращаться. Поэтому мы решили собрать все воедино, чтобы провести всесторонний анализ.
Этот мульти-стейдж стиллер демонстрирует интересные возможности сокрытия, скрываемые в виде небольших скриптов PowerShell в одной строке посреди невинно выглядящих больших файлов журналов, среди прочих ViperSoftX фокусируется на краже криптовалют, перехвата буфера обмена, снятии отпечатков пальцев зараженной машины, а также на загрузке и выполнении произвольных дополнительных полезных нагрузок или выполнении команд.
Одной из полезных нагрузок, которые распространяет ViperSoftX, является специальный похититель информации в виде браузерного расширения для браузеров на базе Chromium. Из-за его автономных возможностей и уникальности мы решили дать ему собственное имя VenomSoftX. Вредоносное расширение предоставляет полный доступ ко всем страницам, которые посещает жертва, выполняет атаки "человек в браузере" для подмены криптовалютных адресов путем подделки данных запросов API на популярных криптовалютных биржах, крадет учетные данные и содержимое буфера обмена, подделывает криптоадреса на посещенных веб-сайтах, сообщает о событиях с помощью MQTT на C&C-сервер и многое другое.
ViperSoftX в основном распространяется через взломанное программное обеспечение, такое как Adobe Illustrator, Corel Video Studio, Microsoft Office, и т. д., обычно распространяемое через торренты.
Обзор кампании
С начала 2022 года мы защитили более 93 000 наших пользователей. Поскольку вредоносное ПО в основном распространяется через торренты и сайты обмена программным обеспечением, активность ViperSoftX распространяется по всему миру. Наиболее пострадавшими странами являются Индия (7000+), США (6000+) и Италия (5000+).
Прибыль
И ViperSoftX, и VenomSoftX сосредоточены на краже криптовалют с зараженных компьютеров либо путем сканирования локальных файлов, либо с использованием более сложных методов. В таблице ниже мы показываем оценку общего дохода злоумышленников для соответствующих криптовалютных кошельков.
Суммы в кошельках ViperSoftX и VenomSoftX перенаправляют украденные криптовалюты и составляют примерно 130 421,56 долларов США по состоянию на 8 ноября 2022 года. Это только сумма, отправленная на кошельки криптовалюты, и она не включает другую возможную прибыль от других видов деятельности.
Технический анализ
Обзор цепочки заражения
От взломанного программного обеспечения к поддельным логам
Вначале ViperSoftX предоставляется жертвам, когда они загружают то, что они скачали взломанное программное обеспечение. Его обычно называют Activator.exe или Patch.exe. Однако после выполнения жертва заражается ViperSoftX.
Извлечение Activator.exe
Activator.exe на самом деле является загрузчиком, который расшифровывает данные от себя, используя AES в режиме CBC.
Алгоритм расшифровки вычиссляет контрольную сумму следующим образом:
- Читает 4 байта со смещением 0x24 от конца файла, что дает смещение
- Хэширует значение смещения, используя SHA256.
- Читает остальные байты (из -0x20) и сравнивает их с хэшем
Если контрольная сумма верна, смещение указывает на место хранения данных offset+0x24 от конца двоичного файла. Поскольку данные хранятся с конца двоичного файла, смещение также является размером большого двоичного объекта данных. Этот большой двоичный объект можно сразу же расшифровать с помощью жестко запрограммированного ключа, а также IV внутри двоичного файла:
Расшифрованный большой двоичный объект данных представляет собой сериализованную структуру буфера протокола. Шаблон структуры содержит два сообщения protobuf, как показано ниже:
Мы можем использовать этот шаблон для десериализации структуры, открывая пять разных файлов:
- Файл журнала со скрытой дополнительной полезной нагрузкой (см. следующие подразделы)
- XML fileдля планировщика задач
- SyncAppvPublishingServer.vbs(чистый), который используется для создания запланированной задачи для сохранения
- Приложение binary(обычно чистое), которое предполагается взломать
- Manifestфайл
И последнее, но не менее важное: вы можете найти Python-скрипт извлечения в нашем репозитории GitHub .
Анализ файлов
Наиболее интересным файлом является вышеупомянутый "файл журнала", который обычно больше 5 MB по размеру и содержит одну строку вредоносного кода (как правило 17,302, всего несколько строк, но это может варьироваться в разных версиях).
Этот файл журнала обычно называется и хранится как:
C:\Windows\Logs\system-logs.txt
хотя мы видели варианты, в которых те же самые файлы журнала шли под видом "драйвера" или "текстового" файла, например
C:\Windows\System32\Drivers\p4kizn\e12de1ae-2139-45f6-b883-3c58243f23d6.sys
C:\Windows\2ZQ2UoL\5A7C4B54-4404-4424-83DA-CC696BED43D3.txt
Пример такой вредоносной строки можно найти ниже. Как мы увидим позже, эта строка на самом деле содержит скрипт, который декодируется и выполняется.
Вредоносная программа создает запланированную задачу, используя устаревший SyncAppvPublishingServer.vbs скрипт для последующего выполнения этих скрытых скриптов, а также для обеспечения сохранения. Обратите внимание, что номер строки зависит от конфигурации вредоносного ПО, указанной в запланированной задаче.
Скрытые варианты скрипта
До сих пор мы видели два варианта скрытых скриптов, скрывающихся в журналах.
Первый вариант — это простой дроппер, который загружает другую полезную нагрузку с жестко заданного C&C-сервера и выполняет ее. До сих пор мы видели только похититель информации ViperSoftX, загруженный в качестве полезной нагрузки. Мы рассмотрим стилер отдельно в подразделе ниже.
Второй вариант — в виде скрипта PowerShell без кодировки. Этот сценарий состоит из двух частей: первая представляет собой набор функций расшифровки, а вторая представляет собой зашифрованный большой двоичный объект данных.
Скрипт использует AES в режиме CBC для расшифровки полезной нагрузки, похитителя ViperSoftX. Ключ AES передается через командную строку запланированной задачей, созданной Activator.exe. Вы можете найти процесс расшифровки в этом шаблоне CyberChef.
Стиллер ViperSoftX
Когда полезная нагрузка сбрасывается, нам предоставляется обфускация ViperSoftX PowerShell. Мы видели несколько вариантов ViperSoftX, что позволяет предположить, что вредоносное ПО находится в активной разработке. В тексте ниже мы рассмотрим особенности стилера в целом.
Возможности стиллера
Во-первых, давайте посмотрим, что на самом деле может украсть ViperSoftX. ViperSoftX выполняет снятие отпечатков пальцев зараженной машины, сосредотачиваясь на различных типах информации, в том числе:
- Имя компьютера
- Имя пользователя
- Информация об ОС и ее архитектуре
- Установленный антивирус или другое программное обеспечение безопасности и активно ли решение
Вредонос ориентирован на кражу криптовалют. Для этого он ищет типичные места для расширений веб-браузера и локально хранящихся кошельков. Более общая информация, такая как ОС, архитектура и имя пользователя, получается с помощью WMI системных переменных.
ViperSoftX ищет криптовалюты, хранящиеся локально на зараженном устройстве, в программном обеспечении криптовалюты и расширениях браузера, а также отслеживает буфер обмена на наличие адресов криптовалютных кошельков для выполнения замены буфера обмена.
Собранные данные, а также отпечаток пальца затем объединяются в одну строку, закодированную с помощью base64, и отправляются на жестко заданный C&C-сервер в User-Agentзаголовке HTTP. Обратите внимание, что серверы C&C различаются в зависимости от версии:
Каждый раз, когда жертва копирует что-либо в свой буфер обмена, ViperSoftX в фоновом режиме сканирует содержимое, используя предопределенные регулярные выражения. Если выражение совпадает с одним из настроенных адресов кошелька, принадлежащего конкретной криптовалюте, вредоносное ПО подменяет содержимое адресом злоумышленника и отправляет уведомление на C&C-сервер в X-NotifyHTTP заголовке в виде трех значений:
Cryptocurrency type - victim’s address - attacker’s address
Тип криптовалюты отражает, какой тип криптовалюты был сопоставлен, и может быть одним из следующих: BTC, BCH, BNB, ETH, XMR, XRP, DOGE, или DASH.
Вредонос также проверяет тексты заголовков открытых окон ( MainWindowTitleсвойство ) и, если обнаруживает приложение, ориентированное на криптовалюты или финансы, регистрирует его в:
%SystemDrive%\Users\Public\log.dat
Помимо ядра для кражи информации, ViperSoftX также предоставляет функции RAT, такие как выполнение произвольных команд в командной строке, загрузка дополнительной произвольной полезной нагрузки, предоставляемой C&C-сервером, и ее выполнение, а также полное удаление себя из системы. Функционал RAT также можно использовать, например, для кражи криптовалют из мест их нахождения, которые он предварительно идентифицирует и отправляет на C&C-сервер.
Подмена заголовка хоста
Помимо попытки украсть криптовалюту, вредоносное ПО подделывает заголовки хоста, чтобы запутать его связь с командными серверами.
Поддельный заголовок хоста состоит из пяти-десяти строчных букв алфавита, но истинное назначение находится в жестко запрограммированной $meta_host переменной. Таким образом, реальный адрес C&C-сервера замаскирован случайным доменом, которого не существует.
Браузерные расширения VenomSoftX
Более новые версии похитителя информации ViperSoftX способны загружать специальное вредоносное расширение для браузера, Chromium-based browsers установленное на зараженных компьютерах. Расширение предоставляется C&C-сервером. Расширение, по сути, представляет собой еще один автономный похититель информации, мы называем его VenomSoftX, но устанавливается ViperSoftX, как описано ниже. Расширение маскируется под различные популярные расширения браузера, чтобы избежать обнаружения пользователем.
Основной целью VenomSoftX также является кража криптовалюты у ничего не подозревающей жертвы. Разница в том, что VenomSoftX в основном делает это, перехватывая запросы API на нескольких очень популярных криптобиржах, которые посещает жертва или имеет учетную запись. Когда определенный API вызывается, например, для отправки денег, VenomSoftX вмешивается в запрос, прежде чем он будет отправлен, чтобы вместо этого перенаправить деньги злоумышленнику. Хотя в принципе это похоже на то, что делают похитители информации, такие как ViperSoftX, и скорее на обычную замену буфера обмена, этот метод выполняется на более низком уровне, а это означает, что у жертвы практически нет шансов заметить, что деньги переводятся куда-то еще.
Установка расширения
Подход ViperSoftX прост. Вредоносное ПО загружает a VenomSoftX PowerShell installerс C&C-сервера, например, путем base64-декодирования жестко запрограммированных метаданных запроса непосредственно из сценария PowerShell, следующего за запросом к: http://apps-analyser.com/api/v1/<HASH>
зависимости от версии вредоносного ПО. Это может содержать разные полезные нагрузки, но мы сосредоточимся на расширении браузера VenomSoftX.
После загрузки сценария установки с C&C-сервера и его VenomSoftX browser extension извлечения программа установки ищет в нескольких местах файлы .lnk и, если такой файл ссылки принадлежит Chrome, Brave, Opera, или Edge, изменяет файл ссылки с параметром --load-extension=<path_to_the_malicious_extension>. Таким образом, когда пользователь запускает свой любимый браузер, он загружает вместе с ним вредоносное расширение.
Эти места проверяются на наличие файлов ссылок, ведущих к браузерам:
Идентификатор расширения генерируется случайным образом, со случайными символами нижнего регистра для представления папки расширения и случайно сгенерированным номером версии расширения:
Мы наблюдали следующие версии ViperSoftX, содержащие механизм полного обновления. Эти версии могли просматривать измененные .lnk файлы, анализировать manifest.json файл вредоносного расширения, и когда в зараженной системе обнаруживалась более старая версия или более старая метка времени записи расширения, чем то, что было объявлено C&C-сервером, вредоносное ПО запрашивало обновление и замена файлов расширения на новейшую версию с помощью специальной команды (предоставляемой C&C-сервером).
Расширение пытается замаскироваться под хорошо известные и распространенные расширения браузера, такие как Google Sheets. На самом деле VenomSoftX — это еще один похититель информации, развернутый на ничего не подозревающей жертве с полным доступом ко всем веб-сайтам, которые пользователь посещает из зараженного браузера.
Погружение в мутки с javascript
Расширение содержит несколько файлов, как показано в таблице ниже. Каждый файл имеет свое назначение:
Зловред сосредоточен на пяти крупных криптовалютных биржах, что отражено в аббревиатурах в названиях модулей.
В следующих абзацах мы подробно сосредоточимся на том, что делает каждый из модулей.
content.bootstrap.js
Этот модуль является отправной точкой VenomSoftX и загружается при каждом посещении сайта. Он определяет, какие модули загружать, а также отвечает за отправку украденных данных на C&C-сервер.
Скрипты загружаются в зависимости от посещаемого домена. Начальная загрузка проверяет, какой сайт загружается, и если это одно из следующих: Blockchain.com, Binance, CoinBase, Gate.io или Kucoin, модуль загружает соответствующий " webpack". Если пользователь находится на каком-либо другом сайте, webpack_content.js загружается. Модуль webpack_common.js загружается по умолчанию вне зависимости от того, какой сайт посещает жертва.
Все модули служат своей цели. Однако два модуля, webpack_common.js и webpack_block.js, могут отправлять данные обратно на сервер-сборщик, используя Paho MQTT client присутствующий в файле content.bootstrap.js. Клиент MQTT имеет прослушиватель событий, для которого задано жестко заданное значение b8b0becb-080a-46af-9688-e3671fcc4166, указывающее, что данные должны быть отправлены брокеру MQTT для сбора данных:
broker.emqx.io
обратите внимание, что адрес коллектора может различаться в разных версиях.
Отправляемые данные имеют следующую структуру:
Поля time и ip получаются с помощью публичного сервиса (https://worldtimeapi.org/api/ip).
Поле data представляет собой либо содержимое буфера обмена с криптокошельком и другими метаданными, либо украденные учетные данные для blockchain.com. Дополнительные сведения см. в следующих разделах ниже.
webpack_common.js
Модуль "common" загружается на каждый сайт, независимо от того, криптовалютная это биржа или что-то другое. Он используется для определения адресной книги с шаблонами регулярных выражений, которая несколько раз используется для сопоставления криптоадресов в других модулях.
Структура адресной книги имеет форму словаря, где ключом является регулярное выражение, а значением — еще один словарь, содержащий три значения: coin, address, и network. Пример такой адресной книги можно увидеть в приведенном ниже фрагменте.
Кроме того, каждый раз, когда пользователь вставляет что-либо на какой-либо веб-сайт (кроме вредоносного адреса из адресной книги), этот модуль проверяет, соответствует ли содержимое буфера обмена какому-либо из регулярных выражений из адресной книги, и, если они совпадают, он отправляет следующие данные на сервер-сборщик закодирован с использованием base64. Данные для сообщения MQTT имеют следующую конструкцию:
webpack_content.js
Этот модуль отслеживает два элемента ввода для контента, который пользователь заполняет на веб-сайтах, и загружается, когда жертва находится за пределами любого из упомянутых сайтов обмена:
Это делается путем реализации ловушек в геттерах этих элементов, чтобы попытаться найти совместимый криптоадрес для ввода пользователя, и если он найден, вредоносная программа создает новую localStorage запись с комбинацией посещенного сайта и совместимого адреса:
website_attackerAddress: userAddress
Совместимый адрес найден, когда предоставленный адрес соответствует любому из регулярных выражений из адресной книги, описанной в предыдущем разделе.
После этого кастом MutationObserver отслеживает динамические изменения на сайте (например, загрузка страницы, отображение сообщения, отправленного ранее в клиенте мессенджера пользователя и т. д.), и если такое изменение происходит, вредоносное ПО заменяет все упоминания вредоносного адреса (если найдено) с адресом пользователя, используя расширение localStorage. Это эффективно скрывает все следы вредоносного адреса в теле веб-сайта.
Обратите внимание, что, поскольку информация хранится непосредственно в постоянном файле localStorage, функциональность сохраняется после перезапуска браузера, перезагрузки ПК или повторного посещения страницы в любое время в будущем. Жертва должна очистить пользовательские данные в своем браузере или полностью удалить вредоносное расширение, чтобы избавиться от вредоносного поведения.
Ради демонстрации этого поведения мы решили создать demo PoC простую страницу, иллюстрирующую весь процесс подделки контента во время активности вредоносного ПО:
1. Первые две кнопки Attacker address и User address, заполняют адрес злоумышленника или адрес пользователя в Dynamic content to be pastedстроку " " на веб-странице.
2. Кнопка "Get value" запускает геттер, но хук неактивен, так как предоставленный адрес не соответствует шаблону адреса криптокошелька (он слишком короткий)
3. Пользователь заполняет compatible address
4. Кнопка "Get value" создает localStorage запись с введенным адресом
5.Адрес злоумышленника всегда заменяется адресом из localStorage
Слив аккаунтов жертвы
Как мы уже упоминали, VenomSoftX фокусируется на пяти различных криптовалютных биржах/веб-сайтах, а именно на Blockchain.com, Binance, Coinbase, Gate.ioи Kucoin.
В этих модулях вредоносное ПО пытается подделать запросы API, которые сайты используют для нескольких действий, таких как снятие денег или отправка кодов безопасности. Это делается путем создания ловушек для вызовов API (точнее, функций, отвечающих за отправку этих запросов), анализа их структуры и замены тела ответа желаемым содержимым злоумышленника — обычно это означает, что адрес получателя также заменяется адресом злоумышленника. Поскольку сумма устанавливается равной доступному балансу счета, если он известен, то запрос обрабатывается вредоносным ПО, и пользователь ничего не замечает, в результате чего кошелек жертвы полностью опустошается.
Обратите внимание, что у пользователя практически нет шансов заметить это. Например, по сравнению с довольно распространенным обменом буфера обмена, этот "обмен" выполняется на более низком уровне. Поскольку транзакции в цепочках блоков/регистрах по своей сути необратимы, когда пользователь проверяет историю транзакций платежей позже, уже слишком поздно.
Единственный файл, который отличается от остальных, это webpack_block.js. Этот модуль фокусируется на www.blockchain.com и пытается перехватить файлы https://blockchain.info/wallet. Он также изменяет геттер поля пароля для кражи введенных паролей. После отправки запроса к конечной точке API адрес кошелька извлекается из запроса, связывается с паролем и отправляется коллектору в виде JSON с кодировкой base64 через MQTT.
Поскольку остальные хуки одинаковы на более высоком уровне, если мы игнорируем различия API, мы будем использовать модуль Binance в качестве примера.
Модуль Binance распознает шесть различных вызовов API, вызывающих вредоносные взаимодействия. Когда пользователь входит на сайт, ожидается, что в какой-то момент
будет вызвана функция API. Затем VenomSoftX анализирует и сохраняет все активы, доступные в учетной записи жертвы. Когда пользователь пытается манипулировать своими сбережениями, например снять деньги, вредоносная программа перехватывает запрос
и подделывает тело запроса, изменяя адрес, чтобы перенаправить деньги на адрес злоумышленника, если был найден совместимый адрес злоумышленника. Сумма запроса также устанавливается равной максимальной доступной сумме, полученной на предыдущем шаге. После фальсификации запрос передается дальше, как будто ничего не произошло, эффективно опустошая кошелек жертвы.
Заключение
В этой статье мы более подробно рассмотрели ViperSoftX, давний похититель информации, и его вредоносное расширение для браузера VenomSoftX. Мы описали как цепочки заражения похитителей информации, так и то, как исходная полезная нагрузка скрывается и расшифровывается в зараженной системе.
Мы описали, что крадут как ViperSoftX, так и VenomSoftX, и как расширение браузера использует свой полный доступ к каждой странице, которую посещает жертва, и выполняет атаки "человек в браузере", незаметно подделывая API-запросы, используемые популярными биржами криптовалюты, что приводит к истощению счета потерпевшего.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://decoded.avast.io/janrubin/vipersoftx-hiding-in-system-logs-and-spreading-venomsoftx/
Этот мульти-стейдж стиллер демонстрирует интересные возможности сокрытия, скрываемые в виде небольших скриптов PowerShell в одной строке посреди невинно выглядящих больших файлов журналов, среди прочих ViperSoftX фокусируется на краже криптовалют, перехвата буфера обмена, снятии отпечатков пальцев зараженной машины, а также на загрузке и выполнении произвольных дополнительных полезных нагрузок или выполнении команд.
Одной из полезных нагрузок, которые распространяет ViperSoftX, является специальный похититель информации в виде браузерного расширения для браузеров на базе Chromium. Из-за его автономных возможностей и уникальности мы решили дать ему собственное имя VenomSoftX. Вредоносное расширение предоставляет полный доступ ко всем страницам, которые посещает жертва, выполняет атаки "человек в браузере" для подмены криптовалютных адресов путем подделки данных запросов API на популярных криптовалютных биржах, крадет учетные данные и содержимое буфера обмена, подделывает криптоадреса на посещенных веб-сайтах, сообщает о событиях с помощью MQTT на C&C-сервер и многое другое.
ViperSoftX в основном распространяется через взломанное программное обеспечение, такое как Adobe Illustrator, Corel Video Studio, Microsoft Office, и т. д., обычно распространяемое через торренты.
Обзор кампании
С начала 2022 года мы защитили более 93 000 наших пользователей. Поскольку вредоносное ПО в основном распространяется через торренты и сайты обмена программным обеспечением, активность ViperSoftX распространяется по всему миру. Наиболее пострадавшими странами являются Индия (7000+), США (6000+) и Италия (5000+).
Прибыль
И ViperSoftX, и VenomSoftX сосредоточены на краже криптовалют с зараженных компьютеров либо путем сканирования локальных файлов, либо с использованием более сложных методов. В таблице ниже мы показываем оценку общего дохода злоумышленников для соответствующих криптовалютных кошельков.
Суммы в кошельках ViperSoftX и VenomSoftX перенаправляют украденные криптовалюты и составляют примерно 130 421,56 долларов США по состоянию на 8 ноября 2022 года. Это только сумма, отправленная на кошельки криптовалюты, и она не включает другую возможную прибыль от других видов деятельности.
Технический анализ
Обзор цепочки заражения
От взломанного программного обеспечения к поддельным логам
Вначале ViperSoftX предоставляется жертвам, когда они загружают то, что они скачали взломанное программное обеспечение. Его обычно называют Activator.exe или Patch.exe. Однако после выполнения жертва заражается ViperSoftX.
Извлечение Activator.exe
Activator.exe на самом деле является загрузчиком, который расшифровывает данные от себя, используя AES в режиме CBC.
Алгоритм расшифровки вычиссляет контрольную сумму следующим образом:
- Читает 4 байта со смещением 0x24 от конца файла, что дает смещение
- Хэширует значение смещения, используя SHA256.
- Читает остальные байты (из -0x20) и сравнивает их с хэшем
Если контрольная сумма верна, смещение указывает на место хранения данных offset+0x24 от конца двоичного файла. Поскольку данные хранятся с конца двоичного файла, смещение также является размером большого двоичного объекта данных. Этот большой двоичный объект можно сразу же расшифровать с помощью жестко запрограммированного ключа, а также IV внутри двоичного файла:
Расшифрованный большой двоичный объект данных представляет собой сериализованную структуру буфера протокола. Шаблон структуры содержит два сообщения protobuf, как показано ниже:
Мы можем использовать этот шаблон для десериализации структуры, открывая пять разных файлов:
- Файл журнала со скрытой дополнительной полезной нагрузкой (см. следующие подразделы)
- XML fileдля планировщика задач
- SyncAppvPublishingServer.vbs(чистый), который используется для создания запланированной задачи для сохранения
- Приложение binary(обычно чистое), которое предполагается взломать
- Manifestфайл
И последнее, но не менее важное: вы можете найти Python-скрипт извлечения в нашем репозитории GitHub .
Анализ файлов
Наиболее интересным файлом является вышеупомянутый "файл журнала", который обычно больше 5 MB по размеру и содержит одну строку вредоносного кода (как правило 17,302, всего несколько строк, но это может варьироваться в разных версиях).
Этот файл журнала обычно называется и хранится как:
C:\Windows\Logs\system-logs.txt
хотя мы видели варианты, в которых те же самые файлы журнала шли под видом "драйвера" или "текстового" файла, например
C:\Windows\System32\Drivers\p4kizn\e12de1ae-2139-45f6-b883-3c58243f23d6.sys
C:\Windows\2ZQ2UoL\5A7C4B54-4404-4424-83DA-CC696BED43D3.txt
Пример такой вредоносной строки можно найти ниже. Как мы увидим позже, эта строка на самом деле содержит скрипт, который декодируется и выполняется.
Вредоносная программа создает запланированную задачу, используя устаревший SyncAppvPublishingServer.vbs скрипт для последующего выполнения этих скрытых скриптов, а также для обеспечения сохранения. Обратите внимание, что номер строки зависит от конфигурации вредоносного ПО, указанной в запланированной задаче.
Скрытые варианты скрипта
До сих пор мы видели два варианта скрытых скриптов, скрывающихся в журналах.
Первый вариант — это простой дроппер, который загружает другую полезную нагрузку с жестко заданного C&C-сервера и выполняет ее. До сих пор мы видели только похититель информации ViperSoftX, загруженный в качестве полезной нагрузки. Мы рассмотрим стилер отдельно в подразделе ниже.
Второй вариант — в виде скрипта PowerShell без кодировки. Этот сценарий состоит из двух частей: первая представляет собой набор функций расшифровки, а вторая представляет собой зашифрованный большой двоичный объект данных.
Скрипт использует AES в режиме CBC для расшифровки полезной нагрузки, похитителя ViperSoftX. Ключ AES передается через командную строку запланированной задачей, созданной Activator.exe. Вы можете найти процесс расшифровки в этом шаблоне CyberChef.
Стиллер ViperSoftX
Когда полезная нагрузка сбрасывается, нам предоставляется обфускация ViperSoftX PowerShell. Мы видели несколько вариантов ViperSoftX, что позволяет предположить, что вредоносное ПО находится в активной разработке. В тексте ниже мы рассмотрим особенности стилера в целом.
Возможности стиллера
Во-первых, давайте посмотрим, что на самом деле может украсть ViperSoftX. ViperSoftX выполняет снятие отпечатков пальцев зараженной машины, сосредотачиваясь на различных типах информации, в том числе:
- Имя компьютера
- Имя пользователя
- Информация об ОС и ее архитектуре
- Установленный антивирус или другое программное обеспечение безопасности и активно ли решение
Вредонос ориентирован на кражу криптовалют. Для этого он ищет типичные места для расширений веб-браузера и локально хранящихся кошельков. Более общая информация, такая как ОС, архитектура и имя пользователя, получается с помощью WMI системных переменных.
ViperSoftX ищет криптовалюты, хранящиеся локально на зараженном устройстве, в программном обеспечении криптовалюты и расширениях браузера, а также отслеживает буфер обмена на наличие адресов криптовалютных кошельков для выполнения замены буфера обмена.
Собранные данные, а также отпечаток пальца затем объединяются в одну строку, закодированную с помощью base64, и отправляются на жестко заданный C&C-сервер в User-Agentзаголовке HTTP. Обратите внимание, что серверы C&C различаются в зависимости от версии:
Каждый раз, когда жертва копирует что-либо в свой буфер обмена, ViperSoftX в фоновом режиме сканирует содержимое, используя предопределенные регулярные выражения. Если выражение совпадает с одним из настроенных адресов кошелька, принадлежащего конкретной криптовалюте, вредоносное ПО подменяет содержимое адресом злоумышленника и отправляет уведомление на C&C-сервер в X-NotifyHTTP заголовке в виде трех значений:
Cryptocurrency type - victim’s address - attacker’s address
Тип криптовалюты отражает, какой тип криптовалюты был сопоставлен, и может быть одним из следующих: BTC, BCH, BNB, ETH, XMR, XRP, DOGE, или DASH.
Вредонос также проверяет тексты заголовков открытых окон ( MainWindowTitleсвойство ) и, если обнаруживает приложение, ориентированное на криптовалюты или финансы, регистрирует его в:
%SystemDrive%\Users\Public\log.dat
Помимо ядра для кражи информации, ViperSoftX также предоставляет функции RAT, такие как выполнение произвольных команд в командной строке, загрузка дополнительной произвольной полезной нагрузки, предоставляемой C&C-сервером, и ее выполнение, а также полное удаление себя из системы. Функционал RAT также можно использовать, например, для кражи криптовалют из мест их нахождения, которые он предварительно идентифицирует и отправляет на C&C-сервер.
Подмена заголовка хоста
Помимо попытки украсть криптовалюту, вредоносное ПО подделывает заголовки хоста, чтобы запутать его связь с командными серверами.
Поддельный заголовок хоста состоит из пяти-десяти строчных букв алфавита, но истинное назначение находится в жестко запрограммированной $meta_host переменной. Таким образом, реальный адрес C&C-сервера замаскирован случайным доменом, которого не существует.
Браузерные расширения VenomSoftX
Более новые версии похитителя информации ViperSoftX способны загружать специальное вредоносное расширение для браузера, Chromium-based browsers установленное на зараженных компьютерах. Расширение предоставляется C&C-сервером. Расширение, по сути, представляет собой еще один автономный похититель информации, мы называем его VenomSoftX, но устанавливается ViperSoftX, как описано ниже. Расширение маскируется под различные популярные расширения браузера, чтобы избежать обнаружения пользователем.
Основной целью VenomSoftX также является кража криптовалюты у ничего не подозревающей жертвы. Разница в том, что VenomSoftX в основном делает это, перехватывая запросы API на нескольких очень популярных криптобиржах, которые посещает жертва или имеет учетную запись. Когда определенный API вызывается, например, для отправки денег, VenomSoftX вмешивается в запрос, прежде чем он будет отправлен, чтобы вместо этого перенаправить деньги злоумышленнику. Хотя в принципе это похоже на то, что делают похитители информации, такие как ViperSoftX, и скорее на обычную замену буфера обмена, этот метод выполняется на более низком уровне, а это означает, что у жертвы практически нет шансов заметить, что деньги переводятся куда-то еще.
Установка расширения
Подход ViperSoftX прост. Вредоносное ПО загружает a VenomSoftX PowerShell installerс C&C-сервера, например, путем base64-декодирования жестко запрограммированных метаданных запроса непосредственно из сценария PowerShell, следующего за запросом к: http://apps-analyser.com/api/v1/<HASH>
зависимости от версии вредоносного ПО. Это может содержать разные полезные нагрузки, но мы сосредоточимся на расширении браузера VenomSoftX.
После загрузки сценария установки с C&C-сервера и его VenomSoftX browser extension извлечения программа установки ищет в нескольких местах файлы .lnk и, если такой файл ссылки принадлежит Chrome, Brave, Opera, или Edge, изменяет файл ссылки с параметром --load-extension=<path_to_the_malicious_extension>. Таким образом, когда пользователь запускает свой любимый браузер, он загружает вместе с ним вредоносное расширение.
Эти места проверяются на наличие файлов ссылок, ведущих к браузерам:
Идентификатор расширения генерируется случайным образом, со случайными символами нижнего регистра для представления папки расширения и случайно сгенерированным номером версии расширения:
Мы наблюдали следующие версии ViperSoftX, содержащие механизм полного обновления. Эти версии могли просматривать измененные .lnk файлы, анализировать manifest.json файл вредоносного расширения, и когда в зараженной системе обнаруживалась более старая версия или более старая метка времени записи расширения, чем то, что было объявлено C&C-сервером, вредоносное ПО запрашивало обновление и замена файлов расширения на новейшую версию с помощью специальной команды (предоставляемой C&C-сервером).
Расширение пытается замаскироваться под хорошо известные и распространенные расширения браузера, такие как Google Sheets. На самом деле VenomSoftX — это еще один похититель информации, развернутый на ничего не подозревающей жертве с полным доступом ко всем веб-сайтам, которые пользователь посещает из зараженного браузера.
Погружение в мутки с javascript
Расширение содержит несколько файлов, как показано в таблице ниже. Каждый файл имеет свое назначение:
| Имя файла | Цель |
| 128.png | Значок Google Sheets для маскировки расширения |
| контент.bootstrap.js | Организует вредоносную активность, отправляет результаты с помощью MQTT |
| manifest.json | Файл манифеста расширения |
| правила.json | Правила фильтрации URL для Kucoin |
| webpack_block.js | Запрошивает фальсификацию и кражу учетных данных на Blockchain.com |
| webpack_bnb.js | Запрошивает взлом и кражу криптовалюты на Binance |
| webpack_cb.js | Запрошиваетвзлом и кражу криптовалюты на Coinbase |
| webpack_common.js | Содержит адресную книгу для сопоставления с образцом, мониторинга буфера обмена и кражи |
| webpack_content.js | При отсутствии обмена – адреса злоумышленника на посещаемых сайтах заменяются на те, которые жертва ввела ранее |
| webpack_gt.js | Запрошивает взлом и кражу криптовалюты на Gate.io |
| webpack_kuc.js | Запрошивает взлом и кражу криптовалюты на Kucoin |
Зловред сосредоточен на пяти крупных криптовалютных биржах, что отражено в аббревиатурах в названиях модулей.
В следующих абзацах мы подробно сосредоточимся на том, что делает каждый из модулей.
content.bootstrap.js
Этот модуль является отправной точкой VenomSoftX и загружается при каждом посещении сайта. Он определяет, какие модули загружать, а также отвечает за отправку украденных данных на C&C-сервер.
Скрипты загружаются в зависимости от посещаемого домена. Начальная загрузка проверяет, какой сайт загружается, и если это одно из следующих: Blockchain.com, Binance, CoinBase, Gate.io или Kucoin, модуль загружает соответствующий " webpack". Если пользователь находится на каком-либо другом сайте, webpack_content.js загружается. Модуль webpack_common.js загружается по умолчанию вне зависимости от того, какой сайт посещает жертва.
Все модули служат своей цели. Однако два модуля, webpack_common.js и webpack_block.js, могут отправлять данные обратно на сервер-сборщик, используя Paho MQTT client присутствующий в файле content.bootstrap.js. Клиент MQTT имеет прослушиватель событий, для которого задано жестко заданное значение b8b0becb-080a-46af-9688-e3671fcc4166, указывающее, что данные должны быть отправлены брокеру MQTT для сбора данных:
broker.emqx.io
обратите внимание, что адрес коллектора может различаться в разных версиях.
Отправляемые данные имеют следующую структуру:
Поля time и ip получаются с помощью публичного сервиса (https://worldtimeapi.org/api/ip).
Поле data представляет собой либо содержимое буфера обмена с криптокошельком и другими метаданными, либо украденные учетные данные для blockchain.com. Дополнительные сведения см. в следующих разделах ниже.
webpack_common.js
Модуль "common" загружается на каждый сайт, независимо от того, криптовалютная это биржа или что-то другое. Он используется для определения адресной книги с шаблонами регулярных выражений, которая несколько раз используется для сопоставления криптоадресов в других модулях.
Структура адресной книги имеет форму словаря, где ключом является регулярное выражение, а значением — еще один словарь, содержащий три значения: coin, address, и network. Пример такой адресной книги можно увидеть в приведенном ниже фрагменте.
Кроме того, каждый раз, когда пользователь вставляет что-либо на какой-либо веб-сайт (кроме вредоносного адреса из адресной книги), этот модуль проверяет, соответствует ли содержимое буфера обмена какому-либо из регулярных выражений из адресной книги, и, если они совпадают, он отправляет следующие данные на сервер-сборщик закодирован с использованием base64. Данные для сообщения MQTT имеют следующую конструкцию:
webpack_content.js
Этот модуль отслеживает два элемента ввода для контента, который пользователь заполняет на веб-сайтах, и загружается, когда жертва находится за пределами любого из упомянутых сайтов обмена:
Это делается путем реализации ловушек в геттерах этих элементов, чтобы попытаться найти совместимый криптоадрес для ввода пользователя, и если он найден, вредоносная программа создает новую localStorage запись с комбинацией посещенного сайта и совместимого адреса:
website_attackerAddress: userAddress
Совместимый адрес найден, когда предоставленный адрес соответствует любому из регулярных выражений из адресной книги, описанной в предыдущем разделе.
После этого кастом MutationObserver отслеживает динамические изменения на сайте (например, загрузка страницы, отображение сообщения, отправленного ранее в клиенте мессенджера пользователя и т. д.), и если такое изменение происходит, вредоносное ПО заменяет все упоминания вредоносного адреса (если найдено) с адресом пользователя, используя расширение localStorage. Это эффективно скрывает все следы вредоносного адреса в теле веб-сайта.
Обратите внимание, что, поскольку информация хранится непосредственно в постоянном файле localStorage, функциональность сохраняется после перезапуска браузера, перезагрузки ПК или повторного посещения страницы в любое время в будущем. Жертва должна очистить пользовательские данные в своем браузере или полностью удалить вредоносное расширение, чтобы избавиться от вредоносного поведения.
Ради демонстрации этого поведения мы решили создать demo PoC простую страницу, иллюстрирующую весь процесс подделки контента во время активности вредоносного ПО:
1. Первые две кнопки Attacker address и User address, заполняют адрес злоумышленника или адрес пользователя в Dynamic content to be pastedстроку " " на веб-странице.
2. Кнопка "Get value" запускает геттер, но хук неактивен, так как предоставленный адрес не соответствует шаблону адреса криптокошелька (он слишком короткий)
3. Пользователь заполняет compatible address
4. Кнопка "Get value" создает localStorage запись с введенным адресом
5.Адрес злоумышленника всегда заменяется адресом из localStorage
Слив аккаунтов жертвы
Как мы уже упоминали, VenomSoftX фокусируется на пяти различных криптовалютных биржах/веб-сайтах, а именно на Blockchain.com, Binance, Coinbase, Gate.ioи Kucoin.
В этих модулях вредоносное ПО пытается подделать запросы API, которые сайты используют для нескольких действий, таких как снятие денег или отправка кодов безопасности. Это делается путем создания ловушек для вызовов API (точнее, функций, отвечающих за отправку этих запросов), анализа их структуры и замены тела ответа желаемым содержимым злоумышленника — обычно это означает, что адрес получателя также заменяется адресом злоумышленника. Поскольку сумма устанавливается равной доступному балансу счета, если он известен, то запрос обрабатывается вредоносным ПО, и пользователь ничего не замечает, в результате чего кошелек жертвы полностью опустошается.
Обратите внимание, что у пользователя практически нет шансов заметить это. Например, по сравнению с довольно распространенным обменом буфера обмена, этот "обмен" выполняется на более низком уровне. Поскольку транзакции в цепочках блоков/регистрах по своей сути необратимы, когда пользователь проверяет историю транзакций платежей позже, уже слишком поздно.
Единственный файл, который отличается от остальных, это webpack_block.js. Этот модуль фокусируется на www.blockchain.com и пытается перехватить файлы https://blockchain.info/wallet. Он также изменяет геттер поля пароля для кражи введенных паролей. После отправки запроса к конечной точке API адрес кошелька извлекается из запроса, связывается с паролем и отправляется коллектору в виде JSON с кодировкой base64 через MQTT.
Поскольку остальные хуки одинаковы на более высоком уровне, если мы игнорируем различия API, мы будем использовать модуль Binance в качестве примера.
Модуль Binance распознает шесть различных вызовов API, вызывающих вредоносные взаимодействия. Когда пользователь входит на сайт, ожидается, что в какой-то момент
будет вызвана функция API. Затем VenomSoftX анализирует и сохраняет все активы, доступные в учетной записи жертвы. Когда пользователь пытается манипулировать своими сбережениями, например снять деньги, вредоносная программа перехватывает запрос
и подделывает тело запроса, изменяя адрес, чтобы перенаправить деньги на адрес злоумышленника, если был найден совместимый адрес злоумышленника. Сумма запроса также устанавливается равной максимальной доступной сумме, полученной на предыдущем шаге. После фальсификации запрос передается дальше, как будто ничего не произошло, эффективно опустошая кошелек жертвы.
Заключение
В этой статье мы более подробно рассмотрели ViperSoftX, давний похититель информации, и его вредоносное расширение для браузера VenomSoftX. Мы описали как цепочки заражения похитителей информации, так и то, как исходная полезная нагрузка скрывается и расшифровывается в зараженной системе.
Мы описали, что крадут как ViperSoftX, так и VenomSoftX, и как расширение браузера использует свой полный доступ к каждой странице, которую посещает жертва, и выполняет атаки "человек в браузере", незаметно подделывая API-запросы, используемые популярными биржами криптовалюты, что приводит к истощению счета потерпевшего.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://decoded.avast.io/janrubin/vipersoftx-hiding-in-system-logs-and-spreading-venomsoftx/