早在2019年研究人员就发现了一种名为“Joker”的新型安卓木马,共有24款应用受到影响,总下载量超过47万次。该木马隐藏在被感染应用程序使用的广告架构中,可冒充用户与广告网站进行互动,还可以收集受害者的设备信息、联系人列表和短信消息。当时该木马不仅使用了多种技术手段避免受到静态分析,还可自行联系黑客的命令和控制服务器,以接受命令或上传所窃信息。此外,Joker的程序代码中有特殊设置,将攻击目标设为特定的国家/地区的安卓用户(包括但不限于澳大利亚、法国、德国、印度、英国和美国),而且该木马会根据目标设备的SIM卡区号来决定是否攻击。
Joker恶意软件执行间谍软件或木马的恶意软件功能,并为用户注册一个高级订阅,并从威胁执行者的命令和控制服务器下载感染应用程序到毫无戒心的用户的设备。
一般来说,这种类型的恶意软件是很难被检测到的。它的工作原理是通过显示与广告网站交互的广告,从用户的设备中提取短信细节和其他个人信息。
恶意软件可以从受害者的设备中窃取的一些主要信息是:
◼短信;
◼设备信息;
◼联系方式;
除了窃取敏感信息,该恶意软件还能在未经用户同意的情况下从其银行账户中窃取资金。这可以归因于恶意软件的通知读取功能,使其能够访问用户的短信详细信息。
Cyble 研究人员最近发现了 JokerDropper 的一个新变体,并且可以从 Google Play Store访问间谍软件/特洛伊木马变体。隐藏为合法应用程序后,发现该应用程序是 Joker 的更新版本,可将其他恶意软件下载到设备并在用户不知情或未经用户同意的情况下订阅高级服务。这是 Joker 恶意软件的常见功能。
研究人员在 Google Play Store中发现了此变体。可以确认该应用在 Google Play Store中一直存在到 2021 年 7 月 5 日。
之前在 Google Play Store中提供的应用
尽管谷歌立即将这款应用从Play Store下架,但该应用的安装量已经超过500次。尽管谷歌从其Play Store中删除了该恶意软件,但攻击者仍在对应用程序和有效载荷进行轻微修改,从而使该恶意软件能够躲避谷歌Play Store对恶意程序的检测。攻击者的更改包括在代码中应用复杂的混淆、更改执行方法以及使用不同的有效载荷检索技术。
从 Google Play Store中删除的应用
恶意软件开发人员在新变体中采用了相同的动态代码加载 (DCL) 和反射技术,以逃避对其恶意功能的检测。在 DCL 投放的文件中,Joker 恶意软件的 Dalvik Executable (DEX) 是以包含为 Android 平台编写的编译代码的格式保存的可执行文件。攻击者使用这些技术来隐藏恶意功能并防止在应用程序的静态分析期间检测到恶意软件。
技术分析
研究人员对 Joker 恶意软件的 APK 进行了技术分析,其哈希值如下:a18508d9047fe87da2bf14211c3f31c5ad48277348eb5011fdfe4dd7dac13d52。
应用名称:QR Scanner Free
包名:com.yanto.mo.codescan
下面列出了一些可能执行恶意活动的应用程序的权限、活动和服务:
权限:
◼android.permission.READ_PHONE_STATE
◼android.permission.CAMERA
◼android.permission.ACCESS_COARSE_LOCATION
◼android.permission.CALL_PHONE
◼android.permission.CHANGE_WIFI_STATE
◼android.permission.READ_CONTACTS
◼android.permission.INTERNET
◼android.permission.WRITE_EXTERNAL_STORAGE
活动:
◼qr.barcode.scanner.activity.SplashActivity
◼qr.barcode.scanner.activity.MainActivity
◼qr.barcode.scanner.activity.ResultActivity
◼qr.barcode.scanner.activity.CreateActivity
◼qr.barcode.scanner.activity.FeedbackActivity
◼qr.barcode.scanner.activity.WebviewActivity
◼qr.barcode.scanner.activity.AboutActivity
服务:
◼q.b
◼com.google.android.gms.ads.AdService
◼androidx.work.impl.background.systemalarm.SystemAlarmService
◼androidx.work.impl.background.systemjob.SystemJobService
◼androidx.room.MultiInstanceInvalidationService
下图展示了该应用程序的恶意功能:
恶意软件从应用程序子类 qr.barcode.scanner.ScannerApp 发起恶意行为,此类在用户启动应用程序时首先执行。
从应用程序子类启动恶意软件
这个 onCreate 函数进一步调用函数“a”,它从下面提到的缩短的 url 下载 DEX 文件,如图 4 所示。
缩短的 URL:“hxxps://zws.im/????????????????”
扩展的 URL:“hxxp://onemoretime.oss-us-east-1.aliyuncs[.]com/huadi”
从 URL 请求文件并检查已建立的 HTTP 连接的代码
应用程序使用 dalvik.system.DexClassLoader API 从下载的 DEX 文件加载类“XX00”,并尝试从删除的文件中执行方法“jarico”。
从拖放的文件中加载类和方法
下面的代码说明了加载类“XX00”后“jarico”函数的执行。
执行 DCL 功能的代码
执行“jarico”函数后,会加载一个新的 DEX 文件,该文件会启动到第二个 URL 的连接以下载额外的 DEX 文件。这个DEX文件“hd.ai”加载了主类“Ferry”和方法“Tayle”,如图7所示。
从 URL 加载附加 DEX 文件的代码
主类“Ferry”依次连接到第三个 URL“hxxp://onemoretime.oss-us-east-1.aliyuncs.com/notice.ai”,通过加载主类下载“notice.ai”文件“com.antume.cantin”和方法“button”。
从 URL 中删除的第三个 DEX 文件
还观察到相同的主类“Ferry”能够读取受害者设备收到的所有通知。使用通知侦听器服务,它会在用户不知情的情况下读取所有文本消息或通知并取消它们,以隐藏甚至收到通知的事实。
使用服务读取通知
与broadcastreceiver一起,从DEX文件“notice.ai”加载的主类“com.antume.cantin”从主类“Ferry”中收集通知的内容。
收集和存储短信数据
研究表明,该应用程序使用了无线应用协议 (WAP) 计费服务中使用的通用加密技术来避免检测。该技术涉及在单词中放置一组随机字符。
加密中观察到的常见模式
该应用程序为其计费服务提供了多个无线应用协议 (WAP) 订阅 URL,WAP计费是一种从网站购买内容的支付方式,费用直接计入手机话费。使用这种计费服务,攻击者可以通过将用户注册到未知订阅中并按天、每周或每月向他们收费的方式,将目标锁定在美国、英国、印度、泰国和越南等国家,从而使攻击者获得金钱收益。
如图 12 所示,该应用程序有一个位于泰国的 WAP 订阅 URL,这在该恶意软件变体中很常见,甚至会检查运营商代码以识别移动设备的蜂窝连接。
运营商代码检查和基于泰国的 WAP 链接
攻击者将所有恶意功能隐藏在下载的有效载荷中,这种技术在 Joker 恶意软件中很常见。恶意软件不断发展并定义新技术以隐藏其恶意功能以防止检测。
安全建议
◼不断更新防毒软件,以检测及删除恶意软件;
◼如果你在设备中发现此恶意软件,请卸载该应用程序;
◼保持系统和应用程序更新到最新版本;
◼使用强密码并启用双因素身份验证;
◼只能从可信的网站和官方应用商店下载和安装软件;
◼在授予应用程序访问权限之前,验证应用程序请求的特权和权限;
◼如果有人担心自己被盗的证书会在暗网上曝光,可以登陆 AmIBreached.com ,以确定自己的暴露情况。
本文翻译自:https://cybleinc.com/2021/07/09/android-app-disguised-as-a-qr-scanner-spreads-joker-variant-trojan/如若转载,请注明原文地址