前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kemoge:一款影响超过20国的安卓恶意程序

Kemoge:一款影响超过20国的安卓恶意程序

作者头像
FB客服
发布2018-02-06 16:55:40
7280
发布2018-02-06 16:55:40
举报
文章被收录于专栏:FreeBufFreeBuf

FireEye实验室一位移动安全研究专家近期发现一款迅速蔓延全球的,可完全控制Android设备的恶意软件家族病毒。据称该攻击来源于中国。因其命令以及控制域:aps.kemoge.net,便将其命名为Kemoge。

如上图所示,已确认的感染范围超过20国,其中包括政府以及大型企业。该恶意广告软件通过重新打包将自身伪装成流行App,因而得到广泛传播。其中一些样本如下图所示:

Kemoge的样本很多,这里就不一一列举了。

Kemoge的生命周期

如上图所示,攻击者将App上传到第三方应用商店,通过网站或者App内置广告来进行推广,一些激进的广告联盟还可能会通过获取root权限直接进行安装样本。

在初始启动时,Kemoge收集设备信息并将其上传到广告服务器,无论受害者当前是在干什么在一定时间都会看到广告横幅(即使停留在Android主屏幕,也可能会突然弹出)。

起初Kemoge只是令人有些许不满,但是很快就会令人感到愤怒。从上图中可以看到当用户开启设备屏幕或者网络连接变化,其将AndroidManifest中的MyReceiver设置为自启动,接着MyReceiver唤醒MyService;两者都是伪装成Google的代码(前缀com.google.rp.confirm)。一些样本也使用下列作为组件前缀:

com.google.system.provider.confirm, com.google.ad.sprovider, com.android.ad.sprovider

启动之后,MyService就开始寻找一个名为<name>.mp4的资源,这个影藏的.mp4资源实际上是一个进行多级加密的.ZIP文件。

总的说来,其使用.ZIP自有的文件加密对资源内容进行保护,受保护的.ZIP文件再使用DES加密,最后在将DES密钥进行加密(此处称之为Key1)与此同时也对另一个DES密钥(此处称做Key2)进行加密,并且在代码中反汇编Key2将其作为字节。如下图,逆向破解Kemoge解密ZIP文件。

下图为反汇编生成DES密钥的Java代码片段:

从上图反汇编DES密钥代码片段中我们获得了Key2,接着就可以生成Key1了。这代码片段把字节[0x73, 0x41, 0x26, 0x73, 0x32, 0x76, 0x24, 0x31]为Key2,接着解密[0x87, 0xAF, 0xF9, 0xE5, 0x93, 0xE1, 0x50, 0x5A, 0x12, 0x8B, 0x9F, 0x8C, 0x72, 0x86, 0x79, 0xE3]。注意通过替换真实ASCII字符可实现代码混淆加密字节。

例如使用0x38和0x37(8和7)来替换0x87,解密没有指定初识向量直接使用Android Bouncy Castle默认的DES模式(DES/ECB/PKCS5Padding)。解密后的字节为[0x35, 0x64, 0x26, 0x4c, 0x32, 0x2c, 0x54, 0x39, 0x77, 0x4f]由此推导出的Key1(以及DESKeySpec)来解密ZIP文件。

使用上面相同的方法获得Key1,但随着作为输出的不同加密字节,Kemoge生成ZIP保护密码。解压这个文件后,从其中提取出以下文件:

AndroidRTService.apk root.sh busybox su .root root_001, root_002, ..., root_008 (8个root exploit可执行文件)

Kemoge:步步惊心

该恶意软件携带8个可对设备进行root的exploit可执行文件,来应对大范围的设备模型。这些root方法包括mempodroid, motochopper, perf_swevent exploit,sock_diag exploit, 以及 put_user exploit.其中一些exploit看起来似乎借鉴了部分开源项目中的代码[2][3],但是其中一些看起来又像是来自商业工具Root Dashi(Roor大师)。

获取root权限之后,执行root.sh获得持久性,然后将AndroidRTService.apk作为Launcher0928.apk(命名方法模仿合法的桌面启动器系统服务)植入/system分区。此外,这个apk包看起来也确实像正常的应用,类似的还有com.facebook.qdservice.rp.provider以及com.android.provider.setting。

这个恶意系统通过aps.kemoge.net来传递命令。为了逃避检测,它不经常与该服务器进行连接。反而,其只在第一次启动和命令执行24小时后才会请求命令。在每一次通信中,首先将IMEI,IMSI,储存信息,安装的App信息发送到远程服务器。我们在Nexus 7(Android 4.3)截获了网络通信流量包:

接着上传设备信息,并求情命令:

服务端响应了3组命令:

Uninstall designated apps Launch designated apps Download and install apps from URLs given by server

在本案例中,它试图卸载杀毒应用程序以及一些流行应用,可能准备进一步的攻击。

附录1中我例举了一部分Kemoge样本,附录2中列举了其使用的一些签名证书。在所有的样本中我们发现大量的简体中文字符。有趣的是,有一款样本在Google Play中进行了发布,root exploit以及一些其他功能被阉割了。

谷歌商店上架应用ShareIt或与Kemoge同根

Kemoge样本包名:cc.taosha.toolbox.shareit

MD5:40b1dcbe5eca2d4cf3621059656aabb5

在Google Play中也有一款与茄子快传(ShareIt)名称相同的应用,使用了与Kemoge相同的签名,所以其应该是同一位开发者,其在Google Play中此应用已经有10万—50万的下载量,基于开发者的名称Zhang Long以及集成与App中的第三方库(cn.wap3, com.renren, com.tencent等)研究者便推断该开发者来自于中国。

基于用户评论ShareIt有着与Kemoge相似的特征(烦人的广告),估计是为了满足审计过程Google Play版本移除了root exploits,但其依旧保持着adm.kemoge.net和ads.kemoge.net,同时它请求taosha.cc进行上传和升级提醒。在我们的实验中,服务运行但只返回了404,应该是开发者在维护新的版本。

Google似乎已经注意到这个App,“ShareIt”已经从Google应用商店平台移除了。目前大家还是谨慎下载。

总结

这是一个家族式恶意广告软件,可能是由中国开发者写的,也有可能是被搞黑产的人控制了。

在此,我们郑重的提醒您:

谨慎点击来自电子邮件/短信/网站/广告的超级链接;不要安装来自非官方渠道的应用;及时更新Android设备。

* 参考来源:FireEye,编译/FB小编鸢尾,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档