正文
在基本界面背后,KoSpy首先从Firebase Firestore获取简单配置来启动间谍软件功能。这个加密配置包含两个参数:一个"开"/"关"开关和命令与控制(C2)服务器地址。这种两阶段C2管理方法为威胁行为者提供了灵活性和弹性。如果C2被检测或阻止,他们可以随时启用或禁用间谍软件并更改C2地址。
获取C2地址后,KoSpy确保设备不是模拟器,并且当前日期已超过硬编码的激活日期。这种激活日期检查确保间谍软件不会过早暴露其恶意意图。
C2通信和基础设施
KoSpy向C2地址发送两种不同类型的请求。一种下载插件,另一种检索监控功能的配置。插件请求应该接收加密的、压缩的二进制文件;然而,由于分析期间没有活跃的C2,无法确认这一点。配置请求设置为接收一个JSON文档,该文档配置以下设置:C2 ping频率、以韩语和英语向用户显示的消息、下载插件的URL以及要动态加载的类名。
图片2
一些KoSpy C2域名仍然在线,但它们不响应客户端请求。
上图可以看到"conf"请求的一个例子。该请求是HTTP POST请求,有效负载采用JSON格式。JSON中的值经过加密和Base64编码,而字段名称则是明文。"vtr"字段包含从硬件指纹和Android ID生成的唯一受害者ID。"type"字段可以是"conf"或"code"之一,用于确定C2请求的类型。"pref"字段是一个复合字段,包含包名、应用版本、设备语言、硬件详情和已启用权限列表等信息。
借助动态加载的插件,KoSpy可以在受害者设备上收集大量敏感信息。这些能力包括:
收集的数据在使用硬编码的AES密钥加密后发送到C2服务器。Lookout研究人员在分析可用的KoSpy样本时观察到五个不同的Firebase项目和五个不同的C2服务器,这些可以在威胁指标部分看到。