揭秘APP排行背后手机软件恶意刷榜推广真相
打开应用商店想找个好用的App,你是不是也习惯先看下载量,再翻翻用户评论?下载量大的就靠谱吗?未必。今天要聊的,就是一个挂着“安全Wi-Fi”招牌的App,背地里却把用户的手机变成刷榜僵尸的案例。这背后,是移动应用市场里一条你未必知道的灰色产业链。 阿里移动安全团队最近发现了一款名叫“魔百Wi-Fi
打开应用商店想找个好用的App,你是不是也习惯先看下载量,再翻翻用户评论?下载量大的就靠谱吗?未必。今天要聊的,就是一个挂着“安全Wi-Fi”招牌的App,背地里却把用户的手机变成刷榜僵尸的案例。这背后,是移动应用市场里一条你未必知道的灰色产业链。
阿里移动安全团队最近发现了一款名叫“魔百Wi-Fi”的应用。表面上它是个普通的Wi-Fi工具,官方版本里却捆绑了多重病毒,目的很直接:给Google Play上的指定应用刷榜,同时疯狂提升未知应用的安装量。
具体怎么操作的?这个病毒会在设备锁屏时尝试获取root权限。一旦成功,就往系统目录植入一个“刷榜僵尸”病毒——它会模拟真实用户,在Google Play上对指定应用进行搜索、浏览和下载。同时还会诱骗用户安装另一个“下载者”病毒,这个病毒在屏幕亮起时会弹出广告,用户一旦触碰,推广的应用就会自动安装运行。技术可谓相当成熟:root提权用上了CVE-2014-3153、CVE-2015-3636等高危漏洞,2015年10月之前的设备几乎全部中招。更让人意外的是,对比恶意应用的证书后发现——这并非被重打包,而是官方版本亲自植入的恶意代码。
“魔百Wi-Fi”从2015年末首次发布,打着“安全Wi-Fi”的旗号,短短半年用户安装量就突破了300万。从宣传文章看,他们自称拥有超过2亿国内外热点,覆盖商场、酒店,还与多家应用商店有合作。甚至在国内知名渠道发布过多篇软文。讽刺的是,正是这个庞大的用户基数,成了他们刷榜牟利的“僵尸军团”。
目前最新版本是2.3.18。根据证书md5排查,官方在2.3.5~2.3.10版本中插入了恶意代码。值得注意的是,2.3.8版本竟然打了两个不同的包:一个增加了root提权并植入“刷榜僵尸”,另一个和2.3.10版本捆绑了“下载者”病毒。以下是对带root包的2.3.8版本的详细分析。
一、主包分析
该病毒捆绑了多个子包,各个模块的关系如图所示。

1. 解密assets目录下的sdk.data和__image数据。解密后sdk.data是一个目录,里面包含MainJson.txt、dexhostinjection.jar、libDaemonProcess.so;__image则是一个apk文件。
2. 唤起PushDexService和PushJobService,加载dexhostinjection.jar,并执行其ExternalInterfaces类的startExternalBody方法。这一步会下载“下载者”病毒(update),然后诱导用户安装。
3. 开启后台服务,利用libgodlikelib.so进行root提权。提权成功后,将libgodlikelib.so提权工具库写入系统库文件,同时把__image解压后的apk植入系统目录,命名为AndroidDaemonFrame.apk,即“刷榜僵尸”病毒。
二、root提权
这个样本基于开源项目RUN_ROOT_SHELL改写,可以对2015年10月之前的所有设备root。主要利用了以下漏洞进行提权:
- CVE-2012-4220:影响Android 2.3~4.2,利用Qualcomm诊断驱动程序的整数溢出漏洞。
- /dev/graphics/fb0:fb0设备mmap漏洞(触发参数FBIOGET_FSCREENINFO)。
- /dev/hdcp:hdcp设备mmap漏洞。
- CVE-2013-6282:影响Linux kernel 3.2.1~3.2.13,利用get_user/put_user缺少访问权限检查。
- /dev/msm_acdb:高通设备漏洞。
- CVE-2013-2595:/dev/msm_camera/config0高通设备MMAP漏洞。
- CVE-2013-2094:影响Linux kernel 3.8.9之前开启了PERF_EVENT的设备,通过perf_event_open获取系统最高权限。
- CVE-2015-3636:影响2015年9月之前的设备,pingpong漏洞(Use-After-Free)。
- CVE-2014-3153:影响2014年6月以前的设备,利用futex系列函数的RELOCK和REQUEUE漏洞。
提权成功后,会将解密的__image植入/system/priv-app目录并命名为AndroidDaemonFrame.apk,将libgodlikelib.so提权工具库植入/system/lib目录。下图展示了提权并向系统目录植入恶意文件的过程。

三、AndroidDaemonFrame.apk“刷榜僵尸”分析
这个应用是主包解密后植入系统目录的,专门用来恶意刷榜。它会利用用户的设备账户信息作为“僵尸”,完成C&C控制端指定的刷榜任务。工作流程如下:

1. C&C控制端配置keywords和package_name。
2. “刷榜僵尸”向Google Play发起认证,获取设备的Google账号和密码,或authtoken。
3. 模拟Google Play协议,对目标应用进行搜索、浏览和下载。
病毒在设备启动、屏幕解锁和网络改变时触发BootReceiver组件,随后启动核心服务DispatcherService,该服务创建了两个定时任务:updateTask和googlePlayTask。

定时任务googlePlayTask 每3小时执行一次,对配置文件里的keywords和package_name指定的应用从Google Play爬取。下图展示了root提权后重定向设备账户文件的过程。

病毒通过Google Play验证有两种方式:一是使用authtoken(认证令牌),这样无需每次都发送密码;二是直接获取Google账户的name、password和_id值。对应的SQL语句分别为:select type,authtoken from authtokens where type like 'com.android.vending%' and accounts_id=? 和 select * from accounts where type = 'com.google'。

成功连接Google Play服务器后,根据配置文件提供的keywords和package_name完成搜索、浏览和下载。

当前配置文件显示,病毒正在对包名为com.felink.shine的应用刷量。

病毒完全模拟了Google Play下载协议,包括设置cookie(AndroidId + authToken)和User-agent(AndroidDownloadManager)。Google Play应用下载请求流程大致如下(GitHub上的相关讨论已被屏蔽,但相信你应该知道怎么打开):

“刷榜僵尸”病毒中的GooglePlayRequester工具类完整模拟了上述过程,实现了对Google Play商店应用的自动下载。
四、子包dexhostinjection.jar
这个子包由assets目录下的sdk_data文件解密得到,主要完成以下功能:
4.1 服务保活
解析主包传递的000(m_pkgname)、001(m_class_name)、002(m_sdk_data)、003(libDaemonProcess)、004(1.apk)参数,利用libDaemonProcess库进行服务保活。在底层执行am startservice启动主包传递的service,即主包中的com.hostinjectionmain.control.DexService。

4.2 下载“下载者”病毒
主包004参数传递的应用名被拷贝到设备sdcard/database目录并命名为5supdate.apk,同时配置“下载者”病毒的相关文件,存放在同一目录下。这些文件包括:actiondown(记录包名以及启动服务名)、actionsuk(应用最近一次运行时间)、install.ab(服务器推广应用安装情况)、mychannel(应用渠道)。所有文件数据均使用AES加密存储。以actiondown为例:{“downLoadPackageName”:”com.android.ucgmap”,”downLoadVersionKey”:1,”downLoadStartMethod”:”com.android.ucgmap/com.android.ucgmap.AimService”}。
4.3 诱骗用户安装,并启动“下载者”病毒
子包动态注册监听android.intent.action.PACKAGE_ADDED和android.intent.action.USER_PRESENT广播。当监听到包安装完毕,且安装包名为actiondown中记录的包名时,读取downLoadStartMethod字段启动“下载者”。

诱骗用户安装“下载者”病毒(其应用名为update)有两种策略:默认模式以应用更新的名义诱骗用户点击;另一种由服务器设置,弹出系统更新对话框诱骗用户点击。

4.4 子包自更新
子包的连接并非直接暴露,而是做了两层跳板。首先访问http://dispatch.smartchoiceads.com/v2.1/2000,参数包括设备aid、imsi、gaid、mac(wifi),请求和响应数据全部AES加密。服务器根据上传的设备信息返回对应的url地址,然后设备使用该地址下载最新版子包。下图展示了访问url_1返回加密数据,经AES解密后提取data值,获得当前设备对应的服务器地址url_2。

解密后的数据如:{“upstream”:”http://sdk.smartchoiceads.com”},获得下一跳板地址。访问该地址后,服务器返回AES加密数据,解密后得到:{“solib_name”:”libDaemonProcess.so”,”download_url”:”http://u.smartchoiceads.com/sdk/HostDex_20160623163035.jar”,”classname”:”com.hostinjectiondex.external.ExternalInterfaces”,”filename”: “dexhostinjection.jar”,”start_method”:”startExternalBody”,”solib_url”:”http://u.smartchoiceads.com/sdk/libDaemonProcess_20160520175142.so”,”stop_method”:”stopExternalBody”,”request_interval”:”1800”,”version”:”8”}。根据这些字段,子包下载新版本的dexhostinjection.jar及lib库。目前服务器最新版本为dexhostinjection_8.jar。子包通过向主包的DexService发送com.injection.action.RELOAD_DEX消息意图完成更新加载。

五、“下载者”分析
子包dexhostinject.jar下载的5supdate.apk存放在sdcard/database目录下,即“下载者”病毒的安装包。通过应用更新或系统更新诱骗用户安装后,dexhostinject.jar启动“下载者”的导出服务AimService。其工作流程图如下:

5.1 ChatActivity组件,强制激活设备管理
dexhostinject.jar启动应用的参数会唤起ChatActivity组件。该组件进行设备管理激活,一旦用户激活,应用将很难被卸载。当用户尝试取消激活时,AdminReciver会进行锁屏操作并跳转到桌面。

5.2 组件AimService
1. 加载target.jar子包,保护“下载者”核心服务AimService不被杀死。
2. 启动ApsService,这是云端推送服务,注册时钟广播每10分钟发送广播,由ApsAdReceiver处理。

3. onStartCommand处理消息意图,包括:
- com.injection.action.RELOAD_DEX:更新target.jar子包;
- com.injection.action.stopJobService:停止JobScheduler并进程自杀;
- -a com.android.startadmin --es isadmin true:唤起ChatActivity组件,激活设备管理。该意图由dexhostinject.jar发送给AimService。
5.3 “下载者”应用推送分析
应用下载、安装和启动由ApsService和ApsAdReceiver联合完成。当update应用处于后台运行且屏幕亮起时,“下载者”向C&C服务器发起请求。下图为访问C&C控制的示例。

“下载者”病毒每隔10分钟访问http://www.gamecpi.com/tapcash/com.android.ucgmap/control.json,返回的数据结构如下:
{
"isOpened":true,
"isOpenHideNativeAd":true,
"fid":"",
"fnid":"558734714274962_641985812616518",
"aid":"ca-app-pub-2499265864844132/2514086206",
"bnid":660078,
"solaid":5011,
"soltid":1000171,
"ad_interval":10,
"no_ad_start":0,
"no_ad_end":6
}
该数据结构包含当前推广应用的信息,随后通过消息handler转交给startAdWork函数处理。

每隔120分钟,病毒请求控制端下载推广应用:http://www.gamescpa.com/SDKManager/cpa/downloadlink.php?country=cn&packageName=com.android.ucgmap。C&C控制端返回推送的应用信息,包括package(应用包名)、url(下载链接)、size(应用大小)。这些数据同样转交给消息handler处理,触发应用下载和安装。

配合之前注册的时钟广播ApsAdReceiver,整套流程完美实现推广应用自动启动。

六、病毒sha1
以下为相关恶意样本的SHA1值(列表略,共22个)。
七、总结
这个病毒应用的策略相当狡猾:通过版本更新下发恶意版本,完成刷榜和下载者植入后,再通过版本更新替换回安全版本,从而在各大应用市场上长期存活。阿里移动安全建议,下载此类应用请认准大厂商品牌;谨慎点击软件内的推送广告;来源不明的应用不要随意点击;定期使用手机安全软件查杀病毒。

魔百WiFi for android V2.3.18 安卓版
类型:网络通讯 | 大小:8.50MB | 语言:简体中文 | 时间:2016-07-13
这个版本不确定是否含有上述刷榜病毒,但只要不点击广告,应该问题不大,等它自己更新成安全版本也是个法子。需要的可以试试。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
零基础Python网络安全学习指南,包住宿实战培训
先抛出几个核心判断:网络安全人才缺口确实已经超过70万。这个数字不算夸张,各大招聘网站上安全岗位的薪资涨幅和需求增长都是实实在在的。但实话实说,行业真正缺的是能上手干活的人,不是只懂几个理论概念的新手。因此,一套扎实且成体系的训练方案,对于零基础转行或进阶提升就显得格外关键。 从零基础到能够独立应对
网络安全定义与核心概念详解
谈到网络安全,不同组织与标准体系对其定义虽有差异,但核心目标高度统一:保护信息与系统不受威胁侵害。以下梳理几种主流定义—— 什么是网络安全? 国际标准化组织(ISO)在ISO-74982文献中将安全定义为:最大程度地降低数据和资源遭受攻击的可能性。该定义虽简短,却精准点出安全的本质——即风险控制。
IIS 7.0网站漏洞利用与修复方法指南
先来聊聊当前网络安全领域比较流行的一种实战技巧——以PHP环境为例,详细讲解图片马合并与解析漏洞利用的具体操作步骤。整个过程并不复杂,但细节往往决定成败,大家跟着流程逐步操作即可。 合并一张PHP一句话图片马 首先,我们需要将一句话木马脚本与一张正常图片合并,生成一个看似无害的图片文件。合并方式主要
织梦管理系统后台查找功能教程
通过SQL注入漏洞获取织梦CMS(DedeCMS)管理员密码后,满怀期待地准备进入后台,却发现怎么也找不到登录入口——这种情况其实相当常见。别着急,这里有一个实用的技巧值得尝试。 直接在网站地址后面添加以下路径: include dialog select_media php?f=form1 mur
微软IE浏览器BrowseDialog类(ccrpbds6.dll)拒绝服务安全漏洞深度分析
BrowseDialog Class (ccrpbds6 dll) 导致 Internet Explorer 拒绝服务漏洞分析 该漏洞的PoC(概念验证代码)实现极为直接——触发浏览器崩溃的条件简单得令人意外。测试环境采用Windows XP Professional SP2(已安装全部补丁)并运行
- 热门数据榜
相关攻略
2026-07-25 21:02
2026-07-25 21:02
2026-07-25 21:02
2026-07-25 21:02
2026-07-25 21:02
2026-07-25 20:52
2026-07-25 20:52
2026-07-25 20:52
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

