PC、苹果、安卓通吃!揭秘超级网络间谍软件FinSpy

FinSpy,是由德国公司Gamma Group开发的一款间谍软件,通过其在英国的子公司Gamma International Gamma Group向全球的政府和执法机构出售。

FinSpy可用于在各种平台上收集有关用户的各种信息,维基解密(Wikileaks)在2011年发现并披露了FinSpy的桌面版,并在2012年发现了它适用于移动设备的版本。

近日,卡巴斯基实验室(Kaspersky Lab)在最新发布一份报告指出,在过去的一年里,有数十种移动设备遭到了FinSpy的感染,并在2018年末出现了最新的iOS和Android版本。

在功能上,iOS版本和Android版本几乎没有什么不同,都能够收集有关用户的各种信息,如联系人、短信/彩信、电子邮件、日历、GPS位置、照片、内存中的文件、电话录音和来自一些受欢迎的聊天软件的数据。

此外,卡巴斯基实验室还表示,最近检测到FinSpy是在今年6月份,主要位于缅甸。

FinSpy iOS版本

卡巴斯基实验室表示,FinSpy iOS版本能够监控几乎所有的设备活动,包括通过外部应用程序(如Skype或WhatsApp)录制VoIP呼叫。监控的目标应用程序主要包括一些即时通讯软件,如Threema、Signal和Telegram。

不过,这种功能是通过利用Cydia Substrate的挂钩功能来实现的。也就是说,iOS版本的FinSpy只能安装在运行iOS 11及更低版本的越狱设备(iPhone或iPad)上。在安装完成后,能为攻击者提供几乎无限制的设备活动监控。

至于感染媒介,卡巴斯基实验室表示至少有三种可能:

短信息电子邮件WAP推送

安装过程包含多个步骤:

1.首先,一个shell脚本会检查操作系统版本并执行相应的Mach-O二进制文件——“install64”(64位版本)用于iOS 11,否则就使用“install7”(32位版本)。

2.启动时,安装程​​序二进制文件会执行环境检查,包括Cydia Subtrate可用性检查。如果它不可用,安装程序将从Cydia存储库下载所需的软件包,并使用“dpkg”工具进行安装。

3.之后,安装程序会执行一些路径准备和程序包解包,从硬编码列表中随机选择框架和应用程序的名称,在目标系统上部署组件并设置必要的权限。

4.安装完成后,守护程序将启动,并删除所有临时安装文件。

另一方面,FinSpy之所以能够长时间驻留在受感染设备上,是通过在“/Library/LaunchDaemons”路径中添加带有开始指令的“plist”来实现的。

FinSpy配置的所有敏感参数(如C2服务器地址、C2电话号码等)都存储在文件“84C.dat”或“PkgConf”中,位于主模块的包路径下。

如下图所示,是FinSpy的所有模块及其功能。

其中,核心模块(“FilePrep”)包含7828个函数,负责控制其他所有模块。模块之间的通信以两种方式实现:第一种是使用系统的CPDistributedMessagingCenter;第二种是接收数据请求的本地HTTP服务器。

模块“.chext”被用于监控聊天软件,包括窃取消息内容、照片、地理位置、联系人、组名等,所针对的聊天软件如下所示:

Facebook Messenger(com.facebook.Messenger)(com.tencent.xin)Skype(com.skype.skype/com.skype.SkypeForiPad)Threema(ch.threema.iapp / ch.threema.iapp.ThreemaShareExtension)InMessage(com.futurebits.instamessage.free)BlackBerry Messenger(com.blackberry.bbm1)Signal(org.whispersystems.signal)

模块“.vpex”实现了与50多个用于外部消息应用处理的VoIP呼叫的挂钩,包括:

WhatsAppLINESkypeViberKakaoTalkBlackBerry MessengerSignal

这些钩子能够修改处理VoIP调用的函数,以便记录它们。

FinSpy Android版本

FinSpy Android版本具有与iOS版本类似的功能,且能够通过利用DirtyCow(脏牛)漏洞获得设备的root权限,其中一个版本至少在2018年6月仍在被使用。

FinSpy Android版本的配置数据以压缩文件的形式存储,并在apk的assets目录中解压为一组文件。在提取所有数据并构建配置文件后,就可以获得所有配置值。配置文件中的每个值都存储在其大小的little-endian值之后,而设置类型存储为散列。

与iOS版本一样,FinSpy Android版本的感染媒介也包括:短消息、电子邮件和WAP推送。成功安装后,它会首先会检查root模块SuperSU和Magisk是否存在。如果存在,则会运行它们来尝试获得设备的root权限;如果不存在,则会解密并执行包含在其自身内部的DirtyCow漏洞利用代码来获取root权限。

FinSpy Android版本能够窃取诸如联系人、SMS / MMS消息、日历、GPS位置、图片、存储卡上的文件以及电话呼叫记录之类的信息,并将这些信息通过SMS消息或互联网上传给攻击者(C2服务器地址存储在其配置文件中)。

另外,FinSpy Android版本同样能够窃取来自一些受欢迎的聊天软件的数据,包括联系人、消息、音频和视频等,所针对的聊天软件如下所示:

首先,FinSpy会检查设备上是否安装了目标聊天软件(依靠硬编码的安装包名称),并授予root访问权限。之后,便会窃取来自目标聊天软件的数据,包括所有媒体文件和有关用户的信息。

基础设施

FinSpy由FinSpy Agent(操作终端)控制。默认情况下,无论什么版本都会连接到Gamma Group提供的FinSpy匿名代理(也称“FinSpy Relays”),这样做是为了隐藏FinSpy Master的真实位置。

一旦受感染系统上线,它就会向FinSpy Proxy发送heartbeat心跳包。FinSpy Proxy负责转发目标与主服务器之间的连接,而FinSpy主服务器则负责管理所有目标和代理并存储数据。

卡巴斯基实验室发现,FinSpy的大多数中继服务器集中在欧洲,也有一些位于东南亚和美国。

结论

FinSpy是一种具有多种功能的超级间谍工具,Gamma Group在其产品中提供的各种配置功能使得FinSpy终端(FinSpy Agent)操作员能够针对特定的目标群体进行自定义配置,以进行有针对性的监控。

自2014年FinSpy的源代码遭到泄漏以来,Gamma Group已经重新创建了其产品的关键部分,扩展了其支持的功能(例如,能够窃取来自更多聊天软件的数据),同时改进了对代码加密和混淆,使得FinSpy更加难以被检测出来。

总体而言,到目前为止卡巴斯基实验室已经在近20个国家检测到了FinSpy的最新版本,并且仍有新的版本在不断推出。就在卡巴斯基实验室最新报告发布的前夕,该实验室的研究人员就发现了FinSpy的另一个版本,目前正在对其进行分析。

本文由 黑客视界 综合网络整理,图片源自网络;转载请注明“转自黑客视界”,并附上链接。

想了解相关安全技术,请搜索“墨者学院”,或直接访问“www.mozhe.cn”。