背景信息
Arid Viper组织很久以前就开始使用移动端恶意软件,其中涵盖至少四款Android间谍软件家族和一个针对iOS的植入程序Phenakite。SpyC23 Android恶意软件家族至少从2019年就已经存在,不过它跟Arid Viper间谍软件家族之间的共享代码可以追溯到2017年。ESET在2020年的一次活动中首次报道了这一消息,当时该组织使用了第三方应用商店来分发武器化的安卓软件包(APK),其中涉及到了几个模仿Telegram和Android应用程序更新管理器的应用程序。
2022年和2023年初,Arid Viper开发了几个新的SpyC23版本,其中有两个App伪装成了Telegram,另一个则伪装成了一个名为Skipped Messenger的约会App。
SentinelLabs的研究人员将这些新版本的SpyC23与2020年早期版本以及与Arid Viper相关的几个旧的Android间谍软件家族进行了比较,即GnatSpy、FrozenCell和VAMP。研究发现,SpyC23的开发过程中发生了许多变化,且与旧版本恶意软件家族的代码有明显的重叠和复用。
应用程序分析
这些应用程序的主题集中在消息传递和通信上,我们通过研究分析后,确定了两个识别度比较高的主题:一个专门模仿Telegram,另一个则模仿约会应用程序Skipped Messenger。需要注意的是,该威胁组织之前也一直都依赖于Telegram和约会App这两个主题来伪装合法应用程序。
Arid Viper经常使用社会工程学技术来传播恶意软件,并通过各种其他方式去尽可能地接近他们的目标用户。社工技术对于恶意软件的传播来说是一种有效途径,因为在目标用户成功安装恶意App之前,威胁行为者需要克服许多障碍。而相比让目标用户在没有提示的情况下成功安装间谍软件,通过社工技术来实现该目标则更简单也更有效。
Skipped Messenger有一个非武器化版本(SHA-1: 6e1867bd841f4dc16bef21b5a958eec7a6497c4e),这个版本跟恶意版本共享相同的Firebase服务主机名skippedtestinapp[.]firebaseio[.]com。正如Talos的报告所指出的,Skipped最初是一款合法的约会App,而Google Play商店的版本最后一次更新是在2021年8月。
跟大多数Android恶意软件一样,这些应用程序会要求目标用户给植入的App提供更多权限,这样便能够为间谍软件的活动提供便利。
恶意软件会尝试要求获取下列权限:
- 1、获取手机地理位置信息;
- 2、在没有用户交互的情况下拨打电话;
- 3、监控用户的通话;
- 4、使用麦克风录制,捕获音频输出;
- 5、对存储器的读写权限;
- 6、读写联系人列表;
- 7、修改网络状态;
- 8、收集设备上使用的帐户列表;
- 9、无需用户交互即可将文件下载到手机;
- 10、以服务的形式启动JAR文件;
- 11、阅读设备以及任何连接的可穿戴设备上收到的通知信息;
Arid Viper的开发人员采用了反逆向编译和反虚拟化技术提升了研究人员的分析难度,这些APK代码都经过了混淆处理,而且在Android模拟器中,即使请求的权限被授予后,应用程序也会闪屏并反复循环提示。
研究人员将将这些新版本与旧的SpyC23变种进行比较后发现,包名也有明显的重复,这也表明了新版与旧版之间的紧密联系。在下图中,左边的旧版本在update.bbm包中包含恶意代码,而右边的版本在apps.sklite.pacJava包中也包含了类似的子包:
重复的情况也出现在了类名身上,开发人员经常以任命的形式来命名类,例如下图所示的rc_cola/tas_ran_rc_col包中的内容:
这些应用程序规模非常大,因此想要对每个类都进行分析就有些不切实际。因此,我们就主要关注几个有意思的类和方法即可。
ACCAPPService类
这个类负责处理跟C2的通信,并且包含了与用户卸载应用程序的相关代码。SendToServerTask子类在用户进入“dangerous”菜单时进行日志记录,并解析包含英语单词“apps”或“applications”以及阿拉伯语单词“applications”的活动菜单名称:
Brodie类
这个类负责应用程序的大部分上传请求处理,充当应用程序和C2服务器之间的接口。Brodie包含一个名为isProbablyArabic的方法,这也表明这些应用程序针对的是讲阿拉伯语的目标用户。
CallRecService类
该服务会启用间谍软件的呼叫记录功能。这个类是从外部库libcallrecfix.so导入,并作为服务运行。Unix库基于至少两个开源的Android呼叫记录项目实现其功能,不过这两个项目都没有得到积极维护,并且从2020年开始一直都是SpyC23迭代的主要内容。
checkRaw类
这个音频上传服务具有许多与Arid Viper的Android工具集中旧版本相同的状态日志字符串和媒体记录参数:
这些录音代码中有一部分托管在GitHub库中,虽然有可能是威胁行为者根据开源项目移植,但SpyC23 APK之间的相似之处是一致的,并且外部版本没有相同的变量或日志信息。
Moller类
这个类之所以吸引到了我们的注意力,是因为它包含的代码可以追溯到Arid Viper的Android间谍软件的早期版本。我们从趋势科技的Arid Viper报告中发现了一个2017年的GnatSpy样本,该样本可以通过一个名为JsDirService的子类共享相同的文件上传功能。
Panda类
这个类可以从外部类libRoams.so和lib-uoil.so加载函数方法,代码将导入特定制造商相关的函数代码。
Panda类不仅可以从开源的Gotev Android Upload Service导入方法(旧版本的SpyC23也使用该服务),而且Panda还可以从OKhttp库导入方法来处理HTTP请求。当OnCreate方法运行时,它会初始化Gotev服务,解析C2配置值,并注册GarciaReceiver(一个监控连接状态变化的接收器),这种情况在旧版本样本中也存在。
与旧版本的SpyC23一样,这个类也可以从存储在lib-uoil.so库中解析和解码字符串并获取C2服务器详情。字符串部分使用了Base64编码,可以通过解析获取真实的C2服务器URI。
C2基础设施
这些应用程序使用的C2服务器延续了长期以来的Arid Viper域名命名方案,即使用西方人的名字作为连字符主机名。其主要的C2服务器包括:
- 1、luis-dubuque[.]in – Skipped Messenger APK更新所使用的C2域名
- 2、danny-cartwright[.]firm[.]in – com.teleram.app APK所使用的C2域名
- 3、conner-margie[.]com – com.alied.santafi所使用的C2域名
入侵威胁指标IoC
SHA1
SHA1 文件
03448782d5b717b7ad1a13b1841119bc033f40dd Teleram /lib/mips/librealm-jni.so
12af178d20ec7e1294873304b0ea81b5fcfd6333 Teleram /lib/armeabi-v7a/librealm-jni.so
17ab647f3b7ccf15b82f51e19301e682f7e8c82a APP-UPGRADE /armeabi-v7a/libRoams.so
29814eacb12b53efcda496485765a30c3c2b589e Santafi /lib/x86_64/libsonsod.so
2f0895fa9e1a404da46f56ab13c131de1a0eac1e APP-UPGRADE /x86/libRoams.so
300fb7a0597519b99b6120d16666be9b29ee5508 APP-UPGRADE /x86_64/libcallrecfix.so
31ba9425007d17745bb6b44c85042dcbd15fe837 Santafi /lib/x86_64/libcallrecfix.so
46bfcb28cde424d0d11e5772c2683391b0f1491a com.teleram.app.apk a Telegram-themed APK
4f58d69c53685365a4b6df70eca6fa203e6ba674 APP-UPGRADE /x86_64/libRoams.so
532876649c027ebaea56604fbcd7ce909a8aa4e3 APP-UPGRADE /arm64-v8a/libcallrecfix.so
5476d52ab6f982bb29ba2ace0074e77523f9f655 APP-UPGRADE /x86/libcallrecfix.so
55c9c7a53c9468d365743f155b2af7e189586822 APP-UPGRADE /arm64-v8a/libRoams.so
5a238ade0b402c3dbef7c82406649f27ae6b479a Santafi /lib/x86/libcallrecfix.so
600442488eb9536c821188dfad9d59e987ff7a56 Santafi /lib/armeabi-v7a/libsonsod.so
6f68e8645b4b88d7608310b7736749368398914a Teleram /lib/x86/librealm-jni.so
793177ffe60030fefbe6a17361b266980f151fa4 Santafi /lib/arm64-v8a/libcallrecfix.so
893dae5ded7eb0a35e84867e62cbbb7e831aac97 Santafi /lib/arm64-v8a/libdalia.so
9c1c02a387b0aa59b09962f18e4873699d732019 Santafi /lib/armeabi-v7a/libcallrecfix.so
9d9696bc552dc5dbb4d925d0fb04f77018deef50 Teleram /lib/x86_64/librealm-jni.so
a610a05d6087bc1493e505fd4c1e4ef4b29697e3 com.alied.santafi.apk a Telegram-themed APK
a8937d38cc8edb9b2dfb1e6e1c5cad6f63ae0ecc APP-UPGRADE /x86/libuoil.so
a8e0b6fda4bc1bd93d2a0bc30e18c65eb7f07dec Teleram /lib/arm64-v8a/libcallrecfix.so
aacb4e5f9e6b516b52d0008f2e5f58c60b46610b Teleram /lib/armeabi-v7a/libcallrecfix.so
ae8d4853377f4a553ecad0c84398ef9dc8735072 Teleram /lib/x86/libcallrecfix.so
b9835174a9a4445dc4d5ff572a79c54f234120bf Santafi /lib/armeabi-v7a/libdalia.so
c0f4592df97073fb5021e2acee0a3763b8fbaf76 Teleram /lib/x86_64/libcallrecfix.so
c1c5a00b22e7d12e8a41d5d8fbe625ecb218fa7c Santafi /lib/arm64-v8a/libsonsod.so
c396327a2332bd6fbc771a97b5e0d4d1a43e8f72 APP-UPGRADE themed Skip Messenger APK
ce954dcc62f17f6e31bfa9164f5976740f1b127e APP-UPGRADE /arm64-v8a/libuoil.so
cfa5ef1bff2746407f96ab5c86b66ec5cf305e77 Santafi /lib/x86_64/libdalia.so
da690c4b1569e1f0b0734762c0f274e3ba33ded1 APP-UPGRADE /armeabi-v7a/libuoil.so
de92fb9af9d6e68a001b6263b9c3158325d77f99 Teleram /lib/arm64-v8a/librealm-jni.so
e05ce0496c6d20c24997c17a65c44ccd08cb2a10 APP-UPGRADE /armeabi-v7a/libcallrecfix.so
eb14e05364e675fcf03934be549ae96b36b12af0 Santafi /lib/x86/libdalia.so
f8adf63d34eb54121389b9847771d110978aec8e APP-UPGRADE /x86_64/libuoil.so
fb7b9681567478a660413ec591fc802e35a55b7e Santafi /lib/x86/libsonsod.so
域名
Domain Notes
1058215140016-kv5c01acm9r7argbis96lmudg6p68koe.apps.googleusercontent.com Skipped Messenger APK所使用的Google Cloud内容主机名
1095841779797-idgdkor5mh0lbjeq5spcksbj7jpdlaj9.apps.googleusercontent.com com.alied.santafi所使用的Google Cloud web客户单主机名
314359296475-glearr20do927s2v75cgiocb585gqjgd.apps.googleusercontent.com Teleram app所使用的Google Cloud web客户单主机名
conner-margie[.]com com.alied.santafi所使用的C2域名
danny-cartwright[.]firm[.]in com.teleram.app APK所使用的C2域名
jolia-16e7b.appspot.com com.alied.santafi所使用的Google Storage Bucket
luis-dubuque[.]in Skipped Messenger APK所使用的C2域名
rashonal.appspot.com Skipped Messenger APK所使用的Google Cloud web客户端主机名
skippedtestinapp.firebaseio.com Skipped Messenger APK的Firebase服务
yellwo-473d0.appspot.com Teleram app所使用的Google Storage Bucket
参考链接:https://www.freebuf.com/articles/mobile/385531.html
图片来源网络目标可联系删除