使用新发现的移动恶意软件揭开 Kimsuky 针对 Android 设备的演变过程

摘要

S2W 的威胁研究和情报中心 Talon 最近发现了三种针对 Android 设备的新型恶意软件。
我们通过在包名称中添加“Fast”和每个包的特征来命名恶意 APKs FastFireFastViewerFastSpy
通过分析 APK,我们发现这与过去归因于 Kimsuky 组的活动有显着关联。
FastFire恶意软件伪装成谷歌安全插件FastViewer恶意软件伪装成“Hancom Office Viewer”,FastSpy是基于AndroSpy的远程访问工具。
这三个 APK 最近都被证实是由 Kimsuky 组织开发的,而FastViewer 和 FastSpy实际上被用来攻击韩国人。
由于 Kimsuky 组织的移动目标策略越来越先进,因此有必要小心针对 Android 设备的复杂攻击。
了解我们描述的 Kimsuky 组织针对移动设备的新策略将有助于主动预防感染。

— 注意不要在手机上打开钓鱼页面

— 注意不要从第三方和任何人下载浏览器程序和文档文件。

介绍

朝鲜黑客组织 Kimsuky(又名 Thallium、Black Banshee)于 2012 年首次活跃,对全球媒体、研究、政治和外交等领域的目标进行了攻击。该组织主要试图通过分发恶意软件和通过鱼叉式网络钓鱼攻击接管帐户来收集。攻击主要针对 Windows,但同样发现了针对 Android 设备的攻击实例。

2020 年 11 月,我们发现了Kimsuky 集团使用的移动版 AppleSeed 家族。在该样本中,该组织甚至称自己为 Thallium,这是微软给出的名称。我们在VB2021 localhost上发布了我们的分析。

2021 年 4 月,伪装成 KrCERT/CC 所属的 KISA(韩国互联网安全局)移动安全程序的恶意 APK 被分发。该 APK 也是AppleSeed系列的移动版本。当感染恶意APK时,它使用HTTP/S协议与C&C服务器通信,接收命令,并执行恶意行为,例如窃取被感染设备的信息。


Kimsuky 的 APK

S2W 的威胁研究和情报中心 Talon 最近在跟踪 Kimsuky 组织的过程中发现了三种针对 Android 设备的新型恶意软件。我们通过在每个恶意 APK 的包名称和每个特征中添加“Fast”来命名这三个恶意 APK FastFire、FastViewer和FastSpy 。

FastFire是 Kimsuky 小组目前正在开发的恶意 APK,伪装成 Google 安全插件。它从谷歌支持的应用程序开发平台 Firebase 接收命令,而不是像传统方法那样通过 HTTP/S 通信从 C&C 接收命令。

FastViewer恶意软件将自己伪装成“Hancom Viewer”,这是一种移动查看器程序,可以读取在韩国使用的韩文文档 (.hwp),并在从受感染设备窃取信息后下载其他恶意软件。

FastViewer 恶意软件下载FastSpy,并通过 TCP/IP 协议从攻击者的服务器接收命令。FastSpy是基于AndroSpy的源代码开发的,AndroSpy是一款开源的安卓设备远程控制工具。

FastFire 恶意软件伪装成 Google 安全插件

通过分析Kimsuky团伙以往使用的C&C服务器域的IP,我们发现了一个疑似Kimsuky团伙针对移动设备开发的恶意APK。它被命名为“ FastFire ”,因为它的包名包含“ fast secure”,并使用“ Fire base”进行C&C通信。

到目前为止,VirusTotal 中的所有防病毒供应商都没有将 APK 归类为恶意 APK。(检测结果0/64,截至2022.10.18)

VirusTotal 中的 FastFire 恶意软件

恶意 APK 的包名称为com.viewer.fastsecure并伪装了 Google Security Plugin。安装后,它会隐藏其启动器图标,使受害者不知道它已安装。

伪装成 Google 安全插件(보안 表示安全)

APK文件证书信息(链接)

APK 文件证书信息

FastFire详解

FastFire 包含五个恶意类。安装后,真正执行的只有三个类,两个类没有。FastFire 将设备令牌传输到 C&C 服务器,然后 C&C 服务器通过 Firebase Cloud Messaging (FCM) 向受感染的设备发送命令。

1.请求许可

执行 FastFire 时,首先执行 MainActivity 类,“您必须授予 Google Security Plugin 权限才能安全下载。”消息显示,并请求 MANAGE_OVERLAY_PERMISSION 权限。如果授予权限,将显示消息“已安全下载”。

2.服务中的C&C通信

在 FastFire 的清单文件中,指定了两个类作为服务执行。其中,只有MyFirebaseMessagingService类被实际执行。

启动模块服务

StartModuleService类在清单上指定,但在 FastFire 运行时并没有实际执行。该类通过Android VIEW缩进执行读取特定HTML页面的功能。

启动模块

startmodule类不在清单中,也没有被其他类调用,但实施了恶意代码。
Kimsuky 组织伪装成网站进行钓鱼攻击,劫持 Naver 和 Daum 等韩国大型门户网站的帐户,FastFire 恶意软件也针对这两个门户网站。如果在调用 startmodule 类时作为参数接收到的值中存在字符串“naver”、“daum”或“facebook”,它将连接到 C&C 服务器并获取一个 HTML 页面。由于实际上并未调用该类,因此它可能仍在开发中。

hxxp[:]//mc.pzs[.]kr/themes/mobile/images/about/temp/android/naver.html
hxxp[:]//mc.pzs[.]kr/themes/mobile/images/about/temp/android/daum.html
hxxp[:]//mc.pzs[.]kr/themes/mobile/images/about/temp/android/facebook.html

MyFirebaseMessagingService

Firebase 是一个移动开发平台,提供各种必要的功能,例如数据库、身份验证和消息传递。使用此功能,消息负载可以包含一个通知属性,Firebase SDK 会拦截该属性并尝试向用户显示可见的通知。

MyFirebaseMessagingService类通过 Firebase 云消息传递 (FCM) 接收命令来执行恶意行为。FastFire 生成设备令牌以使用 FCM,并将令牌值传输到 C&C 服务器。获得令牌后,攻击者向 Firebase 发出请求,将包含攻击者命令的消息有效负载发送到受感染的设备。作为对该请求的响应,Firebase 向设备发送一条消息。

hxxp[:]//navernnail[.]com/fkwneovjubske4gv/report_token/report_token.php?token=[设备令牌]

通过 FastFire 的 C&C 通信流

当收到命令时,执行 onMessageRecived 方法以执行操作。如果消息中存在my_custom_key的数据,FastFire 会从 C&C 服务器读取 HTML 文件,并连接将用户带到应用程序中特定页面的深层链接。根据值为“naver”、“daum”或“facebook”的 HTML 文件。

hxxp[:]//navernnail[.]com/fkwneovjubske4gv/android/naver.html
hxxp[:]//navernnail[.]com/fkwneovjubske4gv/android/daum.html
hxxp[:]//navernnail[.]com/fkwneovjubske4gv/android/facebook.html


onMessageReceived

额外的 C&C 服务器和恶意页面

在对 FastFire 的基础设施进行进一步分析后,发现了一个分配给 FastFire C&C 服务器解析 IP 的额外域。由于该域在与 FastFire 相同的目录路径中具有特定的 HTML 文件,因此它也被识别为 Kimsuky 使用的另一个 C&C 服务器。

  • FastFire 的 C&C 服务器:navernnail[.]com ( 23.106.122[.]16, SG )
  • 附加 C&C 服务器:goooglesecurity[.]com ( 23.106.122[.]16, SG )

从附加的C&C服务器获取的HTML文件在Android设备上执行通过深度链接调用特定应用程序的功能。FastFire 根据命令使用深层链接将用户带到应用程序中的特定页面,但安全 HTML 中的值都无法识别。预计攻击者将使用测试 APK 名称“ [Target]_host”或用于测试的随机字符串填充该值。


facebook.html


附加 C&C 服务器中的 HTML 页面

通常,从 Firebase 发送的通知是使用onMessageReceived方法处理的。但是,由于未实现该方法,因此不会执行该功能。此外,在用于测试通知的单独功能中,Facebook和Google的相关消息包含在土耳其语中。


Firebase 通知处理程序测试函数


分离通知测试函数

此外,一个文件“fcm.html”被保护起来,它通过深度链接调用fcm_host并下载额外的恶意代码。

  • hxxp[:]//goooglesecurity[.]com/fkwneovjubske4gv/android/fcm.html

因此,FastFire 被认为是 Kimsuky 小组目前正在开发的一种新的移动恶意软件,因为深度链接调用功能尚未正确实现,并且存在未实际执行的类。

FastViewer & FastSpy 伪装成 Hancom Office Viewer

除了 FastFire,我们还发现了模拟“Hancom Office Viewer”的移动 RAT。“Hancom Office Viewer”是一款移动文档查看器应用程序,用于查看 Microsoft Word、PDF 或“Hangul (.hwp)”文档,在 Google Play 商店的下载量超过 1000 万。

FastViewer通常执行文档查看器,但在读取攻击者专门创建的文档文件时,它会执行恶意行为。检查文件的前 4 个字节以确定文件是否由攻击者创建,如果满足条件,则将设备信息传输到 C&C 服务器。之后,FastViewer 额外下载FastSpy恶意软件并在内存中执行它以执行其他恶意操作。

整体攻击流程

FastViewer是将攻击者在普通Hancom Office Viewer应用程序中插入的任意恶意代码重新打包后的APK,包名、应用程序名称和图标与普通应用程序非常相似。

  • 8420236c32f0991feaa7869549abdb97(Hancom Office 查看器)
  • 3458daa0dffdc3fbb5c931f25d7a1ec0(快速浏览器)


应用程序信息(Hancom Office Viewer VS FastViewer)

FastViewer 使用jks证书(基于 Java 的证书格式)进行签名。证书信息如下。

FastViewer & FastSpy 详解

1.字符串解密算法

FastViewer 中使用的字符串由自定义算法解密。加密字符串用作第一个参数,密钥表的索引用作第二个参数。使用索引对应的异或密钥表的值得到密钥对后,从加密字符串的后面开始交替进行异或。

2.请求权限

FastViewer 向用户请求额外权限以进行恶意操作,例如接收命令、持久性和间谍活动。FastViewer 滥用可访问性,因此在执行恶意行为之前会检查是否已启用可访问性。

请求权限的类名是“HiPermission”,这是一个开源的,过去已经发布。据信,Kimsuky 小组修改了部
分源代码并将其应用到 FastViewer 中。

3.检查文件文件头

当读取攻击者创建的特殊文档文件时,通过检查文件的前 4 个字节是否为“EDC%”,恶意行为就会发生。然后将“EDC%”更改为原来的4个字节,将其转换为正常文档并显示给用户,在后台执行恶意行为。


检查文档是否由攻击者创建(左:HWP,右:PDF)

根据调用条件,根据变量“StrOpt”执行满足条件的恶意行为。

执行恶意代码的条件

4. C&C通信

FastViewer收集设备的信息,并将其作为ati参数发送给C&C服务器。如果app获取到设备的权限,成功获取到Device的IMEI值,则ati参数赋值为“Kur-{Device IMEI}_{Device IMEI}”。如果由于权限失败或其他问题无法获取IMEI值,则为ati分配“Kur-null_error_imei”。

  • (成功) hxxp://23.106.122[.]16/dash/index.php?&ati= Kur- {设备 IMEI} _ {设备 IMEI}
  • (失败) hxxp://23.106.122[.]16/dash/index.php?&ati= Kur-null_error_imei

之后,FastViewer从C&C服务器接收到的数据如下,它通过比较FastViewer中定义的版本变量和从服务器接收到的版本值来决定是否下载额外的模块。如果响应值为“ok”,则仅执行简单的信息窃取,不会下载额外的模块。

  • (响应)版本:0|rat:on|ip:23.106.122[.]16|port:4545|package:com.example.res|interval:120


来自服务器的响应

如上,当成功接收到附加模块的信息后,向C&C服务器发送下载模块的请求。版本值是从服务器接收到的值。

  • (下载请求) hxxp://23.106.122[.]16/dash/patch.php?name=Image { version } .bin&ati= { Device IMEI }

5. 下载一个附加模块——FastSpy

下载的模块是一个压缩的DEX文件,原始数据是在内存中通过base64解码和GZIP解压提取出来的。提取的文件是执行远程控制的FastSpy 。

数据提取后,通过调用与设备SDK版本匹配的LoadClass API,动态调用内存中DEX中的恶意类。如果该类调用成功,则解密后的DEX在应用安装路径下保存为image{version}.bin 。

  • 安装路径:{App安装路径}/image{版本}.bin
  • 文件名:image0.bin(版本:0)
  • 包名:com.example.res
  • MD5 哈希(压缩):aefa23b91cc667be041cad40abbfa043
  • MD5 哈希(提取):89f97e1d68e274b03bc40f6e06e2ba9a


下载的文件


提取的文件

执行 FastSpy 时,会将内部存储的 C&C 服务器信息与之前从 C&C 服务器接收到的信息进行比较。如果这两个值不同,则使用从服务器接收到的信息在内存中更新信息。

内部存储的 C&C 服务器信息

FastSpy 可以滥用从 FastViewer 获得的可访问性 API,在未经用户同意的情况下获得额外的权限。如果 FastSpy 请求针对恶意行为的特定权限,则会显示一个请求权限的弹出窗口。在这种情况下,FastSpy 将点击窗口中“同意”按钮的功能自动化,这样 FastSpy 就可以在不与用户交互的情况下自行获取权限。但是,它实际上并没有在我们保护的 FastSpy 中调用。

上述方法与之前Malibot恶意软件绕过谷歌MFA认证的方法类似。

sendAutoAction


clickAllowButton

FastSpy 可以控制受感染的设备、劫持电话和 SMS 信息,或者识别设备的位置以及是否通过摄像头、麦克风、扬声器、GPS 或 KeyStroke 实时使用。

此外,攻击者还可以访问受感染设备上的文件并将其发送到 C&C 服务器。为了渗漏,该文件使用 FastSpy 中使用的 gzip 算法和 base64 编码进行压缩。


FastSpy 执行的恶意行为

FastSpy 和 AndroSpy 之间的关联

FastSpy和AndroSpy在方法名、消息格式、函数、代码等方面具有相似的特点。AndroSpy 是一种开源 RAT 恶意软件,于 2018 年发布,具有方法和关键变量使用土耳其语的特点。


恶意软件的特征(AndroSpy VS FastSpy)


函数(AndroSpy VS FastSpy)

总结

通过分析 FastFire、FastViewer 和 FastSpy 恶意软件与 Kimsuky 组之间的关联,发现 FastFire 的 C&C 服务器域也用于 Kimsuky 组执行的“다양한 주제의 보도자료를 사칭한 Kimsuky 공격 시도 ”在过去。

对比当时发布的C&C URL和FastFire的C&C URL,两个活动使用的是同一个域,使用的是temp目录下的路径。此外,该团伙主要冒充韩国大型门户网站(Naver、Daum)窃取目标信息。

FastFire 恶意软件使用的域(navernnail[.]com、goooglesecurity[.]com)过去曾转向 23[.]106.122.16,该 IP 也被用作分发站点和 C&C 服务器适用于 FastViewer 和 FastSpy。

其中,FastViewer 和 FastFire 的签名日期包含在绑定到 23[.]106.122.16(新加坡)的 navernnail[.]com 域的时间段内,这三种恶意软件和基础设施都被 Kimsuky 使用同时。

此外,FastFire 额外验证的 C&C 服务器 goooglesecurity[.]com 也支持这一点。


重叠时间


FastFire 的 C&C 域和解析的 IP


整体基础设施

在分析过程中,navernnail[.]com 存在目录列表漏洞,因此我们能够收集服务器上存在的文件。其中,key_ps.txt文件中有一段类似于Kimsuky集团过去使用的keylogging脚本的代码,也使用了相同的mutex名称。

  • 文件名:key_ps.txt
  • MD5 : 5D56371944DEC9DA57DB95D0199DD920
  • 互斥名称:Global\AlreadyRunning191122
  • 参考:https 😕/twitter.com/brkdwn/status/1235531480777887744

目录列表


Kimsuky 的键盘记录器脚本 (key_ps.txt)

此外,info_sc.txt文件也被确认与Kimsuky组有相似之处。2022 年 2 月 18 日,伪装成韩国虚拟资产钱包服务 Klip 客户中心的恶意文件下载了一个非常相似的脚本。



左:2022–02–18 1589989024.xml / 右:info_sc.txt

结论

Kimsuky 组织不断进行攻击以窃取目标移动设备的信息。FastFire中用作 C&C 服务器的普通服务 Firebase是他们的高级策略。此外,人们正在尝试通过定制开源 RAT Androspy 来绕过检测。未来需要谨慎,因为 Kimsuky 组织可能会向 Android 设备分发具有相似功能和变体的恶意代码。

与FastViewer一样,复杂的攻击向量仅用于攻击特定目标,并且积极使用现有的开源来创建FastSpy等高性能变体。由于 Kimsuky 组织的移动目标策略越来越先进,因此有必要小心针对 Android 设备的复杂攻击。

附录 A. IoC

https://docs.google.com/spreadsheets/d/1HHbmiw_7XhlPBgzXYm7Hoi58Vb4ytfxBSGiMKTrU5uo/edit#gid=0

  • FDD0E18E841D3EC4E501DD8BF0DA68201779FD90237C1C67078D1D915CD13045
  • C038B20F104BE66550D8DD3366BF4474398BEEA330BD25DAC2BB2FD4B5377332
  • 1510780646E92CBEFC5FB4F4D7D2997A549058712A81553F90E197E907434672
  • 38D1D8C3C4EC5EA17C3719AF285247CB1D8879C7CF967E1BE1197E60D42C01C5
  • 884FF7E3A3CEA5CE6371851F205D703E77ABC7D1427D21800A04A205A124B649

link