双尾蝎APT组织利用恶意Android程序攻击中东地区
· 10 分钟阅读 · @admin

自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类,该类会在应用的所有组件实例化之前被加载执行。

该应用使用“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对应的标签和图标如下:
| 标签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伪装成正常界面,在前台显示迷惑性内容的同时,在后台执行恶意代码:

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

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

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

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

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

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

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

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

返回的警告信息翻译为:“Google Play Installer是系统应用,如果卸载它,设备将处于危险状态。”
![]()
如果用户忽略警告继续禁用,则返回主屏幕:

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

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

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

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

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

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

当安装的应用包名为org.telegram.messenger(正版Telegram)且已成功安装时,恶意软件会:
- 隐藏自身图标
- 删除assets目录下的apk安装文件
- 启动刚安装的应用

当安装的应用包名与FCM下发的“update”指令中的App_package字段匹配时,如果安装成功:
- 上传安装成功消息到C&C服务器
- 删除更新文件“mupdate.apk”和图标
- 禁用所有Receiver
- 启动新安装的应用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

启动Activity

启动Service

发送广播

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

4.3.1 Android版本低于29(Android 10以下)
在低版本系统中,依次尝试获取IMEI、WLAN的MAC地址或Device ID作为设备标识:

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

4.3.2 Android版本高于29(Android 10及以上)
对于高版本系统:
- 首先从SharedPreferences读取键为“UNIQUE_ID”的值
- 如果存在则使用该值作为设备ID
- 如果不存在则从
.pesudo.iso文件读取设备ID并保存到UNIQUE_ID - 如果文件不存在则创建文件并计算新的设备ID

psuedUniqueID计算方法如下:

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文件中实现的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
解密过程:

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

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

设置异常处理
恶意软件设置了全局异常处理器,当程序崩溃时执行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:

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

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

APK安装方法2:

APK安装方法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指令集
每条指令都包含两个基本参数: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指令:

如果不是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. 参考资料
-
ESET Research - APT-C-23 Group Evolves Its Android Spyware https://www.welivesecurity.com/2020/09/30/aptc23-group-evolves-its-android-spyware/
-
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/









