微信号:geekweekly

介绍:极客周刊

安卓变僵尸:新型病毒“维京部落”分析

2016-05-16 18:05 极客学院
Check Point研究团队在Google Play Store发现了一款新的Android病毒,并取名为Viking Horde(维京部落)。这款病毒能够执行广告欺诈,还能进行DDoS攻击、发送垃圾信息等。至少已经有5款应用通过了Google Play的病毒扫描。

无论是在已root或是未root的设备上,Viking Horde都会创建一个僵尸网络,用经过代理的IP地址伪装广告点击,这样攻击者就能赚钱。僵尸网络是一组由黑客控制的设备,设备的用户毫不知情。根据设备的计算能力不同,“僵尸”能做各种各样的事。僵尸网络越大,能够做的事越多。


在已root的设备上,Viking Horde能够传输额外的恶意payload,从而远程执行任意代码,它还会利用root权限使得自身难以删除。


Horde介绍


Viking Horde系列病毒中下载量最大的就是Viking Jump应用,自4月15日上传到GooglePlay,该应用已经有50,000-100,000的下载量了。有些地方的市场中,Viking Jump还登上了Google Play免费应用排行榜。



提交最早的应用是Wi-Fi Plus,于3月29日提交。其他的应用包括Memory Booster, Parrot Copter, 和Simple 2048。所有感染Viking Horde的应用的评分都很低,研究团队猜测可能是因为用户注意到了它奇怪的行为,例如请求root权限。



攻击者们创建的僵尸网络散布在全世界各个国家,Check Point研究团队通过一个C&C服务器收集的数据获得了其受害者的分布情况。



来源:Check Point移动威胁研究团队,2016年5月6日


Viking Horde工作原理


研究Viking Horde代码和C&C服务器后,研究人员画出了流程图。



1.病毒首先从Google Play上下载。当应用启动游戏时,它会在应用的目录外面安装几个组件。这几个组件的名字都被伪装成系统相关的名字,如core.bin,clib.so, android.bin 和 update.bin。如果设备没有root,组件就会被安装到SD卡上,如果已经root了,就会安装到root/data。这些文件中的一个是用来在各组件交换信息的。另一个包含所有生成的组件名称,方便其他组件访问它们。


2.接下来病毒会检查设备是否已经root:


如果是,病毒就会启动另外两个组件:


app_exec.实现与服务器的通讯协议

app_exec_watch_dog实现更新和系统驻足。Watchdog 会监控app_exec 进程,如果有必要会重启。


如果设备没有被root,恶意软件就会以共享库加载app_exec文件,并且通过JNI(Java Native Interface,能够允许Java代码运行本地二进制文件)来调用它的函数。


无论哪种情况下,一旦app_exec应用被安装,它就会与C&C服务器建立TCP连接并且开始通信。通信内容包含下列指令。


Ping。每10秒应用程序就会给服务器发送5个字节。同样,服务器会回复5个字节。

更新设备信息:将剩余电量、连接类型和手机号码发送给服务器。


3. 下一步就是通过匿名代理连接执行恶意功能。C&C服务器会发送一个“create_proxy”命令,其中会有两个IP地址和端口作为参数。这两个IP地址就会被用来打开两个sockets连接,一个给远程服务器,一个给远程目标。然后它会读取第一个socket收到的数据,向目标主机传输。病毒的开发者可以借此隐藏他的IP地址。


僵尸网络活动


即便设备没有被root,Viking Horde还是会把它变成能够发送接收信息的代理。以下就是一个从攻击者的C&C服务器上看到的感染的设备。


远程端是代理的IP,而socks IP是C&C服务器的IP。C&C服务器包含设备的一些信息,包括操作系统版本、电池状态和GPS坐标。在本例中,设备位于美国,运营商是T-Mobile。



Viking C&C服务器


僵尸网络由很多台C&C服务器控制,每台都管理者几百台的设备。恶意软件的首要目标是劫持设备,然后用它模拟点击网站上的广告来赚钱。恶意软件需要代理来绕过广告商的反欺诈机制。


有些用户评论还说这款应用会发送收费短信,如截图所示。这个僵尸网络能用以各种用途,包括DDoS攻击、发送垃圾邮件和发送病毒。



病毒的持续性


病毒使用多种方法驻足在系统中。首先,Viking Horde安装的那些组件使用了跟系统有关的名字,使得它们很难定位删除。


如果设备经过root,有两项机制又可以用来防止删除:


app_exec组件会监控主程序是否存在。如果用户卸载了主程序,app_exec会解密一个名为com.android.security的组件并且静默安装。这个组件是隐藏的,重启之后执行。

watchdog组件会安装app_exec组件的更新。如果app_exec被删除,watchdog会从更新目录重新安装它。


显然,有些用户还注意到了这样的活动:



针对root设备的额外组件


可能最危险的功能就是更新机制:app_exec从服务器下载最新的二进制文件,然后以app_exec_update的名字储存在/data目录。


Watchdog会周期性地检查更新文件是否存在,并且用它替换app_exec。这就意味着VikingHorde可以根据服务器的命令下载新的二进制文件。watchdog组件会用它替换掉应用。这样的话这台设备上就可以下载执行任何远程代码。


附录 1: app 包名


com.Jump.vikingJump

com.esoft.wifiplus

com.fa.simple2048

com.android.wifiman

Com.g.o.speed.memboost

Com.f.a.android.flyingcopters


附录2: C&C 服务器列表


   www[.]adautoexchange[.]com

   www[.]adexchng[.]com

   www[.]adexchnge[.]com

   www[.]adexchangetech[.]com


附录3: 感染的可执行文件的SHA256


85e6d5b3569e5b22a16245215a2f31df1ea3a1eb4d53b4c286a6ad2a46517b0c

254c1f16c8aa4c4c033e925b629d9a74ccb76ebf76204df7807b84a593f38dc0

ebfef80c85264250b0e413f04d2fbf9e66f0e6fd6b955e281dba70d536139619

10d9fdbe9ae31a290575263db76a56a601301f2c2089ac9d2581c9289a24998a

a13abb024863dc770f7e3e5710435899d221400a1b405a8dd9fd12f62c4971de

1dd08afbf8a9e5f101f7ea4550602c40d1050517abfff11aaeb9a90e1b2caea1

e284a7329066e171c88c98be9118b2dce4e121b98aa418ae6232eaf5fd3ad521


文章来源:http://blog.checkpoint.com/2016/05/09/viking-horde-a-new-type-of-android-malware-on-google-play/,FB小编Sphinx编译,文章有修改,转载请注明来自Freebuf黑客与极客(FreeBuf.COM)  


极客weekly 

ID:geekweekly

互联网犄角旮旯的内容汇聚

一个专做分享的平台


长按识别二维码关注

 
极客weekly 更多文章 追MM的各种算法 这是我见过的最无聊的一群程序员了 程序员之歌 如何拿到半数面试公司Offer——我的Python求职之路 精通型程序员的特点
猜您喜欢 通过监测用户的运动,Android 5.1将实现屏幕自动解锁功能 我的 React Native 技能树点亮计划 の 代码风格统一工具 EditorConfig 聊聊高并发系统之HTTP缓存 C++程序设计 试题及答案(一) Facebook团队关于网页缓存的再实践