-
-
[翻译]剖析Facebook恶意软件通过Chrome拓展传播的流程
-
发表于: 2017-10-9 22:39 4216
-
Kaspersky Lab 和Detectify 联合对上周在Facebook 上传播的恶意软件进行逆向分析。当我们的设备受到攻击时,可以从所涉及的公司和云服务中得到帮助, 以便快速关闭攻击的部分,减轻攻击带来的影响。
更新 #1: 攻击仍在进行, 但它已经改变了流程, 现在窃取了 non-expiry 的访问-令牌。请阅读以下内容。
自从卡巴斯基实验室在博客上公布关于多平台 的facebook 恶意软件过去了一些日子, 这款恶意软件是通过 facebook 的信使传播。在卡巴斯基实验室分析这一软件的安全威胁同时, 其实还有有一些研究人员在做同样的工作, 包括Frans Rosén, Detectify 的安全顾问。
在Frans看了David对博客的评论,他找到David问他:为什么他们都做同样的工作。Frans有一个想法, 所以他们开始比较笔记, 发现Frans实际上分析了David一些没有的部分。他们决定共同写下第二部分的分析, 将攻击行为详细描述。
Frans花了许多时间分析JavaScript,希望找到恶意软件是如何传播的,虽然这个任务看似简单。试图找出 Javascript 有效载荷的方法有多个步骤。此外, 由于脚本动态决定何时启动攻击, 因此必须在攻击者触发它时对其进行监视。
这些结论可以分解成几个步骤, 因为它不仅是传播链接, 恶意软件还会通知攻击者关于每个感染者所收集统计信息, 并枚举浏览器。我们试着尽可能简单地总结这些步骤:
1.受害者会在Facebook 聊天窗口收到好友发来的一个链接。
2.链接转到 Google 文档, 它的图像看起来像是一个假的视频播放器, 上面有朋友的个人资料图片。
3. 在chrome浏览器上打开该链接,浏览器将进入一个假冒的 YouTube 网页, 要求您直接在页面上的 安装chrome 扩展工具。
4. 安装 Chrome 扩展工具后, 会将恶意链接传播给受害者的在线好友, 并与受害者的个人
资料图片相结合。
在这些步骤中,有一些有趣的东西,所以我们来认真看看。
消息本身将由获取消息的用户的名字、单词 "视频" 和随机选择的这些 emojis 的一个名称组成:
同时还有URL短地址的一个链接
用户点击链接会被重定向到一个地址为docs.google.com的网页。此链接是通过使用共享PDF的预览链接制作的,这一可能性比较大,因为这是通过外部链接在合法的Google域上获取大型受控内容区域的最快方式。
PDF本身是使用PHP中的TCPDF 6.2.13创建的,然后使用Google Cloud Services上传到GoogleDocs。点击就会转到一个正在预览的PDF文件的详细信息页面。
生成的链接的共享设置,其中包含一个有趣的细节:
“任何人都可以编辑”。这个结构意味着任何拥有这个链接的人都可以编辑。看看这个链接是如何传播的,这个攻击重复发送相同的链接到受害者的朋友。但任何一个好友改变链接访问权限,就会阻止攻击蔓延到受害者的其它朋友。
另外一个有趣的细节是创建文档的用户。收集了一系列的案例后,我们可以看清一些模式:
分析来自不同受害者的四个链接,虽然它们是在不同的Google Cloud项目中创建的,但是其中三个共享相同的IAM 用户名(ID-34234)
攻击的时候,来自PDF预览的链接没有一个 被Google 列入黑名单
在Google Docs的链接被点击之后,用户会经历一系列重定向,最有可能是为了获取浏览器的数字证书。以下我们将重点分析Chrome浏览器。
对于其他的浏览器(出现了广告, 并且下载了广告软件)请阅读下面的登陆页面。
当在电脑上使用Chrome浏览器,你就会被定向到一个虚假的YouTube页面。我们注意到在攻击中用到的 几个不同的域名。
这个网页会询问你是否要安装Chrome拓展工具。因为你可以直接在网页上安装一个Chrome拓展工具,受害者需要做的动作就是点击“添加拓展工具”。 在这一点之后, 攻击会进一步蔓延Chrome扩展,然而却不需要受害者其他的操作。
在这过程用到了多种的Chrome 扩展工具。所有的拓展都工具是新创建的,代码是从名称相似的扩展名中复制来的。这些扩展程序的Java脚本代码主要是使用background.js和manifest.json的修改版。
通过修改manifest,以控制tabs和所有的URL,并启用对background脚本的支持:
我们发现的所有Chrome扩展程序中的后台脚本都是混淆的,但基础的脚本如下图所示:
这个脚本有些有趣的东西
首先,这个拓展工具只有从Chrome Webstore上安装,background.js才能获取外部URL;使用本地文件安装这个拓展工具并不会引起攻击。
抓取的URL将被添加另一个脚本的引用。这个脚本将使用URL.createObjectURL发送到一个Javascript的Blob对象,然后运行background.js。
这个来自blob的新脚本也将会被混淆编码。看起来就像这样:
下面就是这些功能的主要内容:
1.添加监听工具,监测每一个成功加载的新网页。
2.当网页加载成功,会向另一个URL发送一个新的请求。如果收到的相应中含有内容,将被发回标签页面,同时使用executeScript进行加载。该文件之后将在发出请求的标签页面上运行Javascript,从而及时实现XSS注入。
当在查找并试着确定被注入文件的过程中,我注意到攻击者的C&C服务器并不是总有代码返回。我的猜想是他们可以控制是否传播病毒,而且手动或采取特殊手段实施攻击。
为了避免坐以待毙,我自己也根据他们的拓展工具写了一段相同功能的伪拓展工具,但我只是把它保留在本地,而不是激活代码。
一段时间后,我注意到我获取到大量点击。点击者的终端均立即发回了回应码(back code):
返回的代码经过任何混淆处理,可以清楚地看到具体的功能。这是专门为Facebook而编写的。
该脚本执行了以下操作:
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)