freeBuf
BOOMSLANG(树蚺)移动欺诈家族分析
2023-12-05 17:10:47

1701749310_656ea23e3979fac18e4af.jpeg!small?1701749313058

概述

经监测,我们截获了一起与未知家族有关的欺诈性 Android 应用传播事件。详细调查发现,该家族主要使用开源的 Telegram Android 源代码作为其核心功能模板。通过各种策略,包括但不限于刷单、投资推广和色情聊天,该家族诱导用户下载并安装其应用,从而执行欺诈操作。进一步网络环境探测结果显示,存在多款与该家族高度相似的活跃应用,进一步证实了这些应用确实属于同一个欺诈家族。这个家族不仅具有高度的欺诈性和一致性,还拥有一个完整的业务供应链。基于上述特点,我们决定为这一欺诈家族命名为“BOOMSLANG(树蚺)”。

技术分析

1701749393_656ea291b9474032a7fa6.jpeg!small?1701749396373

从我们获取的家族样本中进行溯源分析后,发现该家族最早始于 2022 年 9 月进行传播。由于当时疫情等外部因素的影响,该家族在 2022 年 9 月至 2023 年 3 月期间处于欺诈传播的初级阶段。然而,随着社会状况逐渐恢复,该家族开始大规模传播,并推出了多个不同业务类型的版本。值得注意的是,为了适应反欺诈措施,该家族在 2023 年 7 月首次进行了变种,引入了“Domain Over HTTPS(DoH)”技术。随后,在 2023 年 9 月,家族样本再次发生变种,增加了对现有自动化 App 安全检测手段的抵抗能力,具体采用了 NPManager 自带的 StringFrog 混淆技术,以规避基于字符串提取的安全检测。

DoH(DNS over HTTPS)是一种安全协议,用于通过 HTTPS 加密的连接进行 DNS 解析请求和响应。其主要目的是增加隐私和安全性,防止 DNS 请求被窃听或篡改。

接下来,我们将对该家族的原始版本以及引入 DoH 技术的版本进行深入分析。

样本概况

样本标识

  • MD5 Hash: 0a731ace7a01349d8c103ad5dc7fc230

功能与行为

  1. 登录界面:样本启动后展示的是一个登录界面,该界面要求输入邀请码以进行登录。
  2. 聊天界面:登录成功后,用户将进入一个聊天界面。
  3. 恶意活动:该样本主要通过聊天功能进行诈骗或其他类型的恶意行为。

1701749386_656ea28a634d1e38f3591.png!small?1701749389342

分析细节

样本基本面分析

1701749449_656ea2c9b12bee1bb6c24.jpg!small?1701749452420

1701749454_656ea2ced8bb5c090faf6.png!small?1701749457915

  1. 权限分析:使用 Incinerator 工具打开样本后,从生成的 Report 信息中可以观察到,该样本请求了多个高风险的权限。1701765025_656edfa107b8db578218d.jpg!small?17017650285221701765029_656edfa5ab6f46ca4297b.jpg!small?17017650325931701765034_656edfaa1560bcfcb1165.jpg!small?1701765037379
  2. 动态检测结果:                                                                                                                                      
    • 包名与子目录问题:动态检测结果显示,在 im.lpfupkaehn.messenger包名下的 tgnet子目录中,NetworkConfig.java文件存在明显的问题。

接下来,我们将详细分析 im.lpfupkaehn.messenger包名的具体表现和潜在风险。

代码相似度

文件与目录结构

  • tgnet 子目录:在 im.lpfupkaehn.messenger的相应目录下,存在一个明确的 tgnet子目录。

源码比对

  • GitHub 搜索结果:利用该目录中的代码进行 GitHub 搜索后,发现这部分代码与 Telegram Android 源码高度相似。

1701749480_656ea2e83a6ada6b63903.png!small?1701749483244

代码相似性比较

  • im.lpfupkaehn.messenger与 org.telegram.messenger

1701749490_656ea2f2ece3ef29f7521.png!small?1701749493578

1701749496_656ea2f8276aafe6e9253.png!small?1701749498912

多个类文件,如 AccountInstance等,在排除反编译因素后,显示为 100% 相同。

代码差异分析

主要新增部分

在该样本中,基于 Telegram Android 源码,主要有三个显著的新增部分:

  1. 依赖库:

    • 位置:主要集中在 com目录下。
    • 功能与调用:这些库基本上都能通过搜索找到其调用处,主要用于处理一些较小的功能。
    • 示例:com.alibaba.fastjson库主要用于处理更新用户信息的协议。
  2. UI 目录差异:

    • 对比:im.lpfupkaehn.ui目录与 org.telegram.ui目录相比,前者多出几个目录。
    • 推测:这些新增目录可能是为了满足定制 UI 的需求而加入的。

1701749505_656ea301cae8c58bbe120.png!small?1701749508341

  1. tgnet 目录差异:

    • 对比:在 im.lpfupkaehn.tgnet和 org.telegram.tgnet目录之间进行比较,发现前者多出几个文件。
    • 推测:这些新增文件可能是用于实现特定的网络通信或功能。

1701749511_656ea307295c7062d5966.png!small?1701749514070

详细新增类文件分析

在该家族样本中,特别值得注意的是新增了以下类文件:

基础网络与文件操作类:

  • FCTokenRequestCallback: 可能与 Token 请求有关。
  • FileLoadOperation: 文件加载操作。
  • FileLoadOperationDelegate: 文件加载操作的代理。
  • NetBean: 网络配置 Bean。
  • NetworkConfig: 网络配置。
  • ParamsUtil: 参数工具。

Telegram 后台通讯扩展(TL 系列):

  • TLApiModel: API 模型。
  • TLRPCZ: 可能与 RPC 通讯有关。
  • TLRPCBackup: 备份相关。
  • TLRPCBasic: 基础 RPC 功能。
  • TLRPCCall: 通话功能。
  • TLRPCCdn: CDN 相关。
  • TLRPCChats: 聊天相关。
  • TLRPCContacts: 联系人相关。
  • TLRPCFriendsHub: 好友中心。
  • TLRPCHotChannel: 热门频道。
  • TLRPCLogin: 登录相关。
  • TLRPCRedpacket: 红包功能。
  • TLRPCWallet: 钱包功能。

这些新增的类文件主要涉及到网络操作、文件处理以及与 Telegram 后台进行通讯的多个方面。这进一步突显了该家族样本相较于原始 Telegram 代码的定制和拓展。

网络行为分析报告

主要焦点:NetworkConfig.java

基于自动化分析的结果,NetworkConfig.java文件代码中存在明显的问题,因此本次分析将重点关注该文件。

  • 网络配置更新机制

1701749527_656ea3175932cc6c24abe.png!small?1701749529778

环境区分:代码中区分了线上环境和内网环境。只有标识为 1002 的是线上环境,需要更新网络配置。

1701749532_656ea31cb913865be9913.jpg!small?1701749535186

  • 这里有两个关键函数initRemoteConnInfos和 selecteRemoteConnInfo

1701749537_656ea321854d0c764554b.png!small?1701749539796

关键函数分析:initRemoteConnInfos: 主要负责从配置接口 https://*************.***-**********.********.***/************.***获取目标 IP 和端口信息。

1701749543_656ea327942aeee4d2d34.jpg!small?1701749546532

selecteRemoteConnInfo: 使用阿里游戏盾将目标 IP 和端口转换为代理 IP 和端口,达到隐藏实际 IP 和端口的目的。

1701749547_656ea32be4a8dc88d31d0.png!small?1701749550435

1701749553_656ea331cae8ac9215c34.png!small?1701749557075

阿里游戏盾使用逻辑

  • 功能介绍:阿里游戏盾提供了一个免疫 DDoS/CC 攻击的弹性安全网络。具体来说,它根据提供的目标 IP 和端口生成一个动态变化的代理 IP 和端口。
  • 挑战与影响:对于网络行为分析和恶意程序网络请求拦截来说,阿里游戏盾的弹性安全网络构成了一个严重的挑战。因为代理 IP 和端口可以不断变化,这极大地增加了网络追踪和拦截的难度。

该样本利用了复杂的网络配置和第三方安全服务(阿里游戏盾)来隐藏其实际网络行为,从而增加分析和追踪的难度。这些特点进一步证明了该恶意样本的高度专业性和隐蔽性。

YunCeng.getProxyTcpByDomain的反编译代码如下:

1701749559_656ea337332bf70779324.png!small?1701749561479

1701749563_656ea33b5e5209bc92c3f.png!small?1701749566499

根据阿里游戏盾官方网站上较旧版本的文档,getProxyTcpByDomain函数的前四个参数表现如下:

1701749571_656ea3435b689ecefc86f.png!small?1701749573715函数的后两个参数则用于返回与输入目标 IP 和端口相对应的代理 IP 和端口。

在对上述代码进行进一步分析后,我们发现返回的代理数据最终被传递给了 ConnectsManager

1701749576_656ea348af126c76f50da.png!small?1701749579327

1701749580_656ea34c6d622711b6876.png!small?1701749582708

我们注意到这是一个 native函数。在常规情况下,我们需要逆向分析。so文件以获取相应的代码。然而,由于之前我们已经提到这个样本代码与 Telegram Android 有很高的相似性,我们决定直接查阅 Telegram Android 的源代码来进行分析。

1701749615_656ea36fc265c6039cf64.png!small?1701749618463

1701749588_656ea354c5aae3b94eb0c.png!small?1701749591283

在这个步骤中,返回的 IP 地址和端口号被设置给了 ConnectManager 的 datacenter 对象,并随后重新发起了握手过程以建立新的连接。这一操作实现了样本与云端网络通讯的服务器切换。至此,恶意样本已经成功地通过新的 IP 和端口与远程服务器建立了新的通信通道。

拦截方法:

经过详细分析,我们完成了对样本主要网络请求逃逸拦截行为的审查。该样本巧妙地利用了防 DDoS 服务,通过不断更换请求的 IP 地址和端口,有效地规避了传统的基于固定 IP 请求拦截的防护手段。

要全面阻断这一样本的网络请求,需要通过静态和动态分析相结合的方式,找出样本是如何利用阿里游戏盾服务的,并据此拦截相关网络通信途径。具体拦截策略可集中在以下三个方面:

  1. 拦截样本通过请求阿里游戏盾来获取目标 IP 地址和端口的网络请求。1701765265_656ee091832b493c75518.jpg!small?1701765268165
  2. 如果第一种拦截策略未能成功执行,那么还需要针对样本中预设的默认 IP 和端口进行拦截。具体来说,应该拦截所有指向 ****.**.********.***的网络请求。1701765317_656ee0c5d45ed9d01c75c.jpg!small?1701765320342
  3. 1701765410_656ee122802bf30237579.jpg!small?1701765412995在灰度测试阶段,如果前两种拦截策略都未能成功,那么应关注样本中预设的第三个默认 IP 地址,即 **.***.***.***。所有指向这一 IP 的网络请求也应被拦截。

1701749650_656ea3928bd3b346f43af.jpg!small?1701749653547

这些网络请求被巧妙地深藏在代码中,需要综合应用动态和静态分析方法才能准确地识别出它们,这无疑给安全对抗工作增加了额外的挑战和工作量。

家族变种分析

在持续追踪此类恶意 APP 过程中,我们发现了一种新的变种,其 MD5 哈希值为 61eea96bae6e53b6806d974cf35877df。这个新样本做出了一个显著的变化:它不再依赖于阿里游戏盾,而是转向使用了七牛云的 DoH(DNS over HTTPS)服务。具体的使用方式如下:

1701749656_656ea3980ce02e25c8aec.png!small?1701749659172

1701749664_656ea3a041280cf4f08fb.jpg!small?1701749667473

在这个新的变种中,攻击者将 HOST 中的地址配置为七牛云的 DnsManager 的 dnsServer。然后,该 DnsManager 负责进行 DNS 查询。这种改变不仅表明攻击者正在逐渐熟悉和利用更高级的网络服务,而且也增加了分析和拦截其行为的复杂性。

1701749670_656ea3a6417dca89714b1.jpg!small?1701749673474

在这种情况下,样本通过其自己控制的 dnsserver 来动态地更换 IP 地址。这种设置使得攻击者能够在后端使用类似于阿里游戏盾的工具,随机返回不同的代理 IP 地址,从而实现真实 IP 地址的隐藏。如果 DNS 查询失败,样本会回退到预设的 IP 和端口,进一步增加了对抗分析的复杂性。这种多层次的网络行为策略不仅增加了分析工作的难度,也为有效拦截创建了额外的挑战。

1701749676_656ea3ac1f7fc674d42b5.jpg!small?1701749678531

总结

在对该恶意样本的全面分析中,我们可以看出样本在多个层面上展示出复杂和隐蔽的行为特点:

  1. 代码结构:该样本大量借用了 Telegram Android 的源代码,并进行了多处定制和添加,这增加了分析的复杂性。

  2. 网络行为:

    • 早期版本主要使用阿里游戏盾进行 IP 和端口的动态更换,以规避网络拦截。
    • 新变种则切换到了使用七牛云的 DoH 服务,进一步提高了其隐蔽性。
  3. 动态与静态分析结合:由于样本使用了多种方式来隐蔽其网络行为和代码结构,因此需要同时运用动态和静态分析来全面了解其行为模式。

  4. 对抗措施:对该样本的有效拦截需要细致地分析其使用的所有通讯路径和依赖库,并针对这些特定路径和库进行拦截。

  5. 更新和演进:该样本具有较高的更新频率和多样性,需要持续关注其变种和更新。

综上所述,该恶意样本展示了高度的复杂性和隐蔽性,需要综合多种分析手段并持续跟踪其变化,以便制定有效的防护措施。

IoC

Hash:

0a731ace7a01349d8c103ad5dc7fc230

c0c2c778f447c8e8e007f23fc9884270

f911559ca31a67644839fb3441b4353a

90a214d758e139e7604d2a0ffeea636d

07adcaaba76313bb403e272af0b410fb

cc77e56537f42e9f9929414e0c6ee5fa

3500969225597c6ef74bbcd430db639b

9e2430fbf9fda9d88c64fa21be0397be

cad71847f3d233392858241108379ba9

4c0ef460d9002529e5c4246a01b4bb3b

61ad63ee3527a0386728d7b7fd7327c1

f5e0cb000781595282b08c0c13aa2ccd

aa9b9fa34ecccd73586a75a5c2b472da

1ee643ce7569b8badef4893a06a65529

83769c54646c9b7fb4395e2bd2bbd8ca

340795cd070438dbab4224b39de2bb32

c5381d9b17d4d870f4187bd92fffc4f1

34db2c2aa456d943c0cee500895b6ebb

903a976b8469ffc51f865064c1c99134

e51e972cab85b126aa714367a6b3580d

0e8f47f6fd85f87ec856b8338cb1a58e

5c901f89a693a81a60da1f0314fc8c00

8bf147393b4349e6d30855f5a1994122

0724e81bab5c781229d8a412b078a470

84bad8f49ab890c25ccd33b751d875a1

dbce0d16142d5492ff7c3304ee24c118

cda08dd3ba29229da293efb299a0071b

7870d55613d69067f432bcfced6b9395

e01a68ff450ca8e9e8a148060503aa4d

a248ce6f396c27ebc7f5a660e367eae8

c80a11363e216d7e32e17fa044672369

79bcd908766033491409c62015488049

55e3dfe425fb5372542909a63ed007e5

5bb38f2601937a538d068047dc32937b

a1b5de8df8741deb655c84d3dad536fd

C&C:

47.104.243.76:31537

183.230.11.65:55555

42.193.237.57:30003

175.178.152.90:30003

139.199.224.36:30003

111.230.69.193:30003

36.255.220.245

https://ff119f.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://axvsag103sdvsbd.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://126sand.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://bw36file.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://bw1cloudfile1.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://ff115f.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://bw5file1.oss-cn-hangzhou.aliyuncs.com/andrioddunv.txt

https://80xbdfs.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://bw89file.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://6oiue.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://ma36twegt.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://6fdhgbtreh.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://fdasfewmm26dsafdas.oss-ap-southeast-1.aliyuncs.com/andrioddunv.txt

https://gg81fnew.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://ev10mgmt.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://26qewsdz.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://file100fg.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://jbsa111.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://cxvsdf121gfhe.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://wb25f.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://abhjbw115jks.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://bhjasd183.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://bw39file.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://if90f.oss-accelerate.aliyuncs.com/andrioddunv.txt

https://8.212.47.67/dns-query

https://8.212.102.80/dns-query

https://8.212.1.70/dns-query

https://8.212.101.76/dns-query

https://47.57.138.89/dns-query

https://47.57.2.128/dns-query

Smile.isk5uz.com

Maomi.gz.bw36diannew.com

abab.gz.bibi115s.com

Pulo.gz.bw6nmddk.com

Qiaojiar.gz.bw111uam.com

guo.gz.awwb90.com

ttt.gz.iudjd119.com

Facai.gz.bw26f.com

Sichunge.bj1.mumrsn8i.com

nqo5.hz.sjdnbw81.com

deadf.gz.wknbw25.com

Lvcha.gz.bw183khgftdfgh.com

Wngd.gz.bw121ffu.com

Gsnm.gz.bw115dsvwerfoijsd.com

Xecm.gz.bw6st.com

Huachuanghulian.gz.bw16wcnmader.com

Qingyimianmian.gz.bw39top.com

Zzh.gz.bw126zzhyyds.com

wrty4.gz.az25ru.com

roklw.gz.skmw100.com

Ommm.gz.bw103hgycgi.com

Edko.gz.bw36a.com

Aelo.gz.bw112uuuuuuu.com

Dandan.gz.bw26yidingyaotingzhu.com


原文链接:Lian Security

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
文章目录