Spyware.Joker分析报告
字数 1881 2025-08-22 12:22:48
Android恶意软件Joker家族深度分析与防御指南
一、Joker家族概述
Joker(又称Bread)是Android平台上活跃的恶意软件家族,最早于2016年12月被发现。截至分析时,VirusTotal上已捕获该家族1万+个样本。该家族名称源于早期使用的C2域名中的特征字符串"Joker"。
主要恶意行为:
- 未经用户同意订阅收费SP服务
- 窃取用户隐私信息
- 通过短信欺诈获取收益
- 远程指令执行
- 设备信息收集
二、最新样本分析:Beauty Wallpaper HD
样本基本信息
| 项 | 描述 |
|---|---|
| 应用名 | Beauty Wallpaper HD |
| 包名 | com.wellnone.wallpaper |
| 文件类型 | APK |
| 文件大小 | 21.14 MB |
| MD5 | 5d53a4977ceddd86083c0ae66f3b3133 |
| 证书MD5 | 7af3f792457692ff9dd2b47d29911c82 |
| 病毒家族 | Joker |
| 报毒率 | 2/63 (VirusTotal) |
| 发布时间 | 2023-09-14 |
检测情况
截至2023年9月20日,仅卡巴斯基和ZoneAlarm两款杀毒引擎能检测出该恶意软件并识别为Joker家族成员。
三、技术细节分析
1. 衍生物分析
- 文件名:abc.png-v265.tmp
- 文件类型:DEX
- 文件大小:59KB
- MD5:627f6746d8d1eb9afdf067968e4122d3fc8f3a14
2. 远程指令执行功能
Joker家族实现了完整的远程控制框架,支持以下指令:
| 指令 | 功能描述 |
|---|---|
| cmd_timeout | 命令执行超时设置 |
| page_timeout | 页面超时设置 |
| hold | 执行JavaScript脚本 |
| load_url | 加载特定页面 |
| entry_timeout | 启动超时设置 |
| wait_pin | 等待Pin确认码 |
| sleep | 睡眠 |
| do_nothing | 测试项 |
| wait_mo | 等待 |
3. 短信相关恶意行为
- 监听短信接收
- 删除短信
- 短信发送功能:
@JavascriptInterface public void moSend(String s, String s1) { this.a.a("jsMoSend--->:address:" + s + "--->content:" + s1, true); if(TextUtils.isEmpty(s)) { this.c.d = s1; return; } this.a.c(s, s1); } - 注入号码功能:
@JavascriptInterface public void injectNumber(String s) { if(!TextUtils.isEmpty(s)) { v265t3.a.a(this.b.a, s); } }
4. 信息收集功能
-
获取运营商信息:
@JavascriptInterface public String getOp() { return z.e(this.b.a); } public static String e(Context context0) { TelephonyManager telephonyManager0 = (TelephonyManager)context0.getSystemService("phone"); return telephonyManager0 == null ? "" : telephonyManager0.getSimOperator(); } -
获取屏幕信息:
@JavascriptInterface public String getScreen() { try { JSONObject jSONObject0 = new JSONObject(); jSONObject0.put("width", this.b.d.a); jSONObject0.put("height", this.b.d.b); jSONObject0.put("availWidth", this.b.d.d); jSONObject0.put("availHeight", this.b.d.e); jSONObject0.put("keyboardHeight", this.b.d.g); return jSONObject0.toString(); } catch(Exception exception0) { exception0.printStackTrace(); return null; } }
5. 网络通信功能
-
自定义ajax请求:
@JavascriptInterface public void customAjax(String s, String s1) { try { this.a.a("customAjax:-url:" + s + " body:" + s1, true); this.d.a.put(s, s1); } catch(Exception exception0) { this.a.a("customAjax--failed:" + exception0 + " " + exception0.getMessage(), true); } } -
自定义提交:
@JavascriptInterface public void customSubmit(String s, String s1) { try { this.a.a("customSubmit:-url:" + s + " body:" + s1, true); this.d.b.put(s, s1); } catch(Exception exception0) { this.a.a("customSubmit--failed:" + exception0 + " " + exception0.getMessage(), true); } }
四、威胁溯源与传播途径
-
传播渠道:主要通过Google Play商店传播,利用"壁纸"等看似无害的应用类型作为伪装。
-
更新机制:样本显示恶意功能可能在应用更新后激活,规避商店审核。
-
C2基础设施:
- https://viplive[.]win/G7B8B9S79SH8H0DWNK9L.log
- http://nicephoto.biquaurall[.]site:8080/device/
五、防御建议
1. 应用下载策略
- 避免使用小众、不知名来源的应用
- 对新上线或更新频繁的应用保持警惕
- 优先从官方应用商店或厂商官网下载
2. 设备防护措施
- 安装可靠的安全软件并保持更新
- 定期检查设备上的应用列表,移除可疑应用
- 关注应用权限请求,特别是短信、电话等敏感权限
3. 应急响应
- 发现已安装被披露的恶意应用时,立即卸载
- 检查是否有异常订阅服务并取消
- 必要时联系专业安全人员处理
六、IOC(入侵指标)
| 类型 | 值 |
|---|---|
| 发布者邮箱 | fm0989184@gmail[.]com |
| 衍生物URL | https://viplive[.]win/G7B8B9S79SH8H0DWNK9L.log |
| C2服务器 | http://nicephoto.biquaurall[.]site:8080/device/ |
| 样本MD5 | 5d53a4977ceddd86083c0ae66f3b3133 |
| 证书MD5 | 7af3f792457692ff9dd2b47d29911c82 |
七、总结
Joker家族展示了Android恶意软件的典型进化路径:从简单的订阅欺诈到完整的远程控制框架。其通过Google Play传播的事实提醒我们,即使是官方应用商店也无法提供100%的安全保障。用户需要保持警惕,采取多层次防护措施,才能有效防范此类威胁。