首款利用Firebase云消息传递机制的高级间谍软件

发布时间 2018-03-29

一、概述

        近期,启明星辰AdLab追踪到了一款新出现的Android间谍软件,经过深入分析我们发现,其功能的丰富程度不亚于2016年发现的针对iOS平台的“Pegasus”,甚至具有非常大相似之处。与“Pegasus”一样,该间谍软件也是一款功能强大的间谍软件,可实现远程root提升到最高权限,并且实现了Android层的敏感信息窃取如静默拍照录音、窃取通讯录、监听短信电话、位置信息、收集WhatsApp、Skype、Facebook用户信息及聊天数据等等,甚至实现了Linux层面的“反弹Shell”以达到其对目标设备的完全控制。此外,该间谍软件同样也被利用来追踪特定目标人员。

        依据样本关联分析,我们发现该Android间谍软件相似样本在1月16日被卡巴斯基所披露,并被其命名为Skygofree,该间谍软件目前主要活跃在意大利的边境上。通过对已有信息和样本的分析,我们还发现与该间谍软件相似的多个历史版本中存在“Negg”公司的签名;并且间谍软件内多个内部组件中也同样出现该公司名称信息及缩写。“Negg”(Negg International)公司为意大利一家小型软件公司,其网站主页就显示有计算机证据收集的服务,在2015年该公司发布征聘Android与IOS软件工程师时就要求应聘者具备“恶意软件的分析技术”,而正好这一年前后,该类间谍软件最为活跃。该间谍软件与“Negg”公司可能具有非常强的关联关系,并有可能为该公司所开发。据安全研究人员推测,该公司开发该间谍软件用于协助意大利执法部门抓捕犯罪嫌疑人。

        目前发现的这款间谍软件其最初版本创建于2014年,到2017年该类样本已经过了3个阶段的演进,从最开始的没有root功能和窃取社交软件数据库功能到最新的从远程服务器下载和释放恶意负载,利用设备漏洞对感染设备进行root。卡巴斯基对该关联样本的root模块和传播方式进行了详细分析,我们的分析重点则放在了该样本Android端的各个服务和控制的逻辑部分。

二、间谍软件行为简介

        该间谍软件是目前所见到的Android平台上最为强大的恶意应用之一。其除了窃取受害用户的短信、通讯录、通话记录和浏览历史记录等敏感信息外(其主要恶意行为见图1),还具有以下几个特点:

(1)通过无障碍服务(无障碍服务是辅助身体不便或者操作不灵活的人来操作手机应用的,其可被用于监控手机当前活动APP界面,实现对目标界面自动化操作。)进行录音。为了不被用户发现,间谍软件会在有用到麦克风资源的APP正在运行时停止录音活动。对于Android 4.4W 之前的“HUAWEI”手机,其特别内置了包含“tencent”、“whatsapp”在内的多个频繁使用麦克风的流行应用白名单。

(2)利用Google Firebase 云消息传递服务(Google Firebase 云消息传递服务是Google提供的能帮助开发者快速写出Web端和移动端应用通信的一种服务)对感染设备进行远控。

(3)下载执行反弹Shell。攻击者在躲过普通防火墙的检测并成功拿到反弹Shell后,可以对目标手机进行Linux层面的全面控制。

(4)对感染设备进行定位、强制感染设备连接攻击者所控制的wifi网络,对感染设备进行上网流量嗅探和中间人攻击。

(5)窃取whatsapp、facebook、gmail等社交软件的本地数据库文件。攻击者会利于这些数据对目标人群进行更加细致深入的钓鱼攻击和数据分析,对用户造成严重威胁。

图1 间谍软件的主要恶意行为

三、传播方式

        该类间谍软件最早可以追溯到2014年,其主要伪装成 Vodafone(英国电信公司)或其他通信运营商的登录页面进行传播(见表1)。根据数据回溯发现,2015年是该类间谍软件传播最为活跃的一年,并且其传播活动仍在继续。最近观察到的域名登记于2017年10月31日。

表1 该间谍软件的恶意传播页面(数据来源:卡巴斯基)

四、C&C通信方式

        在该类间谍软件的最新版本中,其除了使用传统的网络方式进行命令控制和信息回传外,还首次使用了Google Firebase云消息传递服务来进行控制命令的下发(示意图见图2)。

图2 该间谍软件的通信示意图

4.1 Firebase云消息传递机制利用

        Firebase云消息传递(Firebase Cloud Messaging,简称FCM),也称Firebase云信息传递,前身为Google云消息传递(GCM),是一项针对Android、iOS及网络应用程序的消息与通知的跨平台解决方案,目前可免费使用。开发者只需要在https://firebase.google.com/上,登录自己的Google账户,经过简单的设置操作,便可以将Firebase服务配置到自己的移动APP中。完成移动端的APP设置后,开发者就可以在自己的Firebase网页中选择对应的APP,并在网页上编辑发送自定义的Message。客户端则会以Notifications的方式接收这些Message。

        不幸的是,该项技术这次被使用到了间谍软件中。攻击者利用Firebase实时云服务发送恶意命令(分析后的命令和含义列见表2),感染设备端,间谍软件则对恶意命令进行接收和解析执行(图3)。

表2 控制命令和含义

图3 间谍软件对恶意命令的接收和解析

        为了确保感染设备能及时收到Google推送信息,方便攻击者进行Firebase云消息远控,攻击者创建了定时任务,每隔1分钟,通知Google保持长连接(见图4)。

图4 创建定时任务,通知Google保持长连接

4.2 以短信方式下达控制指令

        间谍软件注册了一个短信广播,用来监听感染设备新收到的短信。一旦发现短信中出现有特定的控制指令,就会执行相应的设置(见图5)。短信控制指令参见如表3。

表3 短信字符串和对应的设置

        从表3中我们可以看到,控制指令1是通过http协议来向C&C服务器“http://url.plus/Updates/agent/commands”请求和执行命令,命令与Firebase云消息传递所使用的命令相同(见表1)。攻击者在开启感染手机的蜂窝网络(控制指令2)和wifi后(控制指令3),会为感染手机添加和配置其所控制的恶意wifi(控制指令4和图6),最后强制感染手机连接(控制指令5)。该间谍软件可以结合其所获取的位置信息对感染设备进行远程定位追踪,并在目标到达攻击者预期的位置附近,强制感染设备连接由攻击者所控制的wifi网络,进而对嫌疑人的手机进行上网流量嗅探和中间人攻击。由此可见,间谍软件的控制者事先已经知道了目标特定活动区域,并且在这些区域进行一定量的wifi的布置,以期达到进一步攻击的目的。

图5 间谍软件获取、执行控制命令

图6 添加指定wifi,强迫感染设备连接

五、利用无障碍服务进行语音监听

        无障碍服务是Android官方推出帮助身体不便或者操作不灵活的人来辅助操作手机应用的,其可以被用于监控手机当前活动APP界面,对界面进行自动化操作。但该服务却被频繁的用于黑色或灰色目的,比如被用于免root自动安装、语音监听、自动抢红包、防卸载、浏览器劫持等技术,当前我们所分析的这款间谍软件同样也是利用无障碍服务的这种特性进行录音监控。

        为了达到隐秘录音防止被用户发现的目的,其内置多个白名单,一旦发现当前活跃的APP进程存在于白名单中就会停止录音活动。其中一个白名单主要用于Android 4.4W之前的“HUAWEI”手机,其白名单中主要包含了流行的社交应用及与语音视频有关的系统应用,社交应用有腾讯的QQ和微信、脸书的whatsapp、微软的skype等等(见图7、图8和表4);对于其他品牌的手机,白名单仅仅包含三款系统APP:“phone”、“dialer”和“sysmanager”。此外,该间谍软件还会监听感染设备的来电状态,当受害用户接起电话时,就开始录音(图9)。

图7 白名单判断机制

图8 内置的录音监听白名单

表4 录音监听白名单

图9 当感染用户接听电话时,开始录音

六、恶意攻击详细分析

6.1 隐藏自身图标,防止受害用户察觉

        该间谍软件运行后,不但会将自身图标隐藏掉(图10),而且会激活设备管理员权限(图11)。这样,普通用户很难察觉并卸载掉它,从而达到长期驻留在受害用户设备中的目的。

图10 隐藏自身图标,防止受害用户察觉

图11 请求设备管理员权限

6.2 下载执行反弹Shell以实现完全控制

        当收到“reverse”命令时,间谍软件会从远程服务器 “http://url.plus/Updates/”下载恶意的zip文件,并在本地解压执行(见图12和图13)。经过分析我们发现,解压后的文件是一个反弹Shell,通过反向连接C&C:54.67.109.199:21070来躲过普通防火墙的检测。当攻击者成功拿到反弹的Shell后,其可以对目标手机进行Linux层面的全面控制,包括上传恶意文件、下载其感兴趣的目录、杀死手机进程、甚至破坏手机系统等恶意行为。

图12 从远程服务器下载恶意zip文件

图13 解压并本地执行恶意文件

        另外,我们还在该间谍软件的3.7.3版本的lib路径下发现了适用于多平台的反弹shell库(图14)。

图14 适用于多个平台的反弹Shell

6.3 安装apk文件

        如果收到的命令是“install_apk”,间谍软件会从攻击者指定的地址下载apk到感染设备的外部存储器(图15),安装和执行(图16和图17)。并且,间谍软件可以任意打开攻击者指定的APP,对APP进行操作。这一功能可以实现攻击者对其他APP的恶意推广和深度控制。

图15 从攻击者指定的地址下载apk文件到感染设备的外部存储器

图16 安装下载到的apk文件

图17 打开指定APP界面

6.4 回传社交APP数据文件

        在收到命令“social”后,间谍软件会收集感染设备上流行社交软件的数据库文件(图18),并在其回传到远程服务器之前对其进行压缩和AES加密,目标社交APP和回传地址参见表5。攻击者得到感染用户的社交APP数据库文件后,会利用解密后的受害用户的登录凭证和社交关系数据进行更加细致深入的钓鱼和攻击,对用户造成严重威胁。

图18 收集感染设备上社交软件的数据库文件

表5 社交APP和对应的上传目录

6.5 回传感染设备硬件信息

        命令“info”则表示间谍软件会收集感染设备硬件相关信息(见图19),其将硬件相关信息收集好后,AES加密上传到远程服务器(见图20)。收集到的设备信息如表6所示。

图19 收集感染设备硬件相关信息

图20 AES加密硬件相关信息上传到远程服务器

表6 收集感染设备硬件相关信息

        我们注意到,间谍软件上传的设备信息包括感染设备的型号和是否root信息(见图21),根据代码中多处操作需要root权限推测,攻击者会针对未root的感染设备下载对应的root组件,来对感染设备进行root,继而对感染设备实施进一步更高权限的侵害。已发现的漏洞利用负载共有3个文件,文件名分别是“poc”、“db”和“device.db”。其中,“poc”是漏洞利用的ELF文件,“db”是Sqlite3工具,“device.db”是exploit使用的数据库,包含漏洞利用程序支持的机型和对应的漏洞利用内存地址信息。目前发现该负载可利用漏洞有CVE-2013-2094、CVE-2013-2595、CVE-2013-6282、CVE-2014-3153和CVE-2015-3636(来自卡巴斯基)。

图21 判断感染设备是否root

6.6 回传感染设备其他文档

        如果是“filelists”命令,间谍软件就窃取感染设备sd卡目录树信息到远程服务器(见图22),当攻击者获取到感染设备的存储文件和安装APP等信息后,就可以远程指定文件名。间谍软件的文档回传服务负责回传攻击者指定的文档(图23)。

图22 窃取感染设备外部存储文件目录树

图23 回传攻击者指定文档

6.7 回传受害用户敏感信息

        当收到“registro_chiamate”、“camera”、“history”等命令时,间谍软件会窃取受害用户几乎所有的敏感信息,其中包括受害用户手机上的短信内容、通讯录、通话记录、浏览器上网记录、安装的APP列表等,间谍软件甚至会利用受害用户手机进行拍照,回传照片。首先,间谍软件会将窃取到的目标敏感信息按照自定义的格式保存在自身应用的/cachel2目录下;然后,在利用统一的网络接口发送前进行AES加密并发送;最后,再对之前保存的临时文件进行删除,以防止用户察觉。图24和图25是回传通话记录的代码,其他的窃取目标和临时保存的文件名见表7。

图24 收集受害用户通话记录

图25 回传受害用户通话记录

表7 窃取目标和临时保存的文件名

6.8 回传定位信息

        除了窃取受害用户的主要敏感信息,该类间谍软件还会对受害用户进行GSM(移动、联通)或者CDMA(电信)基站定位和GPS定位,再将定位信息回传到远程服务器(见图26和图27),受害用户的整个行为几乎完全掌控在攻击者手中。

图26 回传感染设备基站位置信息

图27 回传感染设备GPS定位信息

七、总结及建议

        虽然该间谍软件目前主要针对意大利用户,但也不排除后续针对其他国家实施攻击的可能。用户除了对热门的APP下载和更新不能大意外,对系统自带的APP的更新也应保持警惕。建议用户不要轻易点击短信中的不明链接,不要安装不明来源的APP。对申请可疑权限尤其是短信读写、打电话以及需要激活设备管理器的APP要特别留意,涉及到金钱的操作要格外谨慎。遇到操作异常,应当及时使用杀毒软件查杀或找专人处理。目前,互联网上也充斥着形形色色的第三方APP下载站点,很多甚至成了恶意应用的批发集散地,提醒用户尽量从官网下载所需APP应用,在不得不从第三方站点下载软件时,要高度保持警惕,认真甄别,防止误下恶意应用给自己造成不必要的麻烦和损失。

参考链接:https://securelist.com/skygofree-following-in-the-footsteps-of-hackingteam/83603/