摘要: 研究人员在2018年发现一个在受害者计算机中安装恶意浏览器扩展或感染已安装的扩展的恶意软件。
恶意软件可以关闭已安装的扩展的完整性检查,并为目标浏览器自动更新。安全产品检测到该恶意软件为Razy,通过恶意广告拦截模块进行传播,并伪装成合法软件在免费文件主机服务上进行分发。
Razy的目的有很多,主要是与窃取加密货币相关。其主要工具是main.js脚本,可以:
· 搜索 站上的加密货币钱包的地址,并将其替换为攻击者的钱包地址;
· 伪造指向钱包的二维码图片;
· 修改加密货币交易页面;
· 欺骗Google和Yandex搜索结构。
感染
Razy木马工作在Google Chrome, Mozilla Firefox和Yandex浏览器上,对不同的浏览器有不同的感染场景。
Mozilla Firefox
对Firefox,Razy会安装一个名为Firefox Protection的扩展,ID为{
ab10d63e-3096-4492-ab0e-5edcf4baf988} (文件夹路径为:“%APPDATA%MozillaFirefoxProfiles.defaultExtensions{
ab10d63e-3096-4492-ab0e-5edcf4baf988}”)。
· “%APPDATA%MozillaFirefoxProfiles.defaultprefs.js”,
· “%APPDATA%MozillaFirefoxProfiles.defaultextensions.json”,
· “%PROGRAMFILES%Mozilla Firefoxomni.js”.
Yandex 浏览器
木马会创建注册表‘HKEY_LOCAL_MACHINESOFTWAREPoliciesYandexBrowserUpdateAllowed” = 0 (REG_DWORD)来关闭浏览器更新。
然后,安装扩展Yandex Protect到文件夹%APPDATA%YandexYandexBrowserUser DataDefaultExtensions
acgimceffoceigocablmjdpebeodphgc6.1.6_0。ID
acgimceffoceigocablmjdpebeodphgc对应的合法扩展为Cloudy Calculator, 版本 为6.1.6_0。如果Yandex浏览器已经安装了该扩展,就会被替换为恶意的Yandex Protect。
Google Chrome
然后创建以下注册表来关闭浏览器更新:
“HKEY_LOCAL_MACHINESOFTWAREPoliciesGoogleUpdateAutoUpdateCheckPeriodMinutes” = 0 (REG_DWORD)
“HKEY_LOCAL_MACHINESOFTWAREPoliciesGoogleUpdateDisableAutoUpdateChecksCheckboxValue” = 1 (REG_DWORD)
“HKEY_LOCAL_MACHINESOFTWAREPoliciesGoogleUpdateInstallDefault” = 0 (REG_DWORD)
“HKEY_LOCAL_MACHINESOFTWAREPoliciesGoogleUpdateUpdateDefault” = 0 (REG_DWORD)
研究人员遇到很多种不同的Chrome扩展被感染的情况。其中一个是Chrome Media Router,Chrome Media Router是基于Chromium的浏览器的服务的组件。在所有的Chrome浏览器中都安装了,但是在已安装扩展中没有显示。在感染过程中,Razy会修改Chrome Media Router扩展所在的文件夹的内容:
‘%userprofile%AppDataLocalGoogleChromeUser DataDefaultExtensionspkedcjkdefgpdelpbcmbmeomcjbeemfm’.
使用的脚本
无论是哪种目标浏览器类型,Razy会添加下面的脚本到含有恶意脚本的文件夹中:bgs.js, extab.js, firebase-app.js, firebase-messaging.js和firebase-messaging-sw.js。在同一文件夹中创建或覆写文件manifest.json来确保这些脚本得到调用。
原始Chrome Media Router扩展(左)和修改后的Chrome Media Router扩展(右)
脚本firebase-app.js, firebase-messaging.js和firebase-messaging-sw.js都是合法文件。属于Firebase平台,用来发送统计数据到恶意攻击者的Firebase账 。
脚本bgs.js和extab.js都是恶意文件,使用工具obfuscator.io进行了混淆。第一个脚本会发送统计数据到Firebase账 ,第二个脚本会在脚本 i.js的调用中加入参数
tag=&did=&v_tag=&k_tag=。
脚本 i.js会修改HTML页面,插入广告和视频片段,以及Google的搜索结果。
感染主要是通过main.js完成的,对脚本的调用会加入到用户访问的每个页面中。
插入脚本main.js到web页面的i.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和yandex域名外的其他几乎所有页面都可以工作,甚至包括 instagram.com和ok.ru。
指向钱包地址的二维码也可能会被替换。当用户访问web页gdax.com, pro.coinbase.com, exmo.*, binance.* 或页面中含有src=’/res/exchangebox/qrcode/’元素时,就会发生替换。
除了上面描述的函数外,main.js会修改加密货币交易所EXMO和YoBit的web页面。调用以下脚本加入到页面的二维码中:
· /js/exmo-futures.js?_= – when exmo.*/ru/* pages are visited
· /js/yobit-futures.js?_= – when yobit.*/ru/* pages are visited
当域名是nolkbacteria[.]info, 2searea0[.]info, touristsila1[.]info, archivepoisk-zone[.]info时。
这些脚本会展示给用户关于对应的交易所的新特征,并提供以市场利率出售加密货币的服务。换句话说,用户会被说服将钱转入攻击者的钱包里。
EXMO交易 站上的垃圾消息示例
Main.js还会欺骗Google和Yandex的搜索结果。如果搜索请求其连接到加密货币或者加密货币交易 站,页面中就会显示伪造的搜索结果:
· /(?:^|s)(gram|телеграм|токен|ton|ico|telegram|btc|биткойн|bitcoin|coinbase|крипта|криптовалюта|,bnrjqy|биржа|бираж)(?:s|$)/g;
· /(скачать.*музык|музык.*скачать)/g;
· /тор?рент/g;
这就是为什么受感染的用户会访问受感染的 站或合法的加密货币主题的 站:
Google搜索结果被感染的扩展修改
当用户访问Wikipedia时,main.js也会加入含有支持该 站的广告框。而原来的donation请求会被删除。
要求支持Wikipedia的伪造广告栏
当用户访问telegram.org官 时,也会看到以极低的价格购买Telegram tokens的信息:
受感染的扩展从钓鱼web资源ton-ico[.]network加载telegram.org站点内容
telegram.org上的恶意广告
当用户访问俄罗斯 交 络Vkontakte (VK)时,木马也会加入广告栏。如果用户点击,就会被重定向到位于域名ooo-ooo[.]info的钓鱼资源,之后会弹出让用户支付少量钱来获取大量贷款的信息。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!