http://p2.qhimg.com/t015219b59b89d28661.jpg

 


前言


我们经常会使用 Facebook Messenger 与朋友分享有趣的影片或资讯链接,不过最近你要提高警惕了,因为黑客可能正通过这些链接传播恶意软件。日前,卡巴斯基实验室和Detectify实验室的研究人员发现,黑客正利用 Facebook Messenger 进行跨平台攻击活动, 即以目标用户好友身份发送经过处理的视频链接。一旦点击链接,则会根据用户浏览器与操作系统将其重新定向至虚假网站,并诱导用户下载恶意扩展程序,从而自动下载恶意广告软件至用户电脑设备。目前,卡巴斯基实验室针对此威胁进行评估。来自Detectify实验室的Frans Rosé也在对此进行分析研究。因此,卡巴斯基研究员David Jacoby和Detectify的研究员Frans Rosé决定共同撰写此次事件的研究报告。


传播机制


Frans Rosé花费了相当长的时间对JavaScript进行分析,并试图弄清楚恶意软件的传播方式。从表面上看,这貌似是一个简单的工作,但实际情况并非如此。这项工作涉及多个步骤,其中就包括确定Javascript的有效载荷。此外,由于是由脚本决定何时发起网络攻击,因此要实时关注攻击者何时发起攻击。

利用Chrome传播的恶意软件不仅仅是传播恶意的网络链接,还会收集和统计受害者的信息。我们尝试将此次恶意软件传播过程进行分解,总结下来主要分为以下几个步骤:

1、受害者从朋友那里收到Facebook Messenger的链接。

http://p4.qhimg.com/t01d9a2e892a62cfa13.png

2、一旦对方点入就会导引到一个Google Doc网页,其中现实的是一个朋友头像照片的虚假的视频播放器。

http://p8.qhimg.com/t015a1d1132db96e41d.png

3、点击这个链接并使用Chrome浏览器进行观看,就会被复位向至虚假的YouTube网站,同时该网站会诱导受害者从 Google 应用商店下载恶意 Chrome 扩展程序(实际上它是一个Downloader)。

http://p3.qhimg.com/t017e3ff46d9d650629.png

4、一旦安装了这个恶意的Chrome 扩展程序,受害者就会向其线上的朋友继续发送恶意链接。

Chrome 恶意扩展程序传播步骤值得我们深入研究——

Facebook的消息框

消息框中的信息包括用户的姓氏、“视频”(Video)一词和随机的emoji表情:

http://p9.qhimg.com/t01dc7fdb264e35910c.png

以及使用URL缩短工具创建的链接。

Google文档共享PDF预览

点击链接后,用户就会被复位向到docs.google.com上的一个URL。此链接是通过使用共享PDF的预览链接制作的。这一可能性比较大,因为这是通过外部链接在合法的Google域上获取大型受控内容区域的最快方式。

PDF本身是使用PHP中的TCPDF 6.2.13创建的,然后使用Google Cloud Services上传Google文档。

TCPDF 6.2.13的PHP创建的,然后使用Google Cloud Services上传到Google文档。点击http://p3.qhimg.com/t013afbcaf3d36e5b40.png就会转到一个正在预览的PDF文件的详细信息页面。

生成的链接的共享设置,其中包含一个有趣的细节:

http://p8.qhimg.com/t01d941d502bf2f1fce.png

上图中显示“任何人都可以编辑”(Anyone can edit”),这就意味着任何拥有链接的人都可以对其进行编辑。让我们来看看这个链接是如何传播开来的——攻击对所有受害者facebook好友都发送了相同的链接。但任何一个好友改变链接访问权限,就会阻止攻击蔓延到受害者的其它朋友。

另一个有趣的细节是创建文档的用户。对大量的个案进行研究就会发现其中的规律:

http://p4.qhimg.com/t0129db3a20c88d071a.png

上图所示是发送给四个不同受害者的链接,但其中的三个链接都使用了一个相同的IAM用户名(ID-34234),即便这三个链接使用的是不同的Google Cloud项目创建的。

在黑客发起攻击时,这些发送给受害者的pdf预览页面的URL都不在Google的黑名单之列。

重新定向

在点击Google文档链接后,用户将被重新定向,最有可能出现的是指纹识别浏览器。以下我们将重点分析Chrome浏览器。

Chrome扩展程序重新定向被重新定向至虚假的YouTube网页

使用Chrome浏览器的用户将被重新定向至虚假的YouTube网页。我们注意到在攻击时使用了几个不同的域。

http://p2.qhimg.com/t011e2f6a8a05c899c5.png

被重新定向的页面还会要求您安装Chrome扩展程序。由于用户可以直接在页面上安装Chrome扩展程序,因此受害者唯一可以执行的操作就是单击“添加扩展名”。一旦受害者点击了“添加扩展名”,黑客的攻击行动就成功了。

Chrome扩展程序

这里使用了多种Chrome扩展程序。所有的扩展程序都是新创建的,代码是从名称相似的扩展名中盗来的。这些扩展程序主要是使用background.jsmanifest.json的修改版。

显示进行了更改以控制tabs和所有的URL,并启用对background.js的支持:

http://p3.qhimg.com/t0176f2b533e7857347.png

我们发现的所有Chrome扩展程序中的后台脚本都是模糊的,但基础的脚本如下图所示:

http://p9.qhimg.com/t0102e8ad6152924660.png

模糊后台脚本

这个脚本非常值得深入推敲。首先,用户只有从Chrome Webstore上安装了扩展程序,background.js才能获取外部URL;如果使用未打包的从本地安装的扩展程序则不会触发网络攻击。

抓取的URL将包含另一个脚本的引用。这个脚本将使用URL.createObjectURL发送到一个Javascript的Blob对象,然后运行background.js。

Blob对象中新生成的脚本同样是模糊的,如下图所示:

http://p2.qhimg.com/t01ec1dcebdfd943fb4.png

之后将出现这两种情况:

1、如果tab加载成功,就会为所有tab添加一个听众。

2、标签页面载入后,将向另一URL地址发起请求。如果该响应包含任何内容,将被发回标签页面,同时使用executeScript进行触发。该文件之后将在发出请求的标签页面上运行Javascript,从而及时实现XSS注入。

获取所有脚本

进行识别被注入文件的研究时,我注意到攻击者的C&C服务器并非始终有代码返回。我开始猜测,当攻击发起时,攻击者能够控制是否传播攻击,以及是否采取手动或特定手段进行。

为了避免在这里白白坐等,我建立了伪扩展程序来模拟攻击者的行为。当然,我并没有激活相关代码,而是将其保存在本地。

一段时间后,我注意到自己已经获得许多点击量,点击者的终端均立即发回了回应码(back code):

http://p3.qhimg.com/t01cb4327f1bb48e97e.png

返回的代码没有经过任何混淆处理,能够从中看清具体流程。该代码实际是专门针对Facebook而编写的。

该脚本将执行以下操作:

查看运行的域中是否包含Facebook.com。

提取CSRF凭证以访问Facebook,将其名为“fb_dtsg”。

查看是否已经获取访问凭证(获得访问权限是为了完成Facebook API的身份验证)。

将访问令牌(access token)和用户ID发送给攻击者的外部站点。

http://p7.qhimg.com/t01ab1130aa1312d48c.png

确保平台功能已启用(禁用kill-switch):

创建一个访问令牌。目前Facebook已经弃用了FQL API,Facebook此前一直使用FQL API: