Подмена выдачи и заражение расширений браузеров
В прошлом году мы обнаружили зловред, который устанавливает жертве вредоносное расширение браузера или заражает уже установленное. Для этого он отключает проверку целостности установленных расширений и автоматическое обновление атакуемого браузера. Зловред, детектируемый нами как Trojan.Win32.Razy.gen, представляет собой исполняемый файл и распространяется через блоки партнерских программ, в том числе раздается с бесплатных файловых хостингов под видом легитимного ПО.
Для своих владельцев Razy решает ряд задач, как правило, связанных с кражей криптовалюты. Его основным инструментом является скрипт main.js, который умеет:
- Искать на веб-сайтах адреса криптовалютных кошельков и заменять их на адреса кошельков злоумышленника
- Подменять изображения QR-кодов кошельков
- Модифицировать страницы криптовалютных бирж
- Подменять выдачу поисковых систем «Яндекс» и Google
Заражение
Троянец Razy «работает» с браузерами Google Chrome, Mozilla Firefox и «Яндекс.Браузер», но сценарии заражения для них различаются.
Mozilla Firefox
Для браузера Firefox выполняется установка расширения Firefox Protection c ID {ab10d63e-3096-4492-ab0e-5edcf4baf988} (путь к папке «%APPDATA%\Mozilla\Firefox\Profiles\
Чтобы вредоносное расширение заработало, Razy редактирует файлы:
- «%APPDATA%\Mozilla\Firefox\Profiles\
.default\prefs.js», - «%APPDATA%\Mozilla\Firefox\Profiles\
.default\extensions.json», - «%PROGRAMFILES%\Mozilla Firefox\omni.js».
«Яндекс.Браузер»
Для отключения проверки целостности расширения исправляется файл «%APPDATA%\Yandex\YandexBrowser\Application\
Для отключения обновлений браузера создается ключ реестра «HKEY_LOCAL_MACHINE\SOFTWARE\Policies\YandexBrowser\UpdateAllowed» = 0 (REG_DWORD).
После этого расширение Yandex Protect устанавливается в папку «%APPDATA%\Yandex\YandexBrowser\User Data\Default\Extensions\acgimceffoceigocablmjdpebeodphgc\6.1.6_0». Идентификатор acgimceffoceigocablmjdpebeodphgc соответствует легальному расширению для Chrome под названием Cloudy Calculator, версия 6.1.6_0. Если данное расширение уже установлено у пользователя в «Яндекс.Браузере», оно заменяется на вредоносное Yandex Protect.
Google Chrome
Для отключения проверки целостности расширения Razy исправляет файл «%PROGRAMFILES%\Google\Chrome\Application\
Для отключения обновлений браузера создаются ключи реестра:
- «HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update\AutoUpdateCheckPeriodMinutes» = 0 (REG_DWORD)
- «HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update\DisableAutoUpdateChecksCheckboxValue» = 1 (REG_DWORD)
- «HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update\InstallDefault» = 0 (REG_DWORD)
- «HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update\UpdateDefault» = 0 (REG_DWORD)
Нам встречались случаи заражения различных расширений для Chrome. Среди них хотим выделить расширение Chrome Media Router, являющееся компонентом одноименного сервиса у браузеров на основе Chromium. Оно присутствует у всех пользователей браузера Chrome, хотя и не отображается в списке установленных расширений. В ходе заражения Razy модифицировал содержимое папки, в которой располагалось расширение Chrome Media Router: «%userprofile%\AppData\Local\Google\Chrome\User Data\Default\Extensions\pkedcjkdefgpdelpbcmbmeomcjbeemfm».
Используемые скрипты
Вне зависимости от атакуемого браузера Razy добавлял в папку с вредоносным расширением скрипты, которые нес с собой: bgs.js, extab.js, firebase-app.js, firebase-messaging.js и firebase-messaging-sw.js. Файл manifest.json создавался в той же папке или перезаписывался для обеспечения вызова вставленных скриптов.
Скрипты firebase-app.js, firebase-messaging.js, firebase-messaging-sw.js являются легитимными. Они относятся к платформе Firebase и используются для отправки статистики на Firebase-аккаунт злоумышленника.
Скрипты bgs.js и extab.js являются вредоносными и обфусцированы при помощи инструмента obfuscator.io. Первый отправляет статистику на Firebase-аккаунт; второй скрипт — extab.js — на каждую посещаемую пользователем страницу вставляет вызов скрипта i.js с параметрами tag=
В приведенном примере скрипт i.js раздается с ресурса gigafilesnote[.]com (gigafilesnote[.]com/i.js?tag=
Скрипт i.js модифицирует HTML-страницу, вставляет рекламные баннеры, видеоролики, добавляет рекламные объявления в выдачу поисковой системы Google.
Кульминация заражения — скрипт main.js, вызов которого добавляется на каждую страницу.
Скрипт main.js распространяется с адресов:
- Nolkbacteria[.]info/js/main.js?_=
- 2searea0[.]info/js/main.js?_=
- touristsila1[.]info/js/main.js?_=
- solkoptions[.]host/js/main.js?_=
Скрипт main.js не обфусцирован, и его возможности можно проследить по названиям функций.
На картинке выше приведена функция findAndReplaceWalletAddresses, которая ищет на веб-странице адреса bitcoin- и ethereum-кошельков и заменяет их на адреса кошельков злоумышленника. Примечательно, что срабатывает эта функция практически на всех страницах, за исключением расположенных на доменах Google и «Яндекс», а также на популярных доменах instagram.com, ok.ru и др.
Также подменяются изображения QR-кодов кошельков. Подмена происходит при посещении ресурсов gdax.com, pro.coinbase.com, exmo.*, binance.*, либо при обнаружении на странице элемента с src=’/res/exchangebox/qrcode/’.
Помимо описанного функционала, main.js модифицирует страницы криптовалютных бирж EXMO и YoBit. В код страниц добавляются вызовы скриптов:
/js/exmo-futures.js?_= — при посещении страниц exmo.*/ru/* /js/yobit-futures.js?_= — при посещении страниц yobit.*/ru/*
Данные скрипты показывают пользователю поддельные сообщения с «новыми функциями» соответствующих бирж и предложениями продать свою криптовалюту по цене выше рыночной. По сути пользователя убеждают перевести деньги на кошелек злоумышленника под предлогом выгодной сделки.
Main.js также подменяет выдачу поисковых систем «Яндекс» и Google. На страницы добавляются фальшивые результаты, если поисковый запрос удовлетворяет одному из регулярных выражений:- /(?:^|\s)(gram|телеграм|токен|ton|ico|telegram|btc|биткойн|bitcoin|coinbase|крипта|криптовалюта|,bnrjqy|биржа|бираж)(?:\s|$)/g;
- /(скачать.*музык|музык.*скачать)/g;
- /тор?рент/g.
Таким образом зараженного пользователя заманивают на мошеннические сайты либо на легальные криптовалютные ресурсы, где он обнаружит описанное выше сообщение.
При посещении «Википедии» main.js добавляет к контенту баннер с текстом, призывающим материально поддержать создателей сайта. В качестве реквизитов получателей помощи указаны адреса кошельков злоумышленников. Баннер с соответствующей оригинальной просьбой (при его наличии) удаляется.
При посещении сайта telegram.org пользователя также ожидает предложение купить токены Telegram по невероятно выгодной цене.
На страницы социальной сети Вконтакте добавляется рекламный баннер, при клике по которому (по ссылке на домен ooo-ooo[.]info) пользователь перенаправляется на фишинговые ресурсы, где его убеждают заплатить небольшую сумму денег сейчас, чтобы заработать кучу денег потом.
Индикаторы заражения
Связанные с Razy скрипты детектируются продуктами «Лаборатории Касперского» как HEUR:Trojan.Script.Generic.
Все адреса кошельков, обнаруженные в исследуемых скриптах:
- Bitcoin: ‘1BcJZis6Hu2a7mkcrKxRYxXmz6fMpsAN3L’, ‘1CZVki6tqgu2t4ACk84voVpnGpQZMAVzWq’, ‘3KgyGrCiMRpXTihZWY1yZiXnL46KUBzMEY’, ‘1DgjRqs9SwhyuKe8KSMkE1Jjrs59VZhNyj’, ’35muZpFLAQcxjDFDsMrSVPc8WbTxw3TTMC’, ’34pzTteax2EGvrjw3wNMxaPi6misyaWLeJ’.
- Ethereum: ’33a7305aE6B77f3810364e89821E9B22e6a22d43′, ‘2571B96E2d75b7EC617Fdd83b9e85370E833b3b1′, ’78f7cb5D4750557656f5220A86Bc4FD2C85Ed9a3’.
Сумма входящих транзакций на всех кошельках на момент написания этого текста составляет около 0,14 BTC и 25 ETH.
MD5
Trojan.Win32.Razy.gen
707CA7A72056E397CA9627948125567A
2C274560900BA355EE9B5D35ABC30EF6
BAC320AC63BD289D601441792108A90C
90A83F3B63007D664E6231AA3BC6BD72
66DA07F84661FCB5E659E746B2D7FCCD
Main.js
2C95C42C455C3F6F3BD4DC0853D4CC00
2C22FED85DDA6907EE8A39DD12A230CF
i.js
387CADA4171E705674B9D9B5BF0A859C
67D6CB79955488B709D277DD0B76E6D3
Extab.js
60CB973675C57BDD6B5C5D46EF372475
Bgs.js
F9EF0D18B04DC9E2F9BA07495AE1189C
Вредоносные домены
gigafilesnote[.]com
apiscr[.]com,
happybizpromo[.]com,
archivepoisk-zone[.]info,
archivepoisk[.]info,
nolkbacteria[.]info,
2searea0[.]info,
touristsila1[.]info,
touristsworl[.]xyz,
solkoptions[.]host.
solkoptions[.]site
mirnorea11[.]xyz,
miroreal[.]xyz,
anhubnew[.]info,
kidpassave[.]xyz
Фишинговые домены
ton-ico[.]network
ooo-ooo[.]info
Razy в поисках криптовалюты
Эльмар
Благодарю все доходчиво и внятно расписано