安全分析:Razy恶意软件攻击,窃取加密货币
摘要: 研究人员在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%\Mozilla\Firefox\Profiles\.default\Extensions\{ab10d63e-3096-4492-ab0e-5edcf4baf988}”)。
恶意扩展开始工作后, Razy会编辑以下文件:
· “%APPDATA%\Mozilla\Firefox\Profiles\.default\prefs.js”,
· “%APPDATA%\Mozilla\Firefox\Profiles\.default\extensions.json”,
· “%PROGRAMFILES%\Mozilla Firefox\omni.js”.
Yandex 浏览器
木马会编辑%APPDATA%\Yandex\YandexBrowser\Application\\browser.dll来关闭扩展的完整性检查。然后重命名原始文件为browser.dll_,然后将其放在同一文件夹内。
木马会创建注册表‘HKEY_LOCAL_MACHINE\SOFTWARE\Policies\YandexBrowser\UpdateAllowed” = 0 (REG_DWORD)来关闭浏览器更新。
然后,安装扩展Yandex Protect到文件夹%APPDATA%\Yandex\YandexBrowser\User Data\Default\Extensions\acgimceffoceigocablmjdpebeodphgc\6.1.6_0。ID acgimceffoceigocablmjdpebeodphgc对应的合法扩展为Cloudy Calculator, 版本号为6.1.6_0。如果Yandex浏览器已经安装了该扩展,就会被替换为恶意的Yandex Protect。
Google Chrome
Razy会编辑文件%PROGRAMFILES%\Google\Chrome\Application\\chrome.dll来关闭扩展的完整性检查。然后将原来的chrome.dll文件重命名为chrome.dll_。
然后创建以下注册表来关闭浏览器更新:
“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,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来确保这些脚本得到调用。
原始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的钓鱼资源,之后会弹出让用户支付少量钱来获取大量贷款的信息。
(作者:曲速未来安全区,内容来自链得得内容开放平台“得得号”;本文仅代表作者观点,不代表链得得官方立场)
评论(0)
Oh! no
您是否确认要删除该条评论吗?