Chrome恶意扩展插件——MitM

阅读量    273558 |

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

浏览器插件的出现,让我们的生活变得更加轻松:它们为我们隐藏碍眼的广告,替我们翻译文本,帮助我们在网上商店中比较商品等。但也存在一些不太让人满意的插件,比如那些对我们进行广告轰炸,或者收集我们活动信息的插件,而与将盗取钱财作为主要目的的插件相比,这些又显得那么的微不足道。为了保护我们的客户,我们自动化处理了大量的不同来源的插件,这当然包括了从Chrome网上应用店下载并分析那些看起来可疑的插件。最近就有一个插件引起了我们的特别关注,因为它曾与一个可疑域名进行通信。

这个Chrome浏览器插件名为DesbloquearConteúdo(葡萄牙语,意为“解密文本内容”),目标是巴西网上银行服务器上的用户,因为我们追踪到它的所有安装企图都发生在巴西。此恶意插件的目的是收集用户的登录用户名和密码,然后从他们的银行账户里窃取资金。卡巴斯基实验室也检测到了此恶意插件并将其命名为HEUR:Trojan-Banker.Script.Generic

检测到的恶意插件的其中一个脚本fundo.js的地理分布

截至本文发布之前,恶意插件已从Chrome Web应用商店中清除。

Chrome Web应用商店中的该恶意插件

 

分析

恶意浏览器插件通常会使用不同的技术(例如混淆)来逃避安全软件的检测。然而,这个特定插件的开发者并没有混淆它的源代码,而是选择了另一种不同的方法。这款恶意软件使用WebSocket协议进行数据通信,从而可以实时与C&C服务器互发消息,这就意味着C&C变成了代理服务器,当受害者访问巴西银行的网站时,插件就会将其重定向到该服务器,从本质上讲,这是一种中间人攻击。

DesbloquearConteúdo插件包括两个JS脚本。让我们来仔细观察一下。

 

fundo.js

在这个脚本代码中,我们最先关注到函数websocket_init(),这个函数用来建立WebSocket连接,然后从服务器(ws://exalpha2018[.]tk:2018)下载数据并将其保存到’manualRemovalStorage’下的chrome.storage。

通过WebSocket连接从C&C下载数据

插件下载数据并以JSON格式存储

通过向hxxp://exalpha2018[.]tk/contact-server/?modulo=get发送请求,插件得到需要将用户流量重定向到的IP地址。

向C&C服务器请求IP地址

用户流量需要重定向到的IP

这里的代理自动配置(Proxy Auto Configuration)技术值得一提,现代浏览器通常使用了一个用JavaScript编写的只有一个函数(FindProxyForURL)的特殊文件。在此函数中,浏览器定义了使用哪个代理服务器来建立与各个域名的连接。

而fundo.js脚本在函数调用implement_pac_script时使用了代理服务器自动配置技术,该技术会用一个新的函数取代FindProxyForURL,并将用户流量重定向到恶意服务器,但只有当用户访问巴西银行的网页时才会这样。

更改浏览器信息以重定向用户流量

 

pages.js

在这个脚本中,最重要的代码片段如下图所示:

该插件在银行网页上下载恶意代码

就像fundo.js一样,从服务器下载的数据也被保存到manualRemovalStorage中。这些数据包括几家巴西银行的域名以及浏览器在用户访问相关网站时应执行的代码。

pages.js从域名ganalytics[.]ga下载以下脚本并在银行网站上启动:

  • ganalytics[.]ga/bbf.js,
  • ganalytics[.]ga/bbj.js,
  • ganalytics[.]ga/cef.js,
  • ganalytics[.]ga/itf.js,
  • ganalytics[.]ga/itf_new.js.

Web杀毒软件监测到的尝试与ganalytics[.]ga进行通信的统计图

以上所有脚本都具有相似的功能,并且设计目的都是为了窃取用户的凭证。我们来看看其中一个。

 

cef.js

该脚本的功能之一是将特定的HTML恶意代码注入到网上银行系统的主页中。

向网站主页注入恶意代码

仔细查看向服务器发送请求后的返回代码,可以发现对银行网站上用于身份验证的一次性密码的收集行为。

截取到的用户的一次性密码

如果用户在输入用户名和密码登录的页面,脚本会创建一个“Enter”的克隆按钮,然后还会创建一个函数来单击此按钮,此后密码就会存储在该函数的cookie文件中,以便后续传送到C&C服务器,然后再单击被覆盖且隐藏的真实按钮进行正常行为以隐藏整个截取过程。

创建“Enter”按钮的副本,并截取网上银行服务的登录用户名和密码

将所有截获的数据发送给C&C

对此次攻击中使用的网络资源的进行分析(由KL威胁情报部门提供)后得到了一些有趣的信息。特别是,上述ganalytics[.]ga在Gabon域名区注册,这就是为什么WHOIS服务没有提供有关它的详细信息的原因:

ganalytics[.]ga的WHOIS信息

但是,其托管的IP地址也与其他几个有趣的域名相关联。

KSN上的DNS数据片段

显然,这个IP地址已经(或已经)与其他几个在巴西的域名区注册的tell-tale名中包含advert,stat,analytic关键字的域名相关联,值得注意的是,在去年秋天,他们中大部分都参与了网络挖矿,都带有当访问巴西合法银行网站受到访问时就会下载的挖矿脚本。

KSN上有关advstatistics.com[.]br的数据碎片

当用户访问合法站点时就会加载恶意软件,这就意味着在用户计算机上存在本地流量篡改。另外,该插件的目标是巴西用户,并且使用了与以前的攻击中使用的相同IP地址,这一系列事实都表明,此浏览器插件(或其相关版本)早些时候曾具有在用户访问的银行网站时,将数字加密货币挖矿脚本添加到当插件程序下载到他们的设备的功能。

 

结论

用于窃取登录名和密码的浏览器插件非常罕见。但鉴于他们可能造成的潜在危害,我们需要对其认真对待。我们建议用户只在Chrome网上应用店或其他官方服务渠道中,安装具有大量安装量和评论的已验证的扩展插件程序。尽管这些服务器的所有者也采取了保护措施,但恶意扩展仍可能最终在其中发布,比如我们在文中讨论的情况。此外,在设备上安装安全产品并且在插件有可疑行为时发出警告也是一种有效的措施。

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多