安卓变僵尸:新型病毒“维京部落”分析
liqun_du
8年前
<p>Check Point研究团队在Google Play Store发现了一款新的Android病毒,并取名为Viking Horde(维京部落)。这款病毒能够执行广告欺诈,还能进行DDoS攻击、发送垃圾信息等。至少已经有5款应用通过了Google Play的病毒扫描。</p> <p>无论是在已root或是未root的设备上,Viking Horde都会创建一个僵尸网络,用经过代理的IP地址伪装广告点击,这样攻击者就能赚钱。僵尸网络是一组由黑客控制的设备,设备的用户毫不知情。根据设备的计算能力不同,“僵尸”能做各种各样的事。僵尸网络越大,能够做的事越多。</p> <p>在已root的设备上,Viking Horde能够传输额外的恶意payload,从而远程执行任意代码,它还会利用root权限使得自身难以删除。</p> <h2>Horde介绍</h2> <p style="text-align:center"><img src="https://simg.open-open.com/show/32a84841f1391ef07aaf95aae6bb7567.jpg"></p> <p>Viking Horde系列病毒中下载量最大的就是Viking Jump应用,自4月15日上传到GooglePlay,该应用已经有50,000-100,000的下载量了。有些地方的市场中,Viking Jump还登上了Google Play免费应用排行榜。</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/78a8c20de8df8b57cd1292d12f62f755.jpg"></p> <p>提交最早的应用是Wi-Fi Plus,于3月29日提交。其他的应用包括Memory Booster, Parrot Copter, 和Simple 2048。所有感染Viking Horde的应用的评分都很低,研究团队猜测可能是因为用户注意到了它奇怪的行为,例如请求root权限。</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/9bc29cecb14c54c7446c9ad75c1ce4f9.jpg"></p> <p>攻击者们创建的僵尸网络散布在全世界各个国家,Check Point研究团队通过一个C&C服务器收集的数据获得了其受害者的分布情况。</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/83805b93d6ccd0aeda9fd08de7e1cf9f.jpg"></p> <p>来源:Check Point移动威胁研究团队,2016年5月6日</p> <h2>Viking Horde工作原理</h2> <p>研究Viking Horde代码和C&C服务器后,研究人员画出了流程图。</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/253480366e9a1d12ff6c1828a73dc561.jpg"></p> <p>1.病毒首先从Google Play上下载。当应用启动游戏时,它会在应用的目录外面安装几个组件。这几个组件的名字都被伪装成系统相关的名字,如core.bin,clib.so, android.bin 和 update.bin。如果设备没有root,组件就会被安装到SD卡上,如果已经root了,就会安装到root/data。这些文件中的一个是用来在各组件交换信息的。另一个包含所有生成的组件名称,方便其他组件访问它们。</p> <p>2.接下来病毒会检查设备是否已经root:</p> <p>如果是,病毒就会启动另外两个组件:</p> <p>app_exec.实现与服务器的通讯协议</p> <p>app_exec_watch_dog实现更新和系统驻足。Watchdog 会监控app_exec 进程,如果有必要会重启。</p> <p>如果设备没有被root,恶意软件就会以共享库加载app_exec文件,并且通过JNI(Java Native Interface,能够允许Java代码运行本地二进制文件)来调用它的函数。</p> <p>无论哪种情况下,一旦app_exec应用被安装,它就会与C&C服务器建立TCP连接并且开始通信。通信内容包含下列指令。</p> <p>Ping。每10秒应用程序就会给服务器发送5个字节。同样,服务器会回复5个字节。</p> <p>更新设备信息:将剩余电量、连接类型和手机号码发送给服务器。</p> <p>3. 下一步就是通过匿名代理连接执行恶意功能。C&C服务器会发送一个“create_proxy”命令,其中会有两个IP地址和端口作为参数。这两个IP地址就会被用来打开两个sockets连接,一个给远程服务器,一个给远程目标。然后它会读取第一个socket收到的数据,向目标主机传输。病毒的开发者可以借此隐藏他的IP地址。</p> <h2>僵尸网络活动</h2> <p>即便设备没有被root,Viking Horde还是会把它变成能够发送接收信息的代理。以下就是一个从攻击者的C&C服务器上看到的感染的设备。</p> <p>远程端是代理的IP,而socks IP是C&C服务器的IP。C&C服务器包含设备的一些信息,包括操作系统版本、电池状态和GPS坐标。在本例中,设备位于美国,运营商是T-Mobile。</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/5122e2e12d0c32ccc5d48e5e0f5394da.jpg"></p> <h2>Viking C&C服务器</h2> <p>僵尸网络由很多台C&C服务器控制,每台都管理者几百台的设备。恶意软件的首要目标是劫持设备,然后用它模拟点击网站上的广告来赚钱。恶意软件需要代理来绕过广告商的反欺诈机制。</p> <p>有些用户评论还说这款应用会发送收费短信,如截图所示。 <strong> 这个僵尸网络能用以各种用途,包括DDoS攻击、发送垃圾邮件和发送病毒。 </strong></p> <p style="text-align:center"><img src="https://simg.open-open.com/show/d5a0c0223cf4125dd3cc2629e2612f3c.jpg"></p> <h2>病毒的持续性</h2> <p>病毒使用多种方法驻足在系统中。首先,Viking Horde安装的那些组件使用了跟系统有关的名字,使得它们很难定位删除。</p> <p>如果设备经过root,有两项机制又可以用来防止删除:</p> <p>app_exec组件会监控主程序是否存在。如果用户卸载了主程序,app_exec会解密一个名为com.android.security的组件并且静默安装。这个组件是隐藏的,重启之后执行。</p> <p>watchdog组件会安装app_exec组件的更新。如果app_exec被删除,watchdog会从更新目录重新安装它。</p> <p>显然,有些用户还注意到了这样的活动:</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/c7b741adeafe8edb24b6cbb32adbc4e1.jpg"></p> <h2>针对root设备的额外组件</h2> <p>可能最危险的功能就是更新机制:app_exec从服务器下载最新的二进制文件,然后以app_exec_update的名字储存在/data目录。</p> <p>Watchdog会周期性地检查更新文件是否存在,并且用它替换app_exec。这就意味着VikingHorde可以根据服务器的命令下载新的二进制文件。watchdog组件会用它替换掉应用。这样的话这台设备上就可以下载执行任何远程代码。</p> <h3>附录 1: app 包名</h3> <pre> com.Jump.vikingJump com.esoft.wifiplus com.fa.simple2048 com.android.wifiman Com.g.o.speed.memboost Com.f.a.android.flyingcopters </pre> <h3>附录2: C&C 服务器列表</h3> <pre> www[.]adautoexchange[.]com www[.]adexchng[.]com www[.]adexchnge[.]com www[.]adexchangetech[.]com </pre> <h3>附录3: 感染的可执行文件的SHA256</h3> <pre> 85e6d5b3569e5b22a16245215a2f31df1ea3a1eb4d53b4c286a6ad2a46517b0c 254c1f16c8aa4c4c033e925b629d9a74ccb76ebf76204df7807b84a593f38dc0 ebfef80c85264250b0e413f04d2fbf9e66f0e6fd6b955e281dba70d536139619 10d9fdbe9ae31a290575263db76a56a601301f2c2089ac9d2581c9289a24998a a13abb024863dc770f7e3e5710435899d221400a1b405a8dd9fd12f62c4971de 1dd08afbf8a9e5f101f7ea4550602c40d1050517abfff11aaeb9a90e1b2caea1 e284a7329066e171c88c98be9118b2dce4e121b98aa418ae6232eaf5fd3ad521 </pre> <p>via: http://www.freebuf.com/articles/terminal/104049.html</p>