Cybereason Nocturnus团队正在调查一项涉及FakeSpy的新活动,该恶意软件出现在2017年10月左右。FakeSpy是一个信息窃取程序,用来窃取短信、发送短信、窃取财务数据、读取账户信息和联系人列表、窃取应用程序数据,以及做更多的事情。

FakeSpy最初针对的是说韩国和日语的人。然而,它已经开始面向世界各地的用户,特别是说中文的、台湾、法国、瑞士、德国、英国、美国等国家的用户。

FakeSpy假扮成合法的邮政服务和运输服务,以获得用户的信任。一旦安装,应用程序便会请求权限,以便它可以控制短信和窃取设备上的敏感数据,以及渗透到目标设备联系人列表中的其他设备。

Cybereason的调查显示,这一攻击活动背后的威胁程序是一个名为“漫游螳螂(Roaming Mantis)”的中文组织。

自2017年起,FakeSpy就大行其道,最近的这场活动表明,它已经变得更加强大。代码改进、新功能、反仿真技术和新的全球性目标都表明,该恶意软件的开发者对其进行了良好的维护,并在继续发展。

过去几周,Cybereason一直在调查一个名为FakeSpy的新版安卓恶意软件,该软件于2017年10月首次被发现,2018年10月再次被报道。一个新的活动正在启动和运行,使用最新改进,相比以前的版本,明显是一个更强大的恶意软件。FakeSpy正在积极开发中并且正在迅速发展。新版本每周都会发布,并具有其他规避技术和功能。

我们的分析显示,这个虚假恶意软件背后的威胁程序是一个说中文的的组织,通常被称为“漫游螳螂”,这一组织曾在过去发起过类似的活动。FakeSpy是一个信息窃取程序,它窃取和发送短信,窃取金融和应用程序数据,读取账户信息和联系人列表等。

恶意软件使用短信钓鱼(SMS phishing)来渗透目标设备,这是一种依赖于社会工程的技术。攻击程序发送假短信来引诱受害程序点击恶意链接。该链接将他们导向一个恶意网页,提示他们下载一个Android应用程序包(APK)。

最近的这次伪造活动似乎针对的是世界各地的邮政服务用户,新版的FakeSpy伪装成政府邮局应用程序和交通服务应用程序。我们的分析表明,威胁的用户不再局限于东亚国家,而是针对世界各地的其他国家。

感染设备

到目前为止,FakeSpy广告系列的特征是SMS网络钓鱼(又称“网络钓鱼”)。这些SMS消息伪装成来自本地邮局的消息,并链接到FakeSpy下载。在JPCERT报告的先前活动中,移动用户收到了伪造的消息,其中包含据说来自Sagawa Express的“交付更新”。

打开网易新闻 查看更多图片

伪造的SMS消息诱使用户进入包含恶意APK(JPCERT报告)的假网站

点击短信链接,用户就会进入一个假网站,提示用户下载并安装假冒的邮政服务应用程序APK。

针对邮政和运输服务公司

最重要的发现之一是,新版的FakeSpy不仅针对说韩语和日语的人,还针对世界上几乎所有的邮政服务公司。

最近针对法国的FakeSpy广告系列的示例

打开网易新闻 查看更多图片

利用假邮政服务应用程序的新FakeSpy广告系列应用程序

所有最近的FakeSpy版本都包含相同的代码,只是做了一些小小的改动。假冒恶意软件已被发现伪装为以下公司:

美国邮政服务:美国联邦政府行政部门的独立机构,美国邮政是美国政府最知名的分支机构,提供公共资助的邮政服务。

皇家邮政:英国邮政服务和快递公司,在它的大部分历史中,它作为一个政府部门或公共公司运作。

德国邮政:德国邮政DHL集团,总部设在波恩的德国跨国包裹递送和供应链管理公司。

法国邮政:法国邮政是法国一家公共有限公司。

日本邮政:一家总部设在东京的日本邮政、物流和快递公司。

大和运输:日本最大的门到门送货服务公司之一,也在东京。

中华邮政:国有企业中华邮政是台湾的官方邮政机构。

瑞士邮政:瑞士的国家邮政服务,完全国有有限公司(AG)受公法管制。

德国邮政:德国邮政DHL集团,总部设在波恩的德国跨国包裹递送和供应链管理公司。

这些假应用程序是用WebView构建的,它是Android View类的一种流行扩展,可以让开发程序显示网页。FakeSpy在应用程序启动时使用这个视图将用户重定向到原来的邮局运营商网页,继续欺骗。这使得应用程序看起来是合法的,特别是考虑到这些应用程序的图标和用户界面。

伪装成邮局应用程序的新FakeSpy应用程序

FAKESPY代码分析

一旦用户点击了短信中的恶意链接,应用程序就会要求用户通过未知资源批准安装。这个配置可以通过“设置”->“安全”->“未知资源”来切换。PackageInstaller显示应用程序的权限访问并请求用户的批准,然后用户安装应用程序。

READ_SMS:允许应用程序阅读短信。

RECEIVE_SMS:允许应用程序接收SMS消息。

WRITE_SMS:允许应用程序写入存储在设备或SIM卡上的SMS消息,包括删除消息。

SEND_SMS:允许应用发送短信。

INTERNET:允许应用程序打开网络套接字。

WRITE_EXTERNAL_STORAGE:允许应用程序写入外部存储。

READ_EXTERNAL_STORAGE:允许应用程序从外部存储读取。

RECEIVE_BOOT_COMPLETED:允许应用程序在系统完成引导后接收广播。

GET_TASKS-允许应用程序获取有关当前或最近运行的任务的信息。(在API级别21中已弃用)

SYSTEM_ALERT_WINDOW:允许应用程序创建显示在所有其他应用程序顶部的窗口。

WAKE_LOCK:允许应用程序使用PowerManager WakeLocks来使处理器保持睡眠状态或使屏幕保持暗淡状态。

ACCESS_NETWORK_STATE:允许应用程序访问有关网络的信息。REQUEST_IGNORE_BATTERY_OPTIMIZATIONS:将应用程序列入白名单,以允许其忽略电池优化。READ_CONTACTS:允许应用程序读取用户的联系人数据。

FakeSpy软件包权限

打开app后,屏幕上会弹出两条信息:

更改SMS应用程序:设置权限以拦截在设备上收到的每个SMS并将这些消息的副本发送到C2服务器。

忽略电池优化:这将设置权限,以在手机屏幕关闭和手机锁定时继续以最大容量运行。

这些请求依赖于最终用户接受许可权更改,并指出了在授予应用程序许可权时保持健康怀疑态度的重要性。

打开网易新闻 查看更多图片

中华邮政版本安装过程及应用程序界面

加载动态库

一旦应用程序完成了安装过程,恶意软件便开始其真正的恶意活动。恶意应用程序da.hao.pao.bin(《中华邮报》)加载一个库文件libmsy.so,该文件用于执行打包的mycode.jar文件。JAR文件是tong.luo文件的解密版本,该文件位于资产文件夹中。

反编译的APK资源

通过比较加密资产文件tong.luo与解密JAR文件mycode.jar的大小,有趣的是注意到它是相同的文件

比较加密和解密的资产文件

libmsy.so将资产文件tong.luo解密后,它将mycode.jar动态加载到FakeSpy的进程中,如“adb logcat”命令的输出所示。

Logcat日志显示FakeSpy使用libmsy.so来执行恶意打包的mycode.jar文件

通过分析感染设备上运行的进程,表明该恶意软件创建了自己的子进程来执行多进程ptrace反调试技术。

FakeSpy通过创建自身的另一个子进程来使用一种反调试技术

通过对恶意软件进行深入分析,我们能够提取出未打包的JAR文件mycode.jar,并揭示一些非常有趣的代码。

窃取敏感信息

FakeSpy具有多个内置的信息窃取功能。第一个功能用于窃取联系人信息:函数upCon窃取联系人列表中的所有联系人及其信息。然后,它将使用以/ servlet / ContactUpload结尾的URL将其发送到C2服务器。被盗的数据字段是:

移动:受感染的设备电话号码和联系人的电话号码;

联系人:攻击者用来区分攻击者获得的被盗信息类型的标题;

名称:联系人的全名(显示名称);

upCon(上传联系人)函数,用于窃取联系人列表信息

为了进行测试,我们在Android模拟器中插入了虚假的联系人列表,并观察了结果。

已提取的联系人列表数据已发送到C2服务器

第二个窃取函数是onStartCommand,它窃取被感染的设备数据和其他信息。窃取的数据使用以/servlet/xx结尾的URL发送到C2服务器。被盗的数据字段是:

·移动:受感染的设备电话号码;

·设备:设备型号(在我们的示例中:Google Pixel 2);

·Sversion:操作系统版本;

·银行:检查是否有任何与银行相关或加密货币交易的应用程序;

·提供商:电信提供商(设备设置中的IMSI值);

·Npki:检查名为NPKI(国家公共密钥基础结构)的文件夹是否可能包含与金融交易有关的身份验证证书。

打开网易新闻 查看更多图片

onStartCommand函数用于窃取设备信息和额外的敏感数据

提取的设备信息和其他敏感数据发送到C2服务器

FakeSpy要求使用默认的SMS应用程序,因为它使用onReceive函数来拦截传入的SMS消息。它保存消息的元数据和内容,按字段过滤信息,然后使用URL / servlet / SendMassage2将其发送到C2服务器。它收集的字段是:

·手机:发送短信的电话号码;

·内容:邮件正文;

·发件人:发送消息的联系人姓名;

·时间:收到消息的时间。

onReceive函数用于拦截传入的SMS消息

恶意软件使用sendAll函数发送将恶意软件传播到其他设备的消息,它会向感染设备的所有联系人发送一个钓鱼信息,同时发送到FakeSpy安装页面的恶意链接。

sendAll函数用于将恶意消息传播到联系人列表

FakeSpy代码中的另一个有趣的功能是使用upAppinfos功能收集设备的IMEI(国际移动台设备身份)编号和所有已安装的应用程序。它使用以/ servlet / AppInfos结尾的URL将所有这些数据发送到C2服务器。

upAppinfos函数用于获取设备IMEI及其安装的所有应用程序

FakeSpy可以使用isNetworkAvailable函数检查网络连接状态,让这个函数更可疑的是两个用中文写的字符串:

isNetworkAvailable函数用于监视网络连接状态

反仿真器技术

FakeSpy似乎使用了多种技术来逃避通过模拟器的检测,它表明恶意软件可以检测它是在仿真环境中运行还是在真实的移动设备上运行,并可以相应地更改其代码模式。

第一个例子是onStart函数,恶意软件在其中查找字符串“Emulator”和x86处理器模型。

反仿真器代码

为了模拟这种技术,我们分别用视频来说明FakeSpy(皇家邮政示例)在物理设备和仿真器上的不同表现。

在物理设备与仿真器(反仿真器)上的FakeSpy行为

这个模拟显示了FakeSpy在物理设备和仿真器上的行为不同,当FakeSpy通过点击物理设备上的应用程序执行第二次时,它会重定向到应用程序设置。相反,在模拟器上,将显示一条烤面包消息,显示“安装已完成”,此时FakeSpy会将其自身删除。

FakeSpy反仿真技术的另一个例子是它如何使用getMachine函数,该函数使用TelephonyManager类检查deviceID、电话号码、IMEI和IMSI。一些仿真器根据在仿真器软件中创建的默认号码和端口号(5554)构建其电话号码。

使用反模拟器技术的getMachine函数

更新过程

对新的FakeSpy样本与旧的样本进行的分析显示出代码差异和新功能,这些变化表明FakeSpy的活动仍在进行中并且仍在开发中。

较新版本的FakeSpy使用新的URL地址与FakeSpy进行恶意通信。函数主体使用DES加密算法对这些地址进行编码。以下示例显示了用于解密编码的十六进制字符串(jUtils.decrypt())的纯文本密钥“TEST”。这些编码的字符串包含新版本的FakeSpy中看不到的URL地址。

将旧的FakeSpy示例中的字符串与新的示例进行比较

谁是FAKESPY钓鱼活动的幕后黑手?

Cybereason Nocturnus团队怀疑恶意软件的操作员和开发者都说中文的。我们的发现和之前的研究表明,最近这些活动背后的威胁程序很可能是一个被称为“漫游螳螂”的说中文的组织。

漫游螳螂被认为是2018年4月首次发现的说中文的黑客团体,并不断进化。一开始,这个黑客团体主要针对亚洲国家。现在,他们正在把活动扩展到世界各地的观众。作为他们活动的一部分,他们被认为劫持了日本路由器上的DNS设置,将用户重定向到恶意IP地址,创建伪装成流行应用的恶意Android应用,通过创建苹果钓鱼页面窃取苹果ID证书,以及在浏览器上执行网络加密挖掘。

与中国的联系

中文服务器基础结构:FakeSpy应用程序使用.club TLD和以/ servlet / [C2 Command]结尾的URL将偷来的信息发送到C2域(上面在“隐藏敏感信息”部分中提到)。所有这些域都已在中国互联网应用服务提供商Bizcn,Inc.上注册为“Li Jun Biao”。

其中一台C2服务器的域配置文件示例

查询C2服务器的历史WhoIs

代码中的中文痕迹:在调查过程中,Cybereason Nocturnus团队发现了可能显示说中文的威胁行动程序的代码。例如,我们在此博客中先前讨论的名为isNetworkAvailable的函数中发现了一些用中文编写的可疑字符串:

在FakeSpy的代码中发现了两个可疑的中文字符串

在早期的一项研究中提到了一个几乎相同的功能,那就是将FakeSpy和其他恶意软件与四处传播的螳螂群联系在一起。

中文APK名称:FakeSpy的某些APK软件包名称中包含简体中文(普通话)单词,这些单词可能与中文歌曲和歌词,食物,省份等相关。

FakeSpy软件包的应用程序ID名称,并引用了它们的可能含义

总结

FakeSpy最早出现于2017年10月,主要针对东亚国家。我们的研究显示了该恶意软件在代码和复杂性方面的最新进展,以及其向欧洲和北美扩张的趋势。这种手机恶意软件伪装成合法的、可信的邮政服务应用程序,这样它就可以获得用户的信任。一旦安装完毕,它就会向用户请求权限,这样它就可以窃取敏感数据,操纵短信,并可能感染用户的联系人。

现在,这款恶意软件伪装成各国官方邮局和交通服务应用程序,针对世界上更多的国家。这些应用程序看起来是合法的,因为它们的应用程序标识、UI外观和重定向到运营商的网页都和真的一模一样

恶意软件的开发者似乎投入了大量的努力来改进这个恶意软件,功能升级,使它更复杂、反检测技术更好。这些改进使FakeSpy成为市场上最强大的信息窃取程序之一。我们预计这个恶意软件会继续进化,并添加新的功能。

参考及来源:https://www.cybereason.com/blog/fakespy-masquerades-as-postal-service-apps-around-the-world