安卓ELF恶意软件深度 分析

  ELF病毒背景 1.Android病毒发展趋势

  自 2010 年开始,全球进入了移动互联网时代,作为主流移动操作系统Android也得到了迅猛发展。Android病毒也从简单到复杂,从单纯的dex病毒转向为elf病毒(其中elf是Linux下的可执行程序)。这一发展趋势有几个原因:

  经过多年发展程序编写人员水平普遍提高,大量的linux程序移植到android系统,病毒也随之发展。

  android系统碎片化严重,提取漏洞不断累积导致病毒攻击方式多元化 ,

  elf文件具有比dex程序更难分析的特点。

  常规杀软没有root权限,难以查杀病毒。

  2.ELF病毒纪元图

1.png

  感染情况:

  root类病毒自2014年9月至2016年7月份的感染量

2.png

  主要两大家族感染量

3.png

  

4.png

  3.感染用户案例

  下面是Facebook上用户感染ELF病毒的案例,可以看出,由于没有ROOT权限,无法直接清除病毒。

5.png

6.png

  ELF病毒危害形式 1.提权

  利用漏洞获取ROOT权限,如病毒rootnik:

  病毒获取ROOT 权限时,运行/data/local/tmp/下的Matrix(ROOT组件,命令:./Matrix /data/local/tmp 1),病毒程序Matrix从fileWork中解密并释放支持文件,调用脚本wsroot.sh进行ROOT。脚本wsroot.sh 运行时传入参数/data/local/tmp、1,其中/data/local/tmp为支持文件路径,1代表不安装superuser,提权文件为su8。

7.png

  ROOT后在系统目录下添加提权应用 在/system/bin/下生成文件su8,作为提权的su程序,该程序可以被任何App用来获取ROOT权限使用,存在巨大隐患。

8.png

  文件列表(都为提供ROOT 权限服务):

  /system/xbin/su8

  /system/xbin/sugote

  /system/xbin/supolicy

  /system/xbin/daemonsu

  2.对抗

  伪装替换系统服务

  病毒将系统启动时init.rc内要启动的服务替换成病毒服务,并在病毒服务启动后再调用原始服务。

9.png

  如木马Android.Troj.at_Seed.a,会将自身的主要模块拷贝到系统目录/system/bin内,伪装成系统服务debuggerd(该服务可以侦测到程序崩溃,并将崩溃时的进程状态信息输出到文件和串口中,以供开发人员分析调试使用。),并将原系统服务debuggerd改名为debuggerd_real,这一方式在ROOT工具中也有使用,下图是使用kingroot对手机进行ROOT后,/system/bin/debuggerd文件尾内容:

10.png

  病毒不止利用debuggerd服务,有的病毒会利用/system/bin/vold服务,如地狱火,一样的手段,一样的效果。(vold服务:Volume Daemon存储类的守护进程,作为Android的一个本地服务,负责处理诸如SD、USB等存储类设备的插拔等事件。)

  感染boot.img

  通过修改boot.img分区并刷回的方式感染/sbin,修改init.rc文件,达到每次开机自启的目的。

11.png

  由于/sbin目录和init.rc文件位于一个RAM disk中,该RAM disk是一个只读的、位于内存中的文件系统,从设备磁盘的boot分区加载而来,所有的更改都不会写回磁盘,每次都是直接从分区中读取,所以无法通过remount,删除来清除病毒。需要刷回boot.img来清除病毒,增大清除难度。如病毒oldbot、地狱火。

  创建守护进程

  创建守护进程,时刻监控自身进程或文件,当进程被结束或者并文件被删除时及时启动进程或恢复病毒文件。如:病毒ghostpush,舞毒蛾。

12.png

  修改病毒隐藏权限

  病毒给衍生文件和apk包设置隐藏属性(+i),使其无法被删除,无法被卸载。

  linux文件系统可以设置文件隐藏属性,如下图:

13.png

14.png

  将文件的属性设置为 +i 属性则可以使文件不被删除。如ghostpush病毒等,将自身elf文件设置成+i属性。

15.png

  3.云控

  由于android系统的碎片化,各子系统的ROOT模式,控制方案有显著不同,使病毒大量采取云端控制的方案,使用云控的方式可以根据不同的子系统下载不同的ROOT方案,使用不同的控制指令,大大减少代码量,使得病毒更加灵活、可控。

  通过云控获取ROOT方案

  病毒通过上传感染机器的实际环境,获取相对应的ROOT方案,如danpay家族的client病毒。

  

16.png

  4.注入

  通过elf注入系统进程,修改程序执行或窃取内部信息。

  注入浏览器进行流量劫持

  注入浏览器进程,劫持特定网站,可以做诈骗,钓鱼等非法活动,如病毒Android.TROJ.triada.mc通过elf文件rinject将病毒的so文件注入到浏览器进程,将系统的loadUrl函数注册为静态函数的方式进行hook,使得浏览器在访问特定网站时被劫持。

  ringect注入器(通过ptrace):

17.png

  将病毒so文件/system/lib/libremeth.so注入到浏览器进程中:

18.png

  通过hook android.webkit.WebView类的loadUrl函数实现劫持:

19.png

  正常访问网络流程:

20.png

  木马劫持后访问网络流程:

21.png

  注入社交应用获取聊天记录

  病毒注入“手机QQ”、“微信”社交应用,获取聊天记录并上传远端服务器, 通过inject将病毒so文件注入到“手机QQ”或“微信”的进程中,获取其控制权,并在so中动态加载病毒的dex文件以便窃取聊天内容,并上传。

22.png

  ELF病毒所在目录

  1.所在目录

  /system/bin

  系统内可执行文件所在路径,内存在大量系统服务,在系统PATH内。

  /system/xbin

  系统内可执行文件所在路径,在系统PATH内。

  /sbin

  Android系统只读分区,里面存放了几个重要守护进程的二进制文件,通过更新boot.img可将病毒刷到此目录。

  /system/etc/

  Linux系统的目录,存放配置文件。

  /system/usr

  用户文件夹,包含共享、键盘布局、时间区域文件等。

  /data/local/tmp/

  data目录中的可以提权目录,一般用来运行可执行文件

  2.目录特点

  目录占比图:

23.png

  除了/data/local/tmp/目录外都需要ROOT权限

  1)ELF病毒绝大多数都具有ROOT权限。

  2)病毒运行后首要的行为是获取ROOT权限。

  /system/bin、/system/xbin目录占绝大多数

  1)这两个目录是path路径方便ROOT提权。

  2)bin目录方便伪装成系统服务。

  ELF病毒ROOT(提权)方案 1.分类

  按照方案获取分为云端获取和本地释放两种。

  按照ROOT程序分为特定漏洞提权和ROOT工具提权

24.png

  2.ROOT工具简述

  PingPongRoot:是由国内安全大牛Keen Team团队开发出来的主要针对三星S6的ROOT工具,主要利用CVE-2015-3636漏洞。能ROOT大量Android 5.1及其以下的系统。

  TowelRoot:是美国知名黑客Geohot开发出来的一款ROOT工具,号称可以Root所有2014年6月3日之前的Android设备,利用漏洞CVE-2014-3153。

  Mtkfb:该工具由ele7enxxh根据nforest@KeenTeam的报告以及网上的提权代码整理。该工具利用了mtkfb_ioctl函数越界写内存提权漏洞。

  FramaRoot:是由XDA论坛用 “Alephzain“发布的一款一键ROOT工具,针对设备版本较低,利用了Boromir, Barahir, Frodo, Legolas, Aragorn, Gandalf, Pippin 和 Farahir漏洞(mmap边界检查漏洞) 。

  Root助手: 深圳市网卓信息科技有限公司开发的一款ROOT软件,整合大量漏洞,提供一键ROOT功能,被病毒利用。

  ELF病毒对传统杀软的挑战 1.权限

  大量ELF病毒都是主动利用漏洞对中毒手机进行ROOT,大量病毒还会删除原有ROOT管理程序,使得其他应用无法使用ROOT权限。

  安全软件需要在已经获取ROOT权限的手机上申请ROOT权限,这就导致杀软获取ROOT权限的数量比ELF病毒获取ROOT权限的数量少很多,处于被动。

  2.残留

  普通杀软在处理Android病毒时,一般的手段是直接卸载,对于system的应用引导用户进行停用,这样的处理无法满足对ELF病毒的处理(elf进程将备份的病毒还原或启动)。

  残留的ROOT后门,可以被其他病毒直接使用。

  1)案例:用病毒残留的后门文件PPM将sdcard目录下的apk程序拷贝到/system/app/目录,当手机重启后达到安装app的目的。

25.png

  2)案例:运行病毒残留/system/bin/.alpha 直接获得ROOT权限

26.png

  近两个月(20160524-20150726)残留的root后门(elf文件)

27.png

  3.针对性 普通杀软难于针对性的对不同危害的ELF进行处理。 专杀的解决方案

  加强引导,在用户授权的情况下,积极获取ROOT权限,使专杀和病毒处于同一起跑线。

  采用模块化架构,可以针对不同危害采取不同的模块进行查杀、修复。

  由于权限的提高可以完全将残留的ELF文件删除。

  木马专杀下载地址:http://cn.cmcm.com/activity/push/cm/stk/1/

  查杀效果

28.png

28.png

29.png

第 1 /  10 页