Check Point研究人员近期发现一个点击恶意软件家族,并在Google Play应用商店中发现了Joker恶意软件家族的新样本。
本文对该恶意软件活动进行简单介绍,并对这两款恶意软件家族进行技术分析。
‘Haken’ & ‘BearClod’ 点击恶意软件
概述
Clickers又称点击恶意软件是模拟用户进行广告点击的恶意软件,是移动手机行业的一个新威胁。近期,UpsteamSystems发布了一个名为‘ai.type’或 ‘BearClod’的点击恶意软件。研究人员发现该点击恶意软件攻击活动的活动和规模都有所增长,而且在Google Play中发现了47个新的恶意应用,下载次数超过7800万次。
在监控‘BearClod’恶意软件家族活动时,研究人员发现了另一个点击恶意软件家族——‘Haken’。 ‘Haken’攻击活动最早发现于Google Play中。发现的这8个恶意应用下载次数超过5万次,点击恶意软件的目标是尽可能多地获取设备来进行获利。
图 1 –Google Play中的Haken点击恶意软件
图 2 – Google Play中的Haken点击恶意软件详情
图 3 – Google Play中对Haken的评论
功能
‘BearCloud’和‘Haken’点击恶意软件家族使用不同的方法来实现点击功能。‘BearClod’使用的是创建web-view和加载执行点击的恶意JS代码,Haken点击恶意软件使用的是本地代码和到Facebook和AdMob库的注入,在与远程服务器通信时获取配置信息。
Haken clicker的第一个入口点是名为BaseReceiver的接收器。接收器会请求后门app不需要的权限,比如让后门应用在设备启动时运行代码的BOOT_COMPLETED。
图 4 – Haken点击恶意软件权限
BaseReceiver会加载一个名为kagu-lib的原生库,并从方法startTicks来调用。该类注册了2个worker和1个计时器。其中一个worker与C2服务器进行通信来下载新的配置文件并处理,另一个worker由计时器触发,检查需求并注入代码到Google的AdMob和Facebook这些知名的AD-SDK广告相关的活动类中。
图 5 – startTicks函数
图 6 – 与C2服务器进行通信来获取配置
图 7 – 处理配置信息
图 8 – 注入Facebook和Google
点击功能是实现在注入到Ad-SDK的onCreate函数中的代码中,实际上是一个yzt.sta方法。
图 9 – 调用注入的代码
在使用MotionEvent模拟用户点击时,这些函数是通过反射调用的。
图 10 – 通过MotionEvent的obtain的反射点击从Ad-SDK接收的广告
在将该问题报告给谷歌后,所有受影响的应用都已经从Google Play中移除了。
Joker
概述
Joker恶意软件最早发现于2019年9约,是Google play中发现的一款监控恶意软件和保险服务拨号器。
在过去几个月,Joker重新出现在Google play应用商店。Tatyana Shishkova (@sh1shk0va)近期发推文称在Google play中发现了Joker恶意软件的样本。研究人员近期在Google play中发现了4个新的恶意软件样本,下载次数超过13万次。
图 1 – Joker样本
技术分析:
· 字符串加密
Joker通过修改使用的字符串来隐藏其功能,本例中, Joker使用了静态密钥和简单的XOR加密。
图 2 – XOR后的字符串和解密函数
· 初始化
在MainActivity的OnCreate中,恶意应用会触发恶意进程,然后注册用来启用NotificationListenerService服务的接收器。当从加载的模块中接收到命令后,就会继续运行handler。
图 3 – 接收器注册
图 4 – 通知Listener使用
Handler会检查下载的payload,如果存在就使用Reflection从payload中调用mas方法,开始DirectorAct活动。
图 5 – 调用mas函数和‘DirectorAct’
‘DirectorAct’ 类会从payload中调用另一个方法——Chris。如果在处理时发生意外,或没有下载payload,joker就会与C2服务器通信来下载一个新的payload。
图 6 – 联系C2服务器
· Payload
首先看一下main活动中调用的mas函数。
启动后,payload就会从设备中读取运营者信息,然后确保设备不是来自于美国(MMC 310)或加拿大(MMC 302)。
图 7 – 过滤美国和加拿大
一旦所有的条件都满足,Joker就会联系payload的C2服务器,从服务器加载配置文件。
图 8 – 加载配置文件
配置文件中含有一个新的URL、另一个要加载的payload和一个类名为下载后要执行的方法。
图 9 – 处理配置
图 10 – Dex加载
图 11 – Payload执行
可以访问监听器通知和发送SMS,payload会监听收到的SMS,并提取保险服务的验证码(2FA),然后发送给“Offer Page”来订阅保险服务。
但是恶意软件如何使用户订阅这些服务呢?在从C2服务器接收的配置中,会处理一个到联系人的URL的列表,并在隐藏的webview中打开。
图 12 – 打开隐藏的webview,联系offer page
研究人员将应用问题报告后,Google已经从Google play中移除了相关应用。
本文翻译自:https://research.checkpoint.com/2020/android-app-fraud-haken-clicker-and-joker-premium-dialer/如若转载,请注明原文地址: