近日,ESET研究人员发现了一起活跃的间谍活动,通过伪装成消息传递服务的应用程序瞄准安卓用户。虽然这些应用程序提供功能服务作为诱饵,但它们与开源的XploitSPY恶意软件捆绑在一起。研究人员将这一活动命名为“eXotic Visit”,并自2021年11月开始追踪其活动踪迹。
分析发现,黑客通过专门的网站分发恶意Android应用程序,甚至有段时间还会通过Google Play商店进行分发。由于活动的针对性特质,Google Play上的应用安装数量很低,且都已从应用商店下架。目前,没有迹象表明这次行动与任何已知组织有关联;不过,研究人员正在追踪其背后的威胁行为者,并称之为“虚拟入侵者”(Virtual Invaders)。
报告要点
- 这种活跃且极具针对性的安卓间谍活动始于2021年底,研究人员将其命名为“eXotic Visit”,其主要模仿通过专用网站和Google Play分发的消息应用程序。
- 下载的应用程序提供合法的功能,但也包括来自开源安卓远程访问木马(RAT) XploitSPY的代码。两者使用相同的C&C以及相同的C&C管理面板。
- 多年来,这些威胁参与者通过添加混淆、模拟器检测、隐藏C&C地址和使用本机库来定制他们的恶意代码。
- 攻击者最感兴趣的地区似乎是南亚,特别是巴基斯坦和印度的受害者沦为攻击的主要目标。
- 目前,ESET研究人员没有足够的证据将此活动归因于任何已知的威胁组织;不过,他们正在内部以“虚拟入侵者”的身份持续追踪该组织。
包含XploitSPY的应用程序可以提取联系人列表和文件,获取设备的GPS位置,以及与相机、下载和各种消息应用程序(如Telegram)相关的特定目录中列出的文件名称。如果确定了感兴趣的某些文件名,则随后可以通过命令和控制(C&C)服务器的附加命令从这些目录中提取这些文件名。有趣的是,与XploitSPY集成的聊天功能的实现是独一无二的;研究人员坚信这个聊天功能是由“虚拟入侵者”小组开发的。
该恶意软件还使用了一个本地库,该库通常用于Android应用程序开发,以提高性能和访问系统功能。然而,在这种情况下,该库还被用来隐藏敏感信息,比如C&C服务器的地址,这使得安全工具更难对该应用程序做出分析。
值得一提的是,以下章节所描述的应用均已从Google Play下架;此外,ESET还发现另外10个包含基于XploitSPY代码的应用程序,并与谷歌分享了这一发现。随后,这些应用程序也从商店中删除了。下面描述的每款应用的安装数量都很低,这表明这是一种有针对性的方法,而非一种广泛的策略。
eXotic Visit应用程序发展时间轴
从时间顺序开始,2022年1月12日,MalwareHunterTeam分享了一条推文,其中包含一个哈希值和一个网站链接,该网站发布了一个名为WeTalk的应用程序,该应用程序模仿了中国流行的微信(WeChat)应用程序。该网站提供了一个链接至GitHub项目,可以下载恶意的安卓应用程序。根据GitHub上的可用日期,wetalk.apk应用程序于2021年12月上传。
当时有5款应用可用,分别是ChitChat.apk、LearnSindhi.apk、safchat .apk、wechat.apk和wetalk.apk。ChitChat应用程序自2021年11月起在GitHub上可用,通过专用网站(ChitChat .ngrok.io;见图1)以及之前提到的恶意WeTalk应用分发。两者都使用相同的C&C地址和图2所示的管理面板登录界面。
【图1:ChitChat应用程序的分发网站】
【图2:WeTalk和ChitChat命令与控制服务器的管理面板登录页面】
自2023年7月以来,同一个GitHub账户托管了新的恶意Android应用程序,这些应用程序具有相同的恶意代码和C&C服务器。该应用程序存储在五个存储库中,使用名称如ichat.apk、MyAlbums.apk、PersonalMessenger.apk、Photo Collage Grid & Pic Maker.apk、Pics.apk、privatchat .apk、simino .apk、Specialist Hospital.apk、TalkUChat.apk和Themes for Android.apk。
回到ChitChat.apk和wetalk.apk本身,这两个应用程序都包含承诺的消息传递功能,但也包含开源恶意软件XploitSPY的代码。XploitSPY基于另一款名为“L3MON”的开源安卓RAT;然而,它被作者从GitHub上删除了。L3MON的灵感来自另一个名为“AhMyth”的开源Android RAT,具有扩展的功能。
间谍活动和远程控制目标设备是该应用程序的主要目的。除此之外,该恶意代码还能够实现如下操作:
- 列出设备上的文件;
- 发送短信;
- 获取通话记录、联系人、短信和安装的应用程序列表;
- 获取周围Wi-Fi网络、设备位置和用户账户的列表;
- 用相机拍照;
- 从设备周围录制音频;
- 拦截收到的Signal和任何其他包含字符串新消息的通知。
与前面提到的应用程序(wechat.apk和ChitChat.apk)使用的相同的C&C地址也被Dink Messenger所用。据VirusTotal的在野URL所示,Dink Messenger于2022年2月24日从letchitchat. info下载可用。在消息传递功能之上,攻击者还为该应用添加了基于XploitSPY的恶意代码。
2022年11月8日,MalwareHunterTeam在推特上发布了恶意Android alphachat.apk应用程序的哈希值及其下载网站。该应用程序可以在与Dink Messenger应用程序(letchitchat.info)相同的域名上下载。Alpha Chat应用使用与图2相同的C&C服务器和C&C管理面板登录页面,但端口不同;该应用程序也包含相同的恶意代码。研究人员并未获取关于Dink Messenger何时在域名上可用的信息;随后,它被Alpha Chat所取代。
与来自eXotic Visit活动的先前版本的XploitSPY相比,被木马化的Alpha Chat应用程序涉及包含模拟器检测的恶意代码更新。如果这个应用程序检测到它在模拟器中运行,那么它就会使用一个虚假的C&C地址,而不是显示真实的C&C地址,如图3所示。在执行动态分析时,这很可能会阻止自动恶意软件沙箱识别实际的C&C服务器。
【图3:模拟器检测】
Alpha Chat还使用一个额外的C&C地址来渗漏大小超过2MB的非图像文件。其他文件则通过web套接字渗漏到C&C服务器。
这就是Dink Messenger和Alpha Chat应用之间的联系:它们都在同一个专门的网站上发布。然而,Dink Messenger也通过Google Play商店进行分发:Dink Messenger 1.0版本于2022年2月8日出现在Google Play上,但没有包含恶意功能。这可能是威胁行为者的一个测试,看看应用是否会被验证并成功上传到商店。2022年5月24日,1.2版本被上传,仍然没有恶意功能。当时,这款应用的安装次数超过了15次。2022年6月10日,1.3版本上传到Google Play,这个版本包含恶意代码,如图4所示。
【图4:没有恶意功能(左)和带有恶意功能(右)的Dink Messenger的类名比较】
随后,又有三个带有相同恶意代码的版本被上传到Google Play;最后一个版本是1.6,于2022年12月15日上传。总而言之,这六个版本共获得超过40次安装。所有带有或不带有恶意代码的应用版本都由同一开发者证书签名,这意味着它们是由同一恶意开发者创建并推送到Google Play的。
同样重要的是,letchitchat. info上的Dink Messenger应用程序使用与Google Play上的Dink Messenger应用相同的C&C服务器,并且可以执行扩展的恶意操作;然而,两者的用户界面是不同的(见图5)。Google Play上的Dink Messenger实现了模拟器检测(就像Alpha Chat一样),而专用网站上的则没有。
【图5:从专用网站(左)和Google Play(右)下载的Dink Messenger的用户界面】
2022年8月15日,声称提供电话号码所有者信息的Telco DB应用程序(包名为com.infinitetechnology.telcodb)被上传到另一个应用商店(参见图6)。这个应用程序有相同的恶意代码,一个新添加的带有虚假C&C地址重定向功能的模拟器检查,和一个额外的用于文件渗漏的C&C服务器。C&C地址不像以前那样是硬编码的;相反地,它是从Firebase服务器返回的。研究人员认为这是隐藏真实C&C服务器的另一个技巧,甚至可能在未来更新它。研究人员坚信该应用程序也是eXotic Visit活动的一部分。
【图6:Telco DB应用程序的用户界面】
四天后,也就是2022年8月19日,Sim Info应用被上传到Google Play,作为该活动的一部分。它还声称可以向用户提供有关谁拥有电话号码的信息。
该恶意代码与先前示例相同的C&C服务器进行通信,除了威胁参与者包含本地库之外,其他方面都是相同的。Sim Info在Google Play的安装量超过30次,具体下架时间未知。
2023年6月21日,恶意Defcom应用被上传到Google Play;参见图7。
【图7:Google Play上的Defcom消息应用程序】
Defcom是一个被木马化的通讯应用程序,也是eXotic Visit活动的一部分,使用相同的恶意代码和本地库来检索其C&C服务器。它虽然使用了一个新的C&C服务器,但是所用的管理面板登录界面却与图2所示相同。该C&C域名(zee.xylonn.com)于2023年6月2日注册。
在该应用于2023年6月被下架之前,它在Google Play上的安装量约为6次。
【图8:所有应用程序首次作为活动的一部分可供下载的时间轴】
除了已经提到的恶意应用之外,研究人员还能够识别其他被上传至Google Play的应用,以及其他试图上传的应用,但却无法判断上传是否成功。虽然根据相同的检测名称识别了它们,但研究人员无法获得样本来分析并验证它们是否属于同一活动的一部分。不过,无论在哪种情况下,它们都包含基于XploitSPY的恶意代码。表1列出了Google Play上可用的XploitSPY应用程序。这些应用的安装量都很低。Google Play上的大量应用安装量为零,有些低于10个安装量。Play Store的最高安装数低于45个。
【表1:Google Play上出现了更多包含xploitspy的应用】
表2列出了开发者试图在Google Play上上传的恶意应用;然而,研究人员并不知道它们是否会出现在Google Play上。
【表2:被上传到Google Play的包含xploitspy的应用】
ESET已将上述所有应用都认定为恶意应用,并与谷歌分享了调查结果,谷歌随后取消了这些应用的发布。报告中提到的所有曾出现在Google Play上的应用都已在Play商店中下架。
受害者研究
研究表明,eXotic Visit开发的恶意应用程序通过Google Play和专门的网站传播,其中四个应用程序主要针对巴基斯坦和印度的用户。研究人员在乌克兰的一台Android设备上检测到这四款应用中的Sim Info,但相信乌克兰并非这款应用针对的目标,因为该应用在Google Play上可供任何人下载。根据数据显示,Google Play上的每个恶意应用程序都被下载了几十次;但是,无法获悉下载细节。
研究人员确定了其中四个应用程序——Sim Info、Telco DB (com.infinitetechnology.telcodb)、Shah jee Foods和Specialist Hospital——的潜在目标。
Sim Info和Telco DB应用程序为用户提供了使用在线服务dbcenteruk.com搜索任何巴基斯坦手机号码的Sim卡所有者信息的功能;参见图9。
【图9:Sim Info搜索巴基斯坦电话号码信息的界面】
2022年7月8日,一款名为Shah jee Foods的应用程序从巴基斯坦上传到VirusTotal。这个应用程序也是活动的一部分。启动后,它会显示巴基斯坦地区的食品订购网站foodpanda.pk。
GitHub上提供的Specialist Hospital应用程序冒充印度专科医院(specialisthospital.in)的应用程序;参见图10。启动后,该应用程序会请求执行其恶意活动所需的权限,然后要求用户从Google Play安装合法应用程序。
【图10:恶意的Specialist Hospital应用程序(左)冒充合法服务(右)】
研究人员在其中一些应用程序中发现了超过380个受感染的账户;然而,他们的地理位置却无从检索。由于在10个应用程序中发现了相同的不安全代码,研究人员高度自信地认定,它们是由同一威胁行为者开发的。
归因
ESET研究人员将这一自2021年底开始活跃的行动称为“eXotic Visit”,但目前无法将此活动归因于任何已知的组织。因此,ESET内部将这次行动的幕后黑手称为“虚拟入侵者”(Virtual Invaders)。
正如Meta记录的那样,XploitSPY广泛可用,定制版本已被多个威胁参与者(如Transparent Tribe APT组)使用。然而,“eXotic Visit”活动所涉的应用程序中发现的修改却是独特的,与以前记录的XploitSPY恶意软件变体不同。
技术分析
初始访问
通过诱骗潜在的受害者安装一个虚假但功能正常的应用程序来获得设备的初始访问权限。正如在eXotic Visit应用程序的时间轴部分所述,恶意的ChitChat和WeTalk应用程序通过专门的网站(chitchat.ngrok.io和wetalk.ngrok. Io),并托管在GitHub (https://github.com/Sojal87/)上。
当时,还有另外三个应用程序——LearnSindhi.apk、safchat .apk和wechat.apk——可以从同一个GitHub账户获得。截至2023年7月,这些应用程序不再能从其GitHub存储库下载。然而,同一个GitHub账户现在托管了几个新的恶意应用程序可供下载。所有这些新应用程序也是恶意的eXotic Visit间谍活动的一部分,因为它们也包含相同的XploitSPY代码的变体。
Dink Messenger和Alpha Chat应用程序托管在一个专门的网站(letchitchat.info)上,受害者被引诱下载并安装应用程序。此外,Dink Messenger、Sim Info和Defcom等应用都曾在Google Play上出现过,只是目前已被Google下架。
工具集
研究分析的所有应用程序都包含GitHub上可用的恶意XploitSPY应用程序的代码定制。从2021年发现的第一个版本到2023年7月首次发布的最新版本,凸显了恶意行为者持续开发的努力。“虚拟入侵者”的工具集如下所示:
- 如果检测到模拟器,则使用虚假C&C服务器;
- 代码混淆;
- 试图通过从Firebase服务器检索在静态分析中隐藏C&C地址;
- 使用本地库,使C&C服务器和其他信息编码并逃逸静态分析工具。
以下是研究人员对Defcom应用程序中可在Google Play上使用的定制XploitSPY恶意软件的分析。
Defcom集成了XploitSPY代码与独特的聊天功能;研究人员坚信该聊天功能是由虚拟入侵者创造的。这适用于包含了XploitSPY的所有其他消息传递应用程序。
初始启动后,应用程序提示用户创建一个帐户,同时尝试通过查询api.ipgeolocation.io获取设备位置详细信息,并将结果转发给Firebase服务器。该服务器还充当消息传递组件的服务器。应用程序界面如图11所示。
【图11:Defcom的登录界面(左)和应用内标签(右)】
Defcom使用了一个本地库,该库通常用于Android应用程序开发,以增强性能和系统功能访问。这些库是用C或c++编写的,可用于隐藏恶意功能。Defcom的本地库名为defcome-lib.so。
defcome-lib.so的目的是从静态应用程序分析中隐藏敏感信息,如C&C服务器。在库中实现的方法返回base64编码的字符串,然后由恶意代码在运行时对其进行解码。这种技术不是很复杂,但它可以防止静态分析工具提取C&C服务器。图12显示了Java代码中的本地方法声明(native method declarations),图13显示了汇编代码中getServerUrl方法的实现。注意,图12中每个声明上面的注释是调用该方法时解码的返回值。
【图12:本地方法声明】
【图13:本地方法getServerUrl在汇编语言中的实现】
在被入侵设备上执行的命令是从命令控制服务器返回的。每个命令由一个字符串值表示。命令列表如下:
- 0xCO -获取联系人列表。
- 0xDA -从设备中渗漏文件。从命令与控制服务器接收到文件的路径。
- 0xFI -列出服务器指定目录中的文件。通过附加参数,它可以将文件从指定目录上载到C&C服务器。
- 0xIP -使用io服务获取设备地理位置。
- 0xLO -获取设备GPS位置。
- 0xOF -列出七个特定目录中的文件。在四种情况下,文件路径是硬编码的,在三种情况下,只有文件夹名称。下述额外参数指定目录:
- 0xCA -摄像机
- 0xDW -下载
- 0xSS - /storage/emulated/0/Pictures/Screenshots
- 0xTE -Telegram
- 0xWB - /storage/ emululated /0/Android/media/com.whatsappw4b / WhatsApp Business/Media
- 0xWG - /storage/ emululated /0/Android/media/com.gbwhatsapp/GBWhatsApp/ media
- 0xWP - /storage/ emululated /0/Android/media/com.whatsapp/WhatsApp/ media
有趣的是,GB WhatsApp是WhatsApp的非官方克隆版本。虽然它提供了额外的功能,使它非常受欢迎,但重要的是要注意,它不能在Google Play上使用。相反地,它经常出现在各种下载网站上,这些网站的版本经常充斥着恶意软件。尽管存在相关的安全风险,但该应用在包括印度在内的几个国家拥有庞大的用户基础。
图14和图15显示了联系人列表和目录列表的渗漏情况。
【图14:联系人列表渗漏】
【图15:文件列表渗漏】
网络基础设施
“虚拟入侵者”使用ngrok作为其C&C服务器;该服务是一个跨平台的应用程序,使开发人员能够将本地开发服务器公开到互联网。Ngrok可以创建一个隧道,使用Ngrok服务器连接到本地机器。Ngrok允许它的用户——也就是攻击者——保留一个特定的IP地址,或者将受害者重定向到攻击者自己在特定端口上的域。
结论
上文描述了由虚拟入侵者威胁参与者操作的eXotic Visit活动,该活动至少从2021年底开始活跃。多年来,这项活动不断发展进化,分发活动最先始于专门的网站,之后甚至一度转移到官方的Google Play商店。
研究已经确定了用于定制版本的开源Android RAT的恶意代码XploitSPY。它捆绑了合法的应用程序功能,大多数时候表现为一个虚假的,但功能正常的消息传递应用程序。多年来,该活动已经发展到包括混淆,模拟器检测和隐藏C&C地址等复杂功能。该活动的目的是间谍活动,目标可能是巴基斯坦和印度的受害者。
原文链接:
https://www.welivesecurity.com/en/eset-research/exotic-visit-campaign-tracing-footprints-virtual-invaders/