8-BitQuest
菜单
[移动安全]

双尾蝎APT组织利用恶意Android程序攻击中东地区

· 10 分钟阅读 · @admin

双尾蝎APT组织利用恶意Android程序攻击中东地区 像素封面

自2016年1月起,双尾蝎组织(APT-C-23)针对巴勒斯坦地区的教育机构、军事机构等重要领域发起了长期、有组织、有针对性的网络攻击活动。该组织的攻击平台覆盖Windows与Android,攻击目标主要集中在中东地区。

本文分析的恶意软件样本伪装为“Google Play Installer”,安装后会模仿Telegram应用程序的图标和界面,以降低用户的警惕性。该恶意软件具备完整的间谍功能,包括窃取短信、通讯录、通话记录,远程录音、拍照、截屏等高危能力。

2. 样本信息

属性 值
MD5 dd4596cf68c85eb135f7e0ad763e5dab
文件类型 APK
包名 org.telegram.light
文件大小 26MB
应用名 Google Play Installer

3. 攻击流程图

攻击流程概览

4. 详细分析

4.1 AndroidManifest.xml分析

4.1.1 权限声明

该恶意软件申请了大量敏感权限,包括读写短信、读取通讯录、录音、GPS定位等危险权限,这些权限为其后续的恶意行为提供了基础条件。

权限申请列表

该恶意软件申请的权限及其用途说明如下:

权限 描述
android.permission.INTERNET 访问网络连接
android.permission.ACCESS_NETWORK_STATE 获取网络信息状态
android.permission.ACCESS_WIFI_STATE 访问WiFi状态
android.permission.CHANGE_WIFI_STATE 改变WiFi状态
android.permission.READ_PHONE_STATE 读取电话状态
android.permission.READ_CALL_LOG 读取通话记录
android.permission.WRITE_CALL_LOG 写入通话记录数据
android.permission.PROCESS_OUTGOING_CALLS 监视、修改或放弃拨出的电话
android.permission.CALL_PHONE 拨打电话
android.permission.READ_SMS 读取短信
android.permission.RECEIVE_SMS 接收短信
android.permission.SEND_SMS 发送短信
android.permission.READ_CONTACTS 读取通讯录
android.permission.WRITE_CONTACTS 写入通讯录
android.permission.GET_ACCOUNTS 访问Gmail账户列表
android.permission.READ_EXTERNAL_STORAGE 读取外部存储
android.permission.WRITE_EXTERNAL_STORAGE 写入外部存储
android.permission.CAMERA 使用摄像头拍照
android.permission.RECORD_AUDIO 通过麦克风录音
android.permission.ACCESS_FINE_LOCATION 通过GPS获取精确位置
android.permission.RECEIVE_BOOT_COMPLETED 开机自动运行
android.permission.WAKE_LOCK 保持设备唤醒状态
android.permission.SYSTEM_ALERT_WINDOW 显示系统级窗口
android.permission.DISABLE_KEYGUARD 禁用键盘锁
android.permission.MODIFY_AUDIO_SETTINGS 修改声音设置
android.permission.REQUEST_INSTALL_PACKAGES 请求安装应用
android.permission.GET_TASKS 获取当前或最近运行的应用
android.permission.REORDER_TASKS 重新排序系统任务
android.permission.KILL_BACKGROUND_PROCESSES 结束后台进程
android.permission.USE_CREDENTIALS 请求AccountManager验证
android.permission.READ_PROFILE 读取配置文件

4.1.2 Application入口点

恶意软件将应用入口点设置为net.axel.app.app.AppControler类,该类会在应用的所有组件实例化之前被加载执行。

Application配置

该应用使用“Google Play Installer”作为应用名,从图标和名称来看,明显是伪装成Google安装程序以诱导受害者安装。安装完成后,在应用列表中显示的是Telegram的图标。

安装前的图标

安装后的图标

4.1.3 Activity组件分析

Activity-alias机制实现图标伪装

恶意软件利用Activity-alias机制动态更换应用图标和名称,以伪装成其他应用或使用透明图标隐藏自身。所有activity-alias都通过targetActivity属性指向net.axel.app.activities.Main类。除了标签为“Telegram”的activity-alias外,其他activity-alias默认处于禁用状态,因此安装成功时显示的是Telegram的图标。

Activity-alias配置

各个Activity-alias对应的标签和图标如下:

标签ID 标签名 Activity类名 图标
app_wifi Wifi net.axel.app.Extra_wifi
app_chrome Chrome net.axel.app.Extra_chrom
app_play_services Play Services net.axel.app.Extra_Play_services
app_bixby Maps net.axel.app.Extra_Bixby
app_name Google Play Installer net.axel.app.Extra_Non_Trans
sys_name (空) net.axel.app.Extra 透明图标(用于隐藏自身)
- Telegram net.axel.app.Launcher

伪装界面Activity

以下4个Activity伪装成正常界面,在前台显示迷惑性内容的同时,在后台执行恶意代码:

伪装界面Activity列表

  1. Telegram Message界面伪装 第一个和第四个Activity伪装成“Telegram Message”界面:

    Telegram伪装界面

  2. 更新界面伪装 第二个Activity伪装成应用更新界面,其中标题、图标、描述和按钮文本等信息通过FCM(Firebase Cloud Messaging)云消息下发并动态显示:

    更新界面

  3. 安全扫描界面伪装 第三个Activity伪装成安全软件扫描界面,将目标卸载的应用标记为恶意软件,诱导用户点击删除:

    安全扫描界面

4.1.4 Service组件

该恶意软件注册了多个Service组件用于在后台执行恶意代码:

Service注册列表

此外还注册了无障碍服务(Accessibility Service),用于模拟屏幕点击等操作:

无障碍服务

4.1.5 Receiver组件

恶意软件注册了多个BroadcastReceiver用于接收来自系统和应用的广播消息:

Receiver注册列表

设备管理员权限

注册BroadcastReceiver接收设备管理员权限的激活或禁用事件:

设备管理员Receiver

恶意软件设置了诱导性的标题和描述,欺骗用户激活设备管理员权限(超级管理员权限):

设备管理员界面

一旦应用激活了设备管理员权限,就无法通过常规方式卸载。用户必须先在“设置 -> 安全 -> 设备管理器”中找到该应用并取消激活,然后才能卸载。当收到禁用设备管理员权限的请求时,恶意软件会跳转到主屏幕并返回警告信息:

禁用设备管理员处理

返回的警告信息翻译为:“Google Play Installer是系统应用,如果卸载它,设备将处于危险状态。”

警告信息

如果用户忽略警告继续禁用,则返回主屏幕:

返回主屏幕

跳转到主屏幕的实现代码:

跳转主屏幕代码

短信接收

当接收到短信时,恶意软件会判断是否为SMS指令。如果不是指令,则将短信内容写入文件并上传到C&C服务器;如果是指令,则执行相应的命令。详细分析见4.17.2节。

短信接收处理

网络状态变化

注册了两个BroadcastReceiver用于监听网络状态改变事件。当网络连接可用时,上传窃取的数据,包括通讯录、短信、通话录音和屏幕截图等:

网络状态监听

应用卸载监听

注册BroadcastReceiver监听应用卸载事件,当特定应用被卸载时上传应用名到C&C服务器:

应用卸载监听

这些监听的包名都包含“update”,推测这些应用是通过FCM下发“update”指令时下载安装的更新包:

监听的包名列表

应用安装监听

注册BroadcastReceiver监听应用安装事件:

应用安装监听

当安装的应用包名为org.telegram.messenger(正版Telegram)且已成功安装时,恶意软件会:

  • 隐藏自身图标
  • 删除assets目录下的apk安装文件
  • 启动刚安装的应用

Telegram安装处理

当安装的应用包名与FCM下发的“update”指令中的App_package字段匹配时,如果安装成功:

  • 上传安装成功消息到C&C服务器
  • 删除更新文件“mupdate.apk”和图标
  • 禁用所有Receiver
  • 启动新安装的应用

更新应用安装处理

关机监听

注册BroadcastReceiver监听设备关机事件:

关机监听

关机时将关机时间写入文件shutdown.nez:

记录关机时间

屏幕解锁监听

注册BroadcastReceiver监听屏幕解锁事件:

屏幕解锁监听

当屏幕解锁时,启动前置摄像头进行拍照:

解锁拍照

开机/重启监听

注册BroadcastReceiver监听设备开机或重启事件:

开机监听

当设备开机时,将当前时间写入shutdown.net文件:

记录开机时间

电话状态监听

注册BroadcastReceiver监听电话状态变化和拨出电话事件:

电话状态监听

接收到拨出或来电时,调用前置摄像头拍照并开始录音:

电话拍照录音

通知栏消息监听

注册BroadcastReceiver监听通知栏消息,主要功能包括窃取社交应用的通知消息和屏蔽安全软件的通知等:

通知监听

当通知栏收到新通知时,会取消部分应用的通知消息,使其不在通知栏中显示,主要针对三星和华为的内置安全应用:

屏蔽安全应用通知

读取社交软件的通知消息内容,包括图标、标题和内容,并保存到wfv文件:

读取社交应用通知

如果接收到WhatsApp的来电通知,开启录音服务:

WhatsApp来电录音

如果WhatsApp来电通知被移除,关闭正在运行的录音服务:

停止WhatsApp录音

4.2 组件间通信机制

Activity、Receiver、Service三个组件之间通过AlarmManager(闹钟服务)实现通信。PendingIntent用于指定闹钟触发时要执行的动作,如发送广播、启动Activity或Service等。

AlarmManager通信机制

启动Activity

启动Activity

启动Service

启动Service

发送广播

发送广播

4.3 设备标识生成

设备标识用于唯一识别受感染设备,在与C&C服务器通信时作为设备身份凭证。恶意软件根据Android系统版本采用不同的生成方法:

设备标识生成

4.3.1 Android版本低于29(Android 10以下)

在低版本系统中,依次尝试获取IMEI、WLAN的MAC地址或Device ID作为设备标识:

低版本设备标识

WLAN的MAC地址获取方法如下,遍历所有网络接口,找到wlan0接口并返回其硬件地址:

MAC地址获取

4.3.2 Android版本高于29(Android 10及以上)

对于高版本系统:

  1. 首先从SharedPreferences读取键为“UNIQUE_ID”的值
  2. 如果存在则使用该值作为设备ID
  3. 如果不存在则从.pesudo.iso文件读取设备ID并保存到UNIQUE_ID
  4. 如果文件不存在则创建文件并计算新的设备ID

高版本设备标识

psuedUniqueID计算方法如下:

psuedUniqueID计算

SIM序列号获取方法:

SIM序列号获取

4.4 数据加密压缩

对于收集到的数据(如通话记录、通讯录、短消息等),恶意软件会先加密压缩成ZIP文件,然后上传到C&C服务器。

压缩密码的计算方式:将设备ID与设备标识通过特定方式组合后,在字符串末尾添加3K=H8N=O7S=H8A=N,然后对整个字符串计算MD5值作为最终的压缩密码。

数据加密压缩

4.5 代码混淆

恶意软件使用无意义的随机单词和数字组合来命名类和方法,增加逆向分析难度。下图左侧为混淆后的代码,右侧为Android网络库Volley的原始newRequestQueue方法代码,可以看出混淆效果:

代码混淆示例

4.6 Application入口点分析

加载Native库

恶意软件加载hydrogen.so库,其中实现了4个JNI接口,主要功能是返回加密的配置字符串:

加载SO库

SO文件中实现的JNI接口:

JNI接口列表

JNI接口实现代码示例(其他接口实现类似,区别在于返回不同的字符串):

JNI实现代码

各JNI函数的返回值及用途:

函数名 返回的字符串 用途描述
do932 3K=H8N=O7S=H8A=N-gZk3ctiqQ+MeznT8vuAt9fltaYUMk4kFd23LWNcoR4GGS5OQDgNXpYBZzzY8hqgZ 加密字符串,解密后为C&C服务器URL
do933 </title> HTML标签,用于从网页中提取C&C地址
do934 <title HTML标签,用于从网页中提取C&C地址
do937 com.miui.securitycenter 小米内置安全应用包名,用于识别通知来源并屏蔽

解密C&C服务器地址

do932函数返回的加密字符串包含两部分信息:

  • 连字符“-“前面的部分(3K=H8N=O7S=H8A=N)用作数据加密压缩的密码
  • 连字符“-“后面的部分是Base64编码和AES加密的C&C服务器URL

解密过程:

解密URL

从解密后的HTML中解析title标签内容:

解析title标签

最后一步:用“-“替换第一个空格,用”.“替换第二个空格,得到最终的C&C地址hxxps://amanda-hart.website:

生成C&C地址

设置异常处理

恶意软件设置了全局异常处理器,当程序崩溃时执行logcat命令读取系统日志并写入logs文件夹,文件名格式为log_{timestamp}:

异常处理

4.7 Main Activity分析

启动正常应用混淆行为

随机启动设备上的正常应用或系统应用,以混淆用户视线:

随机启动应用

动态更换图标

恶意软件通过启用目标Activity-alias并禁用其他Activity-alias来动态更换应用图标:

动态更换图标机制

随机更换图标的实现:

随机更换实现

收集设备信息

在联网状态下收集手机网络信息和设备信息,ZIP压缩后上传到{C&C地址}/func/info:

收集设备信息

4.8 Telegram Activity分析

权限申请欺骗

利用对话框形式,设置诱导性的标题和内容欺骗用户授予权限。对话框只设置“确定”按钮,强制用户点击同意,否则无法正常使用:

权限申请对话框

为了获取多种敏感权限,恶意软件设置了不同的诱导性内容。在onActivityResult中处理操作结果,如果权限获取失败,会反复弹窗直到获取成功为止。

各种权限申请对话框的内容:

对话框标题 对话框消息 对话框图标 目的
Messages Encryption It is a Chat App, If you don’t Enable this property system won’t encrypt chat messages. 获取通知栏访问权限
Private Messages It is a Chat App, If you don’t Enable this property system won’t allow to you to send private messages 关闭Google Play Protect保护
Private Video Chat It is a Chat App, If you don’t Enable this property you won’t use private video chat property 获取录屏和录音权限
Power Optimization It is a Chat App, If you don’t Enable this property system will block some properties due to battery optimization. 设置自启动和电池优化白名单
Enable Notifications It is a Chat App, If you don’t Enable this property you won’t receive chat notifications. 获取设备管理员权限

安装正版Telegram

为了降低用户怀疑,恶意软件会安装正版Telegram应用org.telegram.messenger:

安装正版Telegram

4.9 Real_App Activity分析

该类的主要功能是安装正版Telegram应用。APK文件位于assets目录,文件名为asset.apk,包名为org.telegram.messenger。

Real_App类

根据Android版本和手机型号,恶意软件使用三种不同的APK安装方法:

APK安装方法选择

APK安装方法2:

安装方法2

APK安装方法3:

安装方法3

4.10 Uninstall_other Activity分析

卸载竞品应用

当收到FCM下发的云消息指令为“uninstall_another”时,从消息的package字段获取要卸载的应用列表:

卸载指令接收

判断要卸载的应用列表中是否有应用已安装在目标设备上。如果至少有一个应用已安装,则打开伪装的安全扫描界面:

检查应用是否安装

获取要卸载应用的详细信息(应用名、图标、版本号等),用于在扫描界面显示:

获取应用信息

在列表控件中显示要卸载的应用,将这些应用标记为“恶意软件”,诱导用户卸载:

显示恶意软件列表

点击列表中的应用时,打开卸载页面或设备管理员权限管理页面,引导用户手动卸载。如果用户取消卸载,会反复弹出卸载页面,直到成功卸载:

卸载处理

如果要卸载的应用拥有设备管理员权限,需要先禁用该权限才能卸载:

处理设备管理员权限

4.11 Update_dialog Activity分析

应用更新机制

当FCM下发“update”指令时,根据Update_method参数决定更新方式:

  • Update_method为“Notification”时在通知栏弹出更新消息
  • Update_method为“message”时使用更新对话框界面

更新指令处理

通知栏更新

创建通知消息,设置更新链接、描述和图标等信息:

创建更新通知

当用户点击通知栏消息时,会跳转到应用安装界面,令人防不胜防:

通知点击处理

对话框更新

填充更新对话框界面的标题、按钮文本等信息:

填充更新对话框

按钮的点击事件在master_update_dialog.xml文件中声明,点击按钮时触发安装应用操作:

按钮点击事件

4.12 拨打电话功能

隐蔽拨号实现

当收到FCM指令“find_mobile_number”时,执行拨打电话功能。拨打号码类型由action字段决定:

拨号指令接收

Action参数说明:

Action 描述
1 使用当前SIM卡拨打话费查询号码,不会留下通话记录
2 拨打普通号码,挂断后删除通话记录
3 拨打增值业务号码,挂断后删除通话记录

使用黑色背景图覆盖通话界面,隐藏拨号过程:

隐藏通话界面

拨打电话通常会留下通话记录,恶意软件在挂断后会删除对应的通话记录。这些操作在用户不知情的情况下完成:

删除通话记录

运营商话费查询

Action为1时,使用当前SIM卡拨打特殊号码查询话费,三家运营商的实现代码大致相同:

话费查询实现

各运营商查询话费号码(主要针对中东地区运营商):

运营商 地区 查询话费号码
Jawwal 巴勒斯坦 *111*5*{设备号码}#
wataniya 巴勒斯坦 *130**00972{设备号码}#
Etisalat 阿富汗 *199*00972{设备号码}#

双卡拨号

Action为2和3时,可以选择使用SIM卡1或SIM卡2来拨打电话:

双卡选择

Action为3时拨打增值业务号码,支付方式有f和c两种(具体含义有待进一步研究):

增值业务拨号

Action为2时,拨打的号码由FCM消息的value字段指定:

普通号码拨号

4.13 窃取短信和通讯录

当收到FCM指令“mess_cont”时,根据Value字段决定窃取短信还是通讯录:

窃取数据指令

窃取短信

读取设备收件箱和发件箱中的所有短信,加密压缩后上传到C&C服务器:

窃取短信

窃取通讯录

遍历通讯录中的所有联系人,将包含联系方式的信息加密压缩后上传到C&C服务器:

窃取通讯录

4.14 窃取通话记录

读取通话记录并保存到文件clogs.nez,然后上传到C&C服务器:

窃取通话记录

4.15 窃取文档

从外部存储器中窃取指定扩展名的文档文件:

窃取文档

4.16 录音功能

定时录音

当收到FCM指令“record_sound”时,实现录音功能。参数start_time和end_time分别指定录音开始时间和结束时间:

录音指令处理

利用AlarmManager设置录音服务的开始时间和结束时间:

设置录音时间

使用Android的AudioRecord类实现录音功能:

录音实现

4.17 屏幕截图功能

截屏指令

当收到FCM指令“wxyz”或“wxyz_period”时执行屏幕截图。其中“wxyz_period”指令包含period参数,表示截图间隔时间。截图完成后保存为BMP图片并上传到C&C服务器:

截屏指令处理

截屏实现

首先获取MediaProjectionManager服务,然后获取屏幕采集权限申请Intent并启动权限申请界面:

请求截屏权限

当用户授予屏幕录制权限时,在onActivityResult回调中根据返回的resultCode和data获取MediaProjection对象:

处理权限结果

设置屏幕截图的尺寸并设置监听器监听新截图:

设置截图监听

当屏幕方向变化时,重新设置监听器和截图尺寸:

处理屏幕旋转

截图完成后加密压缩并上传图片文件:

上传截图

4.18 摄像头拍照功能

隐蔽拍照

当收到FCM指令“take_photo”时,执行摄像头拍照功能。参数action为“rear”时使用后置摄像头,其他值使用前置摄像头:

拍照指令处理

拍照前设置为静音模式,避免拍照声音暴露:

设置静音

调用摄像头API(函数名被混淆,通过上下文可以确认是摄像头相关API):

调用摄像头

拍照成功后取消静音,将照片保存到syscam目录,分辨率为1024x768:

保存照片

4.19 命令与控制

FCM云消息服务

恶意软件注册Service用于在后台处理FCM下发的云消息:

FCM服务注册

FCM指令集

每条指令都包含两个基本参数:Id(设备ID)和type(指令名)。

完整的FCM指令列表:

指令名 指令描述 额外参数 参数值 参数描述
s_dom 设置新的C&C域名 basic - 要设置的域名
uninstall_another 卸载指定应用 package - 要卸载的应用列表,多个应用用逗号分隔
take_photo 使用摄像头拍照并上传 Action rear 使用后置摄像头拍照
其他值 使用前置摄像头拍照
record_sound 录音并上传到C&C服务器 Start_time - 录音开始时间
End_time - 录音结束时间
S_perms 检测已激活的权限并上传到C&C服务器 - - -
Apps_info 获取已安装应用的信息并上传 - - 包括应用名、版本号、安装时间等
Wifi_restart 重启WiFi - - -
Kpa_elif_teg (功能待确认) Cke - -
Find_mobile_number 拨打指定号码 Value - 电话号码
Action 1 拨打话费查询号码
2 拨打普通号码
3 拨打增值业务号码
Call_rec_encode 将录音文件编码为MP3格式 - - -
wxyz 屏幕截图 Quality - 图片质量/分辨率
Wxyz_period 周期性屏幕截图 Period - 截图时间间隔
Quality - 图片质量/分辨率
Call_logs 读取通话记录并上传 - - -
W_S 控制是否对WhatsApp通话录音 Value 0 允许录音
Access_service_check 检测无障碍服务是否启用 - - -
Disable_admin 取消设备管理员权限 - - -
Check_hide 检测自身图标是否被隐藏 - - -
Mess_cont 窃取短信或通讯录 Value Cont 窃取通讯录
Mess 窃取短信
S_tree 收集文件或文件夹信息并上传 Custom true 遍历所有文件和文件夹
false 遍历符合条件的文件和文件夹
Stop_rec 停止录音服务 - - -
Stop_custom_rec 停止自定义录音服务 - - -
Stop_currect_rec 停止当前正在运行的录音服务 - - -
Manage_files 文件管理 Src - 源路径
Dst - 目标路径
action Get 上传文件
Fast_get 快速上传
Download_file 下载文件
Delete 删除文件
Rename 重命名文件
Copy 复制文件
Move 移动文件
download_url - 下载链接
download_file_name - 下载文件名
download_path - 下载路径
Update 更新应用 Icon_url - 图标链接
url - 应用下载链接
Pkg - 应用包名
Update_method - 更新方式(Notification/message)
App_type - 应用类型
title - 更新标题
Color - 更新界面中分割线的颜色
message - 更新描述
Button - 按钮文本
Delete_app 删除应用(未实现) - - -
Screen_on 检测屏幕是否处于锁屏状态 - - -
Get_mess 读取短信 - - -
Hide_app 隐藏自身图标 - - -

SMS指令

当受害者接收到短信时,恶意软件会检测是否包含C&C指令。短信中包含链接且链接中包含字符串“/version=“则判定为C&C指令:

SMS指令检测

如果不是C&C指令,将短信内容写入文件并加密压缩后上传到C&C服务器:

上传短信

SMS C&C指令格式

接收到的C&C链接格式为:{任意消息}{任意链接}/version={指令ID}

如果指令需要参数,则在指令ID后面添加:/{参数1}/{参数2}/.../{参数n}

SMS指令只负责下发命令,数据上传仍然通过HTTPS上传到C&C服务器。大部分SMS指令与FCM指令功能重合,提供了备用的C&C通道。

SMS指令列表:

指令ID 描述
01 自定义时间录音
04 停止所有录音
03 监控短信接收和发送
59 激活所有监听器
95 停止所有监听器
34 启用移动数据
43 禁用移动数据
77 获取应用详细信息
00 启用WiFi
99 禁用WiFi
44 获取通讯录联系方式
66 获取设备信息
88 获取文件和文件夹信息
07 设置C&C服务器地址

5. 总结

本文详细分析了双尾蝎APT组织使用的Android间谍软件。该恶意软件具有以下特点:

伪装能力

  • 伪装成Google Play Installer诱导安装
  • 安装后模仿Telegram图标和界面
  • 支持动态更换图标伪装成多种系统应用
  • 会安装正版Telegram降低用户怀疑

持久化能力

  • 申请设备管理员权限防止卸载
  • 通过对话框欺骗用户授予多种敏感权限
  • 开机自启动确保长期驻留
  • 电池优化白名单避免被系统杀死

数据窃取能力

  • 窃取短信、通讯录、通话记录
  • 远程录音、拍照、截屏
  • 读取社交应用通知消息
  • 窃取外部存储中的文档文件

远程控制能力

  • 通过FCM接收云端指令
  • 通过SMS接收备用指令
  • 支持文件上传下载
  • 支持远程更新和卸载应用

反检测能力

  • 代码混淆增加逆向难度
  • C&C地址多层加密存储
  • 屏蔽安全软件通知
  • 隐蔽拍照和拨号(静音、黑屏、删除记录)

针对此类恶意软件,我们建议:

  • 仅从Google Play商店等官方应用商店下载和安装应用
  • 警惕申请过多敏感权限的应用
  • 定期检查设备管理员权限列表
  • 如果发现可疑应用,立即卸载
  • 将Android设备、操作系统和应用程序更新到最新版本
  • 安装知名的移动安全软件

6. IOC (Indicators of Compromise)

样本MD5哈希

dd4596cf68c85eb135f7e0ad763e5dab

C&C服务器

hxxps://amanda-hart[.]website

恶意包名

org.telegram.light

7. ATT&CK映射

战术(Tactic) 技术ID 技术名称(Name) 描述(Description)
Initial Access T1444 Masquerade as Legitimate Application 伪装成Google Play Installer和Telegram合法应用
T1476 Deliver Malicious App via Other Means 通过第三方渠道分发恶意应用
Execution T1575 Native Code 使用JNI函数返回加密的C&C字符串
Persistence T1402 Broadcast Receivers 注册BOOT_COMPLETED广播确保设备启动时应用被激活
T1401 Device Administrator Permissions 获取设备管理员权限防止卸载
Defense Evasion T1508 Suppress Application Icon 隐藏自身图标
T1406 Obfuscated Files or Information 代码混淆、字符串加密
Discovery T1418 Application Discovery 遍历所有已安装的应用
T1420 File and Directory Discovery 遍历外部存储文件和文件夹
T1426 System Information Discovery 收集设备详细信息(IMEI、MAC地址、型号等)
Collection T1433 Access Call Log 收集通话记录
T1432 Access Contact List 收集通讯录
T1517 Access Notifications 从社交应用的通知消息中提取信息
T1429 Capture Audio 对通话录音、环境录音
T1512 Capture Camera 使用前置或后置摄像头拍照
T1412 Capture SMS Messages 收集短信
T1533 Data from Local System 从外部存储中窃取特定扩展名的文档
T1513 Screen Capture 屏幕截图
Command and Control T1438 Alternative Network Medium 使用SMS接收C&C消息作为备用通道
T1437 Standard Application Layer Protocol 使用FCM下发C&C消息
T1544 Remote File Copy 从C&C服务器下载恶意应用
Exfiltration T1532 Data Encrypted 收集的文件使用ZIP加密压缩后上传
T1646 Exfiltration Over C2 Channel 通过C&C通道外传数据
Impact T1447 Delete Device Data 能够删除文件
T1448 Carrier Billing Fraud 可能通过拨打增值业务号码进行话费欺诈

8. 参考资料

  1. ESET Research - APT-C-23 Group Evolves Its Android Spyware https://www.welivesecurity.com/2020/09/30/aptc23-group-evolves-its-android-spyware/

  2. Cyble Research - APT-C-23 Using New Variant of Android Spyware to Target Users in the Middle East https://blog.cyble.com/2021/09/15/apt-c-23-using-new-variant-of-android-spyware-to-target-users-in-the-middle-east/

更多文章