继先前的发现,FireEye实验室的研究人员发现另一个迅速蔓延全球的恶意广告软件,它允许完全接管用户的Android设备。这种攻击也可能来自中国,由于其指挥和控制域是aps.kemoge.net,我们把它称为Kemoge。
图1所示,世界受感染地区地图
如图1所示,感染范围非常大,已确定的受害者来自20多个国家,包括政府和大型产业。这个恶意广告软件通过重新包装将自己伪装成流行的应用程序,所以传播广泛。一些示例如图2所示
图2所示, Kemoge样本
图3所示,概述Kemoge的生命周期
图3显示了Kemoge的生命周期。攻击者使用第三方应用商店上传应用,并通过网站和应用内链接广告促进下载。有些获得root权限的攻击性广告网络也可以自动安装这种样本。在初始阶段,Kemoge收集设备信息并上传到广告服务器,然后后台遍布服务广告,受害者将会定期看到广告条 (当Android用户停留在主屏幕时,广告会弹出)。
图4,从Kemoge AndroidManifest.xml获得的代码片段
最初Kemoge只是烦人,但很快就变得邪恶。如图4所示,它在AndroidManifest上登记MyReceiver,并在用户解锁设备屏幕或网络连接情况发生变化时自动启动。然后MyReceiver会调用MyService,两者都伪装成谷歌代码(以com.google.rp.confirm为前缀)。一些其他的样本也会用usecom.google.system.provider.confirm ,com.google.ad.sprovider, com.android.ad.sprovider等作为组件的前缀。
启动后,MyService会查找一个名为<name>.mp4的东西, mp4扩展名只是一种掩饰,它实际上是一个具有多个级别加密的ZIP文件。首先,它使用ZIP固有的密码加密技术的保护其中的内容,然后再使用DES加密。最后再加密DES密钥(表示为Key1)与另一个DES密钥(表示为Key2),并在代码中拆卸Key2。在运行时Kemoge将会逆序解密这个ZIP文件,如图5所示
图5,ZIP文件的解密过程
图6,反编译DES密钥生成的Java代码片段
例如,图6显示了Kemoge反编译Java代码片段获取Key2,并生成Key1的过程。代码片段用字节[0 x73 0 x41 0 x26 0 x73 0 x32 0 x76 0 x24 0 x31]初始化DESKeySpec ,并作为Key2解密字节[0 x87,0 xaf 0 xf9 0 xe5,0 x93 0 xe1 0×50 0 x5a 0 x12 0 x8b 0 x9f 0 x8c 0 x72 0 x86,0 x79 0 xe3]。注意,代码使用实际字节的ASCII码代替了实际字节,混淆了加密字节,例如0 x87被0 x38和0 x37(“8”和“7”)取代。解密使用Android Bouncy Castle的默认DES模式,没有指定初始向量。解密后的字节是(0 x35,0 x64 0 x26 0 x4c,0 x32 0 x2c 0 x54 0 x39 0 x77 0 x4f], 用于产生Key1(用DESKeySpec),并解密加密的ZIP文件。加密算法仍是没有初始矢量的默认DES模式
遵循相同的过程但输入不同的加密字节也可获得Key1,Kemoge会生成ZIP保护密码。解压缩文件后,它提取下列文件:
· AndroidRTService.apk
· root.sh
· busybox
· su
· .root
· root_001, root_002, …, root_008
这个恶意软件携带多达8种利用root电话的方法,针对大范围的设备模型。root方法包括mempodroid、motochopper、perf_swevent exploit、 sock_diag exploit、put_user exploit。这种利用似乎是一些开源项目编译的,也有一些来自商业工具“root大师”。
在获得root后,它将执行root来获得持久性,然后植入AndroidRTService.apk,并作为Launcher0928.apk(模仿合法发射器系统服务文件名)进入系统分区。此外,这个apk的打包名称也看起来像真实的服务。例如:com.facebook.qdservice.rp.provider and com.android.provider.setting.
这个恶意的系统服务通过aps.kemoge.net来获得命令以躲避检测,它不经常与服务器通信。相反,它只在第一次启动时或24小时后寻求指令。在每次通信时,它首先发送IMEI存储信息和安装应用程序信息到远程服务器。我们截获了一台使用Android 4.3的Nexus 7的网络流量,这台设备安装了附录中列出的第一个样本。相应的流量如图7所示。上传设备信息后,它向服务器请求命令,如图8所示。
图7,Kemoge上传设备信息
图8,Kemoge上传更多的信息和要求命令
服务器响应三组命令,并执行恶意的系统服务:
· 卸载指定的应用程序
· 启动指定的应用程序
· 从服务器提供的链接下载和安装应用程序
图9,远程控制服务器响应
在撰写本文时数控通道仍在运行。在我们的实验中,我们收到的响应如图9所示。在这种情况下,它正试图卸载AV应用和流行合法的应用,可能是在为进一步袭击做准备
附件一中列出几个Kemoge的例子。附录II列出了一些使用的签名证书。我们观察到所有样品的代码中都包含简体中文字符。有趣的是,一个样本也被发布在Google Play,但被剥夺了使用root攻击和数控的能力。
图10,Google Play上“ShareIt”的截图 [4]
打包名称为MD540b1dcbe5eca2d4cf3621059656aabb5 和cc.taosha.toolbox.shareit 的Kemoge样本使用了附录II中列出的第一个证书。相同的证书也用于签署了一份Google Play应用程序,使用相同的应用程序与打包名称(如图10),因此它们应来自相同的开发人员。这个谷歌应用程序有100 k ~ 500 k的下载量。基于开发人员的名字(“Zhang Long”)和第三方集成使用的应用程序(人人网,腾讯网等),它的开发人员可能来自中国。基于用户的评论,ShareIt 具有和Kemoge一样的特征(烦人的广告服务,自动通过其他攻击性渠道进行传播,等等)。可能是为了通过审查, Google Play版本删除root利用和数控的行为,但它确实曾向adm.kemoge.net和ads.kemoge.net寻求广告。此外, 如果远程服务器发回一个apk文件,它会请求taosha.cc更新和提示安装。在我们的实验中服务器是运行的,但只能返回到404,所以开发人员可以提供恶意版本或其他恶意软件。我们已经向谷歌通知了这个威胁,用户应该谨慎下载这个程序。
结论
这是另一个恶意广告软件,可能由中国开发商或中国黑客控制,并在全球范围内传播,这是一个重大威胁,我们建议:
· 不要点击可疑的链接邮件/短信/网站/广告。
· 不要在官方应用商店外安装应用程序
· 保持Android设备更新,以避免被植入已知的漏洞。(升级到最新版本的操作系统将提供一些保护,但这并不意味会保持安全。)
为了检测和抵御这类攻击,我们建议客户配置类似FireEye MTP的移动安全解决方案,从而增强威胁的可见性,并主动追踪受损设备。此外,我们建议客户配置NX电器,确保无线流量在NX电器扫描范围内,并覆盖到移动设备。
参考文献:
[1] https://www.fireeye.com/blog/threat-research/2015/09/guaranteed_clicksm.html
[2] https://github.com/trevd/android_root
[3] https://github.com/saurik/mempodroid
[4] https://play.google.com/store/apps/details?id=cc.taosha.toolbox.shareit
附录一;Kemoge的例子
Package Name |
App Name |
MD5 |
cc.taosha.beautify.easylocker |
Easy Locker |
2701de69ea6b57bbc827830660711ea2 |
cc.taosha.toolbox.shareit |
ShareIt |
40b1dcbe5eca2d4cf3621059656aabb5 |
com.cg.sexposition |
Sex Cademy |
abaf6cb1972d55702b559725983e134a |
com.cg.wifienhancer |
WiFi Enhancer |
0c67d0919e574a6876c73118260368ee |
com.change.unlock.zhiwenjiesuo |
Fingerprint unlock |
1be29a6622543f6f5063eda1d83a4e49 |
com.funme.assistivetouch |
Assistive Touch |
7cd86d83d916dbd9b04d0e7e4f9ff6e8 |
com.funme.sexfree |
Calculator |
bf6dc2f78baed212f6aa4268da086e09 |
com.jrhw.pinkygirls |
PinkyGirls |
6fc29ab75d87a5b1e0dd792c5c68d738 |
com.kayaya.tao.tomcat |
Talking Tom 3 |
b36a751d72e2bdea80e7ff72b6fb3a41 |
com.kiss.browser |
Kiss Browser |
cec85188308644273332d00d633ab875 |
com.leo.appmaster |
Privacy Lock |
f1a16304e427b7f8657de8c3dfb1d33f |
com.light.browser |
Light Browser |
162cb09e2eebd595eae2617cd3af1d0d |
com.magic.gmobiepay.clear |
Magic Treasure |
aa31e77775f5ce3e85ebf3bdb09f590e |
com.space.funhgames.september |
2048kg |
efb917cb0cf09fc38b98500af61d30dc |
com.star.android.smartTouch |
Smart Touch |
db563053762250a5cb4d0c10e0e3dbb0 |
附录二,示例签名证书
Owner: CN=tao sha, OU=IT, O=taosha.cc, L=Shenzhen, ST=Guangdong, C=86
SHA1: EF:A5:C2:18:9C:21:4B:A8:21:90:4C:10:6A:B5:77:53:0F:22:00:62
Owner: CN=hexy_root_009, OU=hexy_root_009, O=hexy_root_009, L=hexy_root_009, ST=hexy_root_009, C=hexy_root_009
SHA1: E3:BD:4B:4F:38:7C:1A:A8:C0:4C:98:B2:B2:B1:B0:CF:33:5E:71:BC
Owner: CN=keke_root_025, OU=keke_root_025, O=keke_root_025, L=keke_root_025, ST=keke_root_025, C=keke_root_025
SHA1: 41:F4:9B:14:E9:8A:7C:EF:5E:BF:D9:9C:8F:58:43:48:45:BE:12:B2
Owner: CN=kiss, OU=kiss, O=kiss, L=hangzhou, ST=zhejiang, C=86
SHA1: 72:62:C5:38:78:81:B1:10:51:B3:D3:B3:63:B5:AC:F9:B9:8F:6E:B9
Owner: CN=google, OU=google, O=android, C=CN
SHA1: E9:20:9A:53:9B:C7:41:22:1D:53:37:FE:FA:9E:26:59:6C:3D:08:96
Owner: CN=wilson, OU=land, O=land, L=hangzhou, ST=zhejiang, C=86
SHA1: E5:58:C9:BA:6A:A3:D1:AC:2A:12:5B:94:C6:F6:02:2F:EE:0D:19:39
Owner: CN=hzckgames, OU=hzckgames, O=hzckgames, L=hangzhou, ST=zhejiang, C=86
SHA1: 49:D2:51:A6:67:CC:9D:C2:9D:AB:FA:E8:D3:85:44:FF:B0:59:BC:90
Owner: CN=hong, OU=fjwy, O=fjwy, L=zhejiang, ST=zhejiang, C=CN
SHA1: 89:81:E2:B0:30:A9:A4:60:5D:B2:4B:E4:31:59:A3:01:73:1C:C6:53